xref: /aosp_15_r20/external/skia/tests/sksl/folding/ShortCircuitBoolFolding.wgsl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1diagnostic(off, derivative_uniformity);
2diagnostic(off, chromium.unreachable_code);
3struct _GlobalUniforms {
4  colorRed: vec4<f32>,
5  colorGreen: vec4<f32>,
6  unknownInput: f32,
7};
8@binding(0) @group(0) var<uniform> _globalUniforms: _GlobalUniforms;
9fn _skslMain(coords: vec2<f32>) -> vec4<f32> {
10  {
11    let _0_expr: bool = _globalUniforms.unknownInput > 0.0;
12    var _1_ok: i32 = 0;
13    var _2_bad: i32 = 0;
14    if _0_expr {
15      {
16        _1_ok = _1_ok + i32(1);
17      }
18    } else {
19      {
20        _2_bad = _2_bad + i32(1);
21      }
22    }
23    {
24      _1_ok = _1_ok + i32(1);
25    }
26    if true != _0_expr {
27      {
28        _2_bad = _2_bad + i32(1);
29      }
30    } else {
31      {
32        _1_ok = _1_ok + i32(1);
33      }
34    }
35    if _0_expr {
36      {
37        _1_ok = _1_ok + i32(1);
38      }
39    } else {
40      {
41        _2_bad = _2_bad + i32(1);
42      }
43    }
44    {
45      _1_ok = _1_ok + i32(1);
46    }
47    if _0_expr {
48      {
49        _1_ok = _1_ok + i32(1);
50      }
51    } else {
52      {
53        _2_bad = _2_bad + i32(1);
54      }
55    }
56    if _0_expr {
57      {
58        _1_ok = _1_ok + i32(1);
59      }
60    } else {
61      {
62        _2_bad = _2_bad + i32(1);
63      }
64    }
65    if false == _0_expr {
66      {
67        _2_bad = _2_bad + i32(1);
68      }
69    } else {
70      {
71        _1_ok = _1_ok + i32(1);
72      }
73    }
74    if true != _0_expr {
75      {
76        _2_bad = _2_bad + i32(1);
77      }
78    } else {
79      {
80        _1_ok = _1_ok + i32(1);
81      }
82    }
83    if _0_expr {
84      {
85        _1_ok = _1_ok + i32(1);
86      }
87    } else {
88      {
89        _2_bad = _2_bad + i32(1);
90      }
91    }
92    if _0_expr {
93      {
94        _1_ok = _1_ok + i32(1);
95      }
96    } else {
97      {
98        _2_bad = _2_bad + i32(1);
99      }
100    }
101    {
102      _1_ok = _1_ok + i32(1);
103    }
104    if _0_expr != true {
105      {
106        _2_bad = _2_bad + i32(1);
107      }
108    } else {
109      {
110        _1_ok = _1_ok + i32(1);
111      }
112    }
113    if _0_expr {
114      {
115        _1_ok = _1_ok + i32(1);
116      }
117    } else {
118      {
119        _2_bad = _2_bad + i32(1);
120      }
121    }
122    {
123      _1_ok = _1_ok + i32(1);
124    }
125    if _0_expr {
126      {
127        _1_ok = _1_ok + i32(1);
128      }
129    } else {
130      {
131        _2_bad = _2_bad + i32(1);
132      }
133    }
134    if _0_expr {
135      {
136        _1_ok = _1_ok + i32(1);
137      }
138    } else {
139      {
140        _2_bad = _2_bad + i32(1);
141      }
142    }
143    if _0_expr == false {
144      {
145        _2_bad = _2_bad + i32(1);
146      }
147    } else {
148      {
149        _1_ok = _1_ok + i32(1);
150      }
151    }
152    if _0_expr != true {
153      {
154        _2_bad = _2_bad + i32(1);
155      }
156    } else {
157      {
158        _1_ok = _1_ok + i32(1);
159      }
160    }
161    if _0_expr {
162      {
163        _1_ok = _1_ok + i32(1);
164      }
165    } else {
166      {
167        _2_bad = _2_bad + i32(1);
168      }
169    }
170    var _3_a: f32 = f32(_globalUniforms.unknownInput + 2.0);
171    let _4_b: f32 = f32(_globalUniforms.unknownInput * 2.0);
172    if _3_a == _4_b {
173      {
174        _2_bad = _2_bad + i32(1);
175      }
176    } else {
177      {
178        _1_ok = _1_ok + i32(1);
179      }
180    }
181    _3_a = _4_b;
182    if _3_a == _4_b {
183      {
184        _1_ok = _1_ok + i32(1);
185      }
186    } else {
187      {
188        _2_bad = _2_bad + i32(1);
189      }
190    }
191    return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4<bool>((_1_ok == 22) && (_2_bad == 0)));
192  }
193}
194@fragment fn main(@location(0) _coords: vec2<f32>) -> @location(0) vec4<f32> {
195  return _skslMain(_coords);
196}
197