xref: /aosp_15_r20/external/skia/tests/sksl/folding/PreserveSideEffects.wgsl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1diagnostic(off, derivative_uniformity);
2diagnostic(off, chromium.unreachable_code);
3struct _GlobalUniforms {
4  colorGreen: vec4<f32>,
5  colorRed: vec4<f32>,
6};
7@binding(0) @group(0) var<uniform> _globalUniforms: _GlobalUniforms;
8fn test_matrix_b() -> bool {
9  {
10    var ok: bool = true;
11    var num: f32 = 0.0;
12    var _skTemp0: bool;
13    if ok {
14      num = num + f32(1);
15      _skTemp0 = all(mat2x2<f32>(1.0, 2.0, 3.0, num)[0] == vec2<f32>(1.0, 2.0));
16    } else {
17      _skTemp0 = false;
18    }
19    ok = _skTemp0;
20    var _skTemp1: bool;
21    if ok {
22      num = num + f32(1);
23      let _skTemp2 = vec2<f32>(num);
24      _skTemp1 = all(mat2x2<f32>(_skTemp2[0], _skTemp2[1], 3.0, 4.0)[1] == vec2<f32>(3.0, 4.0));
25    } else {
26      _skTemp1 = false;
27    }
28    ok = _skTemp1;
29    var _skTemp3: bool;
30    if ok {
31      num = num + f32(1);
32      let _skTemp4 = vec3<f32>(num);
33      _skTemp3 = all(mat3x3<f32>(vec3<f32>(1.0)[0], vec3<f32>(1.0)[1], vec3<f32>(1.0)[2], _skTemp4[0], _skTemp4[1], _skTemp4[2], vec3<f32>(0.0)[0], vec3<f32>(0.0)[1], vec3<f32>(0.0)[2])[0] == vec3<f32>(1.0));
34    } else {
35      _skTemp3 = false;
36    }
37    ok = _skTemp3;
38    var _skTemp5: bool;
39    if ok {
40      num = num + f32(1);
41      let _skTemp6 = vec3<f32>(num);
42      _skTemp5 = all(mat3x3<f32>(vec3<f32>(1.0)[0], vec3<f32>(1.0)[1], vec3<f32>(1.0)[2], _skTemp6[0], _skTemp6[1], _skTemp6[2], vec3<f32>(0.0)[0], vec3<f32>(0.0)[1], vec3<f32>(0.0)[2])[2] == vec3<f32>(0.0));
43    } else {
44      _skTemp5 = false;
45    }
46    ok = _skTemp5;
47    var _skTemp7: bool;
48    if ok {
49      num = num + f32(1);
50      let _skTemp8 = vec3<f32>(num);
51      _skTemp7 = all(mat3x3<f32>(_skTemp8[0], _skTemp8[1], _skTemp8[2], vec3<f32>(1.0)[0], vec3<f32>(1.0)[1], vec3<f32>(1.0)[2], vec3<f32>(0.0)[0], vec3<f32>(0.0)[1], vec3<f32>(0.0)[2])[1] == vec3<f32>(1.0));
52    } else {
53      _skTemp7 = false;
54    }
55    ok = _skTemp7;
56    var _skTemp9: bool;
57    if ok {
58      num = num + f32(1);
59      _skTemp9 = all(mat3x3<f32>(1.0, 2.0, 3.0, 4.0, 5.0, num, 7.0, 8.0, 9.0)[0] == vec3<f32>(1.0, 2.0, 3.0));
60    } else {
61      _skTemp9 = false;
62    }
63    ok = _skTemp9;
64    var _skTemp10: bool;
65    if ok {
66      let _skTemp11 = num;
67      num = num + f32(1);
68      _skTemp10 = all(mat3x3<f32>(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, _skTemp11, 8.0, 9.0)[1] == vec3<f32>(4.0, 5.0, 6.0));
69    } else {
70      _skTemp10 = false;
71    }
72    ok = _skTemp10;
73    var _skTemp12: bool;
74    if ok {
75      num = num + f32(1);
76      let _skTemp13 = vec4<f32>(num);
77      _skTemp12 = all(mat4x4<f32>(_skTemp13[0], _skTemp13[1], _skTemp13[2], _skTemp13[3], vec4<f32>(1.0)[0], vec4<f32>(1.0)[1], vec4<f32>(1.0)[2], vec4<f32>(1.0)[3], vec4<f32>(2.0)[0], vec4<f32>(2.0)[1], vec4<f32>(2.0)[2], vec4<f32>(2.0)[3], vec4<f32>(3.0)[0], vec4<f32>(3.0)[1], vec4<f32>(3.0)[2], vec4<f32>(3.0)[3])[1] == vec4<f32>(1.0));
78    } else {
79      _skTemp12 = false;
80    }
81    ok = _skTemp12;
82    var _skTemp14: bool;
83    if ok {
84      num = num + f32(1);
85      let _skTemp15 = vec4<f32>(num);
86      _skTemp14 = all(mat4x4<f32>(vec4<f32>(1.0)[0], vec4<f32>(1.0)[1], vec4<f32>(1.0)[2], vec4<f32>(1.0)[3], _skTemp15[0], _skTemp15[1], _skTemp15[2], _skTemp15[3], vec4<f32>(2.0)[0], vec4<f32>(2.0)[1], vec4<f32>(2.0)[2], vec4<f32>(2.0)[3], vec4<f32>(3.0)[0], vec4<f32>(3.0)[1], vec4<f32>(3.0)[2], vec4<f32>(3.0)[3])[2] == vec4<f32>(2.0));
87    } else {
88      _skTemp14 = false;
89    }
90    ok = _skTemp14;
91    var _skTemp16: bool;
92    if ok {
93      num = num + f32(1);
94      let _skTemp17 = vec4<f32>(num);
95      _skTemp16 = all(mat4x4<f32>(vec4<f32>(1.0)[0], vec4<f32>(1.0)[1], vec4<f32>(1.0)[2], vec4<f32>(1.0)[3], vec4<f32>(1.0)[0], vec4<f32>(1.0)[1], vec4<f32>(1.0)[2], vec4<f32>(1.0)[3], _skTemp17[0], _skTemp17[1], _skTemp17[2], _skTemp17[3], vec4<f32>(3.0)[0], vec4<f32>(3.0)[1], vec4<f32>(3.0)[2], vec4<f32>(3.0)[3])[3] == vec4<f32>(3.0));
96    } else {
97      _skTemp16 = false;
98    }
99    ok = _skTemp16;
100    var _skTemp18: bool;
101    if ok {
102      num = num + f32(1);
103      _skTemp18 = all(mat4x4<f32>(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, num, 16.0)[3].xy == vec2<f32>(13.0, 14.0));
104    } else {
105      _skTemp18 = false;
106    }
107    ok = _skTemp18;
108    return ok && (num == 11.0);
109  }
110}
111fn _skslMain(coords: vec2<f32>) -> vec4<f32> {
112  {
113    var _0_ok: bool = true;
114    var _1_num: f32 = 0.0;
115    var _skTemp19: bool;
116    if _0_ok {
117      _1_num = _1_num + f32(1);
118      _skTemp19 = (vec2<f32>(_1_num, 0.0).y == 0.0);
119    } else {
120      _skTemp19 = false;
121    }
122    _0_ok = _skTemp19;
123    var _skTemp20: bool;
124    if _0_ok {
125      _1_num = _1_num + f32(1);
126      _skTemp20 = (vec2<f32>(0.0, _1_num).x == 0.0);
127    } else {
128      _skTemp20 = false;
129    }
130    _0_ok = _skTemp20;
131    var _skTemp21: bool;
132    if _0_ok {
133      _1_num = _1_num + f32(1);
134      _skTemp21 = all(vec3<f32>(_1_num, 1.0, 0.0).yz == vec2<f32>(1.0, 0.0));
135    } else {
136      _skTemp21 = false;
137    }
138    _0_ok = _skTemp21;
139    var _skTemp22: bool;
140    if _0_ok {
141      _1_num = _1_num + f32(1);
142      _skTemp22 = all(vec3<f32>(1.0, 0.0, _1_num).xy == vec2<f32>(1.0, 0.0));
143    } else {
144      _skTemp22 = false;
145    }
146    _0_ok = _skTemp22;
147    var _skTemp23: bool;
148    if _0_ok {
149      _1_num = _1_num + f32(1);
150      _skTemp23 = all(vec3<f32>(_1_num, 1.0, 0.0).yz == vec2<f32>(1.0, 0.0));
151    } else {
152      _skTemp23 = false;
153    }
154    _0_ok = _skTemp23;
155    var _skTemp24: bool;
156    if _0_ok {
157      _1_num = _1_num + f32(1);
158      _skTemp24 = all(vec4<f32>(_1_num, 1.0, 0.0, 0.0).yzw == vec3<f32>(1.0, 0.0, 0.0));
159    } else {
160      _skTemp24 = false;
161    }
162    _0_ok = _skTemp24;
163    var _skTemp25: bool;
164    if _0_ok {
165      _1_num = _1_num + f32(1);
166      _skTemp25 = (vec4<f32>(1.0, _1_num, 1.0, 0.0).x == 1.0);
167    } else {
168      _skTemp25 = false;
169    }
170    _0_ok = _skTemp25;
171    var _skTemp26: bool;
172    if _0_ok {
173      _1_num = _1_num + f32(1);
174      _skTemp26 = (vec4<f32>(1.0, 0.0, _1_num, 1.0).w == 1.0);
175    } else {
176      _skTemp26 = false;
177    }
178    _0_ok = _skTemp26;
179    var _skTemp27: bool;
180    if _0_ok {
181      _1_num = _1_num + f32(1);
182      _skTemp27 = all(vec4<f32>(1.0, 0.0, 1.0, _1_num).xyz == vec3<f32>(1.0, 0.0, 1.0));
183    } else {
184      _skTemp27 = false;
185    }
186    _0_ok = _skTemp27;
187    var _skTemp28: vec4<f32>;
188    var _skTemp29: bool;
189    if _0_ok && (_1_num == 9.0) {
190      let _skTemp30 = test_matrix_b();
191      _skTemp29 = _skTemp30;
192    } else {
193      _skTemp29 = false;
194    }
195    if _skTemp29 {
196      _skTemp28 = _globalUniforms.colorGreen;
197    } else {
198      _skTemp28 = _globalUniforms.colorRed;
199    }
200    return _skTemp28;
201  }
202}
203@fragment fn main(@location(0) _coords: vec2<f32>) -> @location(0) vec4<f32> {
204  return _skslMain(_coords);
205}
206