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