xref: /aosp_15_r20/external/skia/tests/sksl/shared/VectorScalarMath.hlsl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1cbuffer _UniformBuffer : register(b0, space0)
2{
3    float4 _8_colorRed : packoffset(c0);
4    float4 _8_colorGreen : packoffset(c1);
5    float _8_unknownInput : packoffset(c2);
6};
7
8
9static float4 sk_FragColor;
10
11struct SPIRV_Cross_Output
12{
13    float4 sk_FragColor : SV_Target0;
14};
15
16bool test_int_b()
17{
18    bool ok = true;
19    int4 _43 = int4(int(_8_colorRed.x), int(_8_colorRed.y), int(_8_colorRed.z), int(_8_colorRed.w));
20    int4 inputRed = _43;
21    int4 _56 = int4(int(_8_colorGreen.x), int(_8_colorGreen.y), int(_8_colorGreen.z), int(_8_colorGreen.w));
22    int4 inputGreen = _56;
23    int4 _60 = _43 + int4(2, 2, 2, 2);
24    int4 x = _60;
25    bool _69 = false;
26    if (true)
27    {
28        _69 = all(bool4(_60.x == int4(3, 2, 2, 3).x, _60.y == int4(3, 2, 2, 3).y, _60.z == int4(3, 2, 2, 3).z, _60.w == int4(3, 2, 2, 3).w));
29    }
30    else
31    {
32        _69 = false;
33    }
34    ok = _69;
35    int4 _71 = _56.ywxz - int4(2, 2, 2, 2);
36    x = _71;
37    bool _79 = false;
38    if (_69)
39    {
40        _79 = all(bool4(_71.x == int4(-1, -1, -2, -2).x, _71.y == int4(-1, -1, -2, -2).y, _71.z == int4(-1, -1, -2, -2).z, _71.w == int4(-1, -1, -2, -2).w));
41    }
42    else
43    {
44        _79 = false;
45    }
46    ok = _79;
47    int4 _82 = _43 + _56.y.xxxx;
48    x = _82;
49    bool _88 = false;
50    if (_79)
51    {
52        _88 = all(bool4(_82.x == int4(2, 1, 1, 2).x, _82.y == int4(2, 1, 1, 2).y, _82.z == int4(2, 1, 1, 2).z, _82.w == int4(2, 1, 1, 2).w));
53    }
54    else
55    {
56        _88 = false;
57    }
58    ok = _88;
59    int3 _93 = _56.wyw * int3(9, 9, 9);
60    int4 _94 = x;
61    int4 _95 = int4(_93.x, _93.y, _93.z, _94.w);
62    x = _95;
63    bool _101 = false;
64    if (_88)
65    {
66        _101 = all(bool4(_95.x == int4(9, 9, 9, 2).x, _95.y == int4(9, 9, 9, 2).y, _95.z == int4(9, 9, 9, 2).z, _95.w == int4(9, 9, 9, 2).w));
67    }
68    else
69    {
70        _101 = false;
71    }
72    ok = _101;
73    int2 _106 = _95.zw / int2(4, 4);
74    int4 _107 = x;
75    int4 _108 = int4(_106.x, _106.y, _107.z, _107.w);
76    x = _108;
77    bool _114 = false;
78    if (_101)
79    {
80        _114 = all(bool4(_108.x == int4(2, 0, 9, 2).x, _108.y == int4(2, 0, 9, 2).y, _108.z == int4(2, 0, 9, 2).z, _108.w == int4(2, 0, 9, 2).w));
81    }
82    else
83    {
84        _114 = false;
85    }
86    ok = _114;
87    int4 _118 = (_43 * int4(5, 5, 5, 5)).yxwz;
88    x = _118;
89    bool _124 = false;
90    if (_114)
91    {
92        _124 = all(bool4(_118.x == int4(0, 5, 5, 0).x, _118.y == int4(0, 5, 5, 0).y, _118.z == int4(0, 5, 5, 0).z, _118.w == int4(0, 5, 5, 0).w));
93    }
94    else
95    {
96        _124 = false;
97    }
98    ok = _124;
99    int4 _125 = int4(2, 2, 2, 2) + _43;
100    x = _125;
101    bool _130 = false;
102    if (_124)
103    {
104        _130 = all(bool4(_125.x == int4(3, 2, 2, 3).x, _125.y == int4(3, 2, 2, 3).y, _125.z == int4(3, 2, 2, 3).z, _125.w == int4(3, 2, 2, 3).w));
105    }
106    else
107    {
108        _130 = false;
109    }
110    ok = _130;
111    int4 _134 = int4(10, 10, 10, 10) - _56.ywxz;
112    x = _134;
113    bool _140 = false;
114    if (_130)
115    {
116        _140 = all(bool4(_134.x == int4(9, 9, 10, 10).x, _134.y == int4(9, 9, 10, 10).y, _134.z == int4(9, 9, 10, 10).z, _134.w == int4(9, 9, 10, 10).w));
117    }
118    else
119    {
120        _140 = false;
121    }
122    ok = _140;
123    int4 _143 = _43.x.xxxx + _56;
124    x = _143;
125    bool _149 = false;
126    if (_140)
127    {
128        _149 = all(bool4(_143.x == int4(1, 2, 1, 2).x, _143.y == int4(1, 2, 1, 2).y, _143.z == int4(1, 2, 1, 2).z, _143.w == int4(1, 2, 1, 2).w));
129    }
130    else
131    {
132        _149 = false;
133    }
134    ok = _149;
135    int3 _153 = int3(8, 8, 8) * _56.wyw;
136    int4 _154 = x;
137    int4 _155 = int4(_153.x, _153.y, _153.z, _154.w);
138    x = _155;
139    bool _161 = false;
140    if (_149)
141    {
142        _161 = all(bool4(_155.x == int4(8, 8, 8, 2).x, _155.y == int4(8, 8, 8, 2).y, _155.z == int4(8, 8, 8, 2).z, _155.w == int4(8, 8, 8, 2).w));
143    }
144    else
145    {
146        _161 = false;
147    }
148    ok = _161;
149    int2 _165 = int2(36, 36) / _155.zw;
150    int4 _166 = x;
151    int4 _167 = int4(_165.x, _165.y, _166.z, _166.w);
152    x = _167;
153    bool _174 = false;
154    if (_161)
155    {
156        _174 = all(bool4(_167.x == int4(4, 18, 8, 2).x, _167.y == int4(4, 18, 8, 2).y, _167.z == int4(4, 18, 8, 2).z, _167.w == int4(4, 18, 8, 2).w));
157    }
158    else
159    {
160        _174 = false;
161    }
162    ok = _174;
163    int4 _178 = (int4(37, 37, 37, 37) / _167).yxwz;
164    x = _178;
165    bool _184 = false;
166    if (_174)
167    {
168        _184 = all(bool4(_178.x == int4(2, 9, 18, 4).x, _178.y == int4(2, 9, 18, 4).y, _178.z == int4(2, 9, 18, 4).z, _178.w == int4(2, 9, 18, 4).w));
169    }
170    else
171    {
172        _184 = false;
173    }
174    ok = _184;
175    int4 _185 = _178 + int4(2, 2, 2, 2);
176    x = _185;
177    int4 _186 = _185 * int4(2, 2, 2, 2);
178    x = _186;
179    int4 _188 = _186 - int4(4, 4, 4, 4);
180    x = _188;
181    int4 _189 = _188 / int4(2, 2, 2, 2);
182    x = _189;
183    bool _194 = false;
184    if (_184)
185    {
186        _194 = all(bool4(_189.x == int4(2, 9, 18, 4).x, _189.y == int4(2, 9, 18, 4).y, _189.z == int4(2, 9, 18, 4).z, _189.w == int4(2, 9, 18, 4).w));
187    }
188    else
189    {
190        _194 = false;
191    }
192    ok = _194;
193    int4 _195 = _189 + int4(2, 2, 2, 2);
194    x = _195;
195    int4 _196 = _195 * int4(2, 2, 2, 2);
196    x = _196;
197    int4 _197 = _196 - int4(4, 4, 4, 4);
198    x = _197;
199    int4 _198 = _197 / int4(2, 2, 2, 2);
200    x = _198;
201    bool _203 = false;
202    if (_194)
203    {
204        _203 = all(bool4(_198.x == int4(2, 9, 18, 4).x, _198.y == int4(2, 9, 18, 4).y, _198.z == int4(2, 9, 18, 4).z, _198.w == int4(2, 9, 18, 4).w));
205    }
206    else
207    {
208        _203 = false;
209    }
210    ok = _203;
211    return _203;
212}
213
214float4 main(float2 _205)
215{
216    bool _RESERVED_IDENTIFIER_FIXUP_0_ok = true;
217    float4 _RESERVED_IDENTIFIER_FIXUP_1_inputRed = _8_colorRed;
218    float4 _RESERVED_IDENTIFIER_FIXUP_2_inputGreen = _8_colorGreen;
219    float4 _218 = _8_colorRed + 2.0f.xxxx;
220    float4 _RESERVED_IDENTIFIER_FIXUP_3_x = _218;
221    bool _225 = false;
222    if (true)
223    {
224        _225 = all(bool4(_218.x == float4(3.0f, 2.0f, 2.0f, 3.0f).x, _218.y == float4(3.0f, 2.0f, 2.0f, 3.0f).y, _218.z == float4(3.0f, 2.0f, 2.0f, 3.0f).z, _218.w == float4(3.0f, 2.0f, 2.0f, 3.0f).w));
225    }
226    else
227    {
228        _225 = false;
229    }
230    _RESERVED_IDENTIFIER_FIXUP_0_ok = _225;
231    float4 _227 = _8_colorGreen.ywxz - 2.0f.xxxx;
232    _RESERVED_IDENTIFIER_FIXUP_3_x = _227;
233    bool _235 = false;
234    if (_225)
235    {
236        _235 = all(bool4(_227.x == float4(-1.0f, -1.0f, -2.0f, -2.0f).x, _227.y == float4(-1.0f, -1.0f, -2.0f, -2.0f).y, _227.z == float4(-1.0f, -1.0f, -2.0f, -2.0f).z, _227.w == float4(-1.0f, -1.0f, -2.0f, -2.0f).w));
237    }
238    else
239    {
240        _235 = false;
241    }
242    _RESERVED_IDENTIFIER_FIXUP_0_ok = _235;
243    float4 _238 = _8_colorRed + _8_colorGreen.y.xxxx;
244    _RESERVED_IDENTIFIER_FIXUP_3_x = _238;
245    bool _245 = false;
246    if (_235)
247    {
248        _245 = all(bool4(_238.x == float4(2.0f, 1.0f, 1.0f, 2.0f).x, _238.y == float4(2.0f, 1.0f, 1.0f, 2.0f).y, _238.z == float4(2.0f, 1.0f, 1.0f, 2.0f).z, _238.w == float4(2.0f, 1.0f, 1.0f, 2.0f).w));
249    }
250    else
251    {
252        _245 = false;
253    }
254    _RESERVED_IDENTIFIER_FIXUP_0_ok = _245;
255    float3 _249 = _8_colorGreen.wyw * 9.0f;
256    float4 _250 = _RESERVED_IDENTIFIER_FIXUP_3_x;
257    float4 _251 = float4(_249.x, _249.y, _249.z, _250.w);
258    _RESERVED_IDENTIFIER_FIXUP_3_x = _251;
259    bool _257 = false;
260    if (_245)
261    {
262        _257 = all(bool4(_251.x == float4(9.0f, 9.0f, 9.0f, 2.0f).x, _251.y == float4(9.0f, 9.0f, 9.0f, 2.0f).y, _251.z == float4(9.0f, 9.0f, 9.0f, 2.0f).z, _251.w == float4(9.0f, 9.0f, 9.0f, 2.0f).w));
263    }
264    else
265    {
266        _257 = false;
267    }
268    _RESERVED_IDENTIFIER_FIXUP_0_ok = _257;
269    float2 _259 = _251.zw * 2.0f;
270    float4 _260 = _RESERVED_IDENTIFIER_FIXUP_3_x;
271    float4 _261 = float4(_259.x, _259.y, _260.z, _260.w);
272    _RESERVED_IDENTIFIER_FIXUP_3_x = _261;
273    bool _269 = false;
274    if (_257)
275    {
276        _269 = all(bool4(_261.x == float4(18.0f, 4.0f, 9.0f, 2.0f).x, _261.y == float4(18.0f, 4.0f, 9.0f, 2.0f).y, _261.z == float4(18.0f, 4.0f, 9.0f, 2.0f).z, _261.w == float4(18.0f, 4.0f, 9.0f, 2.0f).w));
277    }
278    else
279    {
280        _269 = false;
281    }
282    _RESERVED_IDENTIFIER_FIXUP_0_ok = _269;
283    float4 _272 = (_8_colorRed * 5.0f).yxwz;
284    _RESERVED_IDENTIFIER_FIXUP_3_x = _272;
285    bool _278 = false;
286    if (_269)
287    {
288        _278 = all(bool4(_272.x == float4(0.0f, 5.0f, 5.0f, 0.0f).x, _272.y == float4(0.0f, 5.0f, 5.0f, 0.0f).y, _272.z == float4(0.0f, 5.0f, 5.0f, 0.0f).z, _272.w == float4(0.0f, 5.0f, 5.0f, 0.0f).w));
289    }
290    else
291    {
292        _278 = false;
293    }
294    _RESERVED_IDENTIFIER_FIXUP_0_ok = _278;
295    float4 _279 = 2.0f.xxxx + _8_colorRed;
296    _RESERVED_IDENTIFIER_FIXUP_3_x = _279;
297    bool _284 = false;
298    if (_278)
299    {
300        _284 = all(bool4(_279.x == float4(3.0f, 2.0f, 2.0f, 3.0f).x, _279.y == float4(3.0f, 2.0f, 2.0f, 3.0f).y, _279.z == float4(3.0f, 2.0f, 2.0f, 3.0f).z, _279.w == float4(3.0f, 2.0f, 2.0f, 3.0f).w));
301    }
302    else
303    {
304        _284 = false;
305    }
306    _RESERVED_IDENTIFIER_FIXUP_0_ok = _284;
307    float4 _288 = 10.0f.xxxx - _8_colorGreen.ywxz;
308    _RESERVED_IDENTIFIER_FIXUP_3_x = _288;
309    bool _294 = false;
310    if (_284)
311    {
312        _294 = all(bool4(_288.x == float4(9.0f, 9.0f, 10.0f, 10.0f).x, _288.y == float4(9.0f, 9.0f, 10.0f, 10.0f).y, _288.z == float4(9.0f, 9.0f, 10.0f, 10.0f).z, _288.w == float4(9.0f, 9.0f, 10.0f, 10.0f).w));
313    }
314    else
315    {
316        _294 = false;
317    }
318    _RESERVED_IDENTIFIER_FIXUP_0_ok = _294;
319    float4 _297 = _8_colorRed.x.xxxx + _8_colorGreen;
320    _RESERVED_IDENTIFIER_FIXUP_3_x = _297;
321    bool _303 = false;
322    if (_294)
323    {
324        _303 = all(bool4(_297.x == float4(1.0f, 2.0f, 1.0f, 2.0f).x, _297.y == float4(1.0f, 2.0f, 1.0f, 2.0f).y, _297.z == float4(1.0f, 2.0f, 1.0f, 2.0f).z, _297.w == float4(1.0f, 2.0f, 1.0f, 2.0f).w));
325    }
326    else
327    {
328        _303 = false;
329    }
330    _RESERVED_IDENTIFIER_FIXUP_0_ok = _303;
331    float3 _306 = _8_colorGreen.wyw * 8.0f;
332    float4 _307 = _RESERVED_IDENTIFIER_FIXUP_3_x;
333    float4 _308 = float4(_306.x, _306.y, _306.z, _307.w);
334    _RESERVED_IDENTIFIER_FIXUP_3_x = _308;
335    bool _314 = false;
336    if (_303)
337    {
338        _314 = all(bool4(_308.x == float4(8.0f, 8.0f, 8.0f, 2.0f).x, _308.y == float4(8.0f, 8.0f, 8.0f, 2.0f).y, _308.z == float4(8.0f, 8.0f, 8.0f, 2.0f).z, _308.w == float4(8.0f, 8.0f, 8.0f, 2.0f).w));
339    }
340    else
341    {
342        _314 = false;
343    }
344    _RESERVED_IDENTIFIER_FIXUP_0_ok = _314;
345    float2 _318 = 32.0f.xx / _308.zw;
346    float4 _319 = _RESERVED_IDENTIFIER_FIXUP_3_x;
347    float4 _320 = float4(_318.x, _318.y, _319.z, _319.w);
348    _RESERVED_IDENTIFIER_FIXUP_3_x = _320;
349    bool _327 = false;
350    if (_314)
351    {
352        _327 = all(bool4(_320.x == float4(4.0f, 16.0f, 8.0f, 2.0f).x, _320.y == float4(4.0f, 16.0f, 8.0f, 2.0f).y, _320.z == float4(4.0f, 16.0f, 8.0f, 2.0f).z, _320.w == float4(4.0f, 16.0f, 8.0f, 2.0f).w));
353    }
354    else
355    {
356        _327 = false;
357    }
358    _RESERVED_IDENTIFIER_FIXUP_0_ok = _327;
359    float4 _330 = (32.0f.xxxx / _320).yxwz;
360    _RESERVED_IDENTIFIER_FIXUP_3_x = _330;
361    bool _336 = false;
362    if (_327)
363    {
364        _336 = all(bool4(_330.x == float4(2.0f, 8.0f, 16.0f, 4.0f).x, _330.y == float4(2.0f, 8.0f, 16.0f, 4.0f).y, _330.z == float4(2.0f, 8.0f, 16.0f, 4.0f).z, _330.w == float4(2.0f, 8.0f, 16.0f, 4.0f).w));
365    }
366    else
367    {
368        _336 = false;
369    }
370    _RESERVED_IDENTIFIER_FIXUP_0_ok = _336;
371    float4 _337 = _330 + 2.0f.xxxx;
372    _RESERVED_IDENTIFIER_FIXUP_3_x = _337;
373    float4 _338 = _337 * 2.0f;
374    _RESERVED_IDENTIFIER_FIXUP_3_x = _338;
375    float4 _340 = _338 - 4.0f.xxxx;
376    _RESERVED_IDENTIFIER_FIXUP_3_x = _340;
377    float4 _342 = _340 * 0.5f;
378    _RESERVED_IDENTIFIER_FIXUP_3_x = _342;
379    bool _347 = false;
380    if (_336)
381    {
382        _347 = all(bool4(_342.x == float4(2.0f, 8.0f, 16.0f, 4.0f).x, _342.y == float4(2.0f, 8.0f, 16.0f, 4.0f).y, _342.z == float4(2.0f, 8.0f, 16.0f, 4.0f).z, _342.w == float4(2.0f, 8.0f, 16.0f, 4.0f).w));
383    }
384    else
385    {
386        _347 = false;
387    }
388    _RESERVED_IDENTIFIER_FIXUP_0_ok = _347;
389    float4 _348 = _342 + 2.0f.xxxx;
390    _RESERVED_IDENTIFIER_FIXUP_3_x = _348;
391    float4 _349 = _348 * 2.0f;
392    _RESERVED_IDENTIFIER_FIXUP_3_x = _349;
393    float4 _350 = _349 - 4.0f.xxxx;
394    _RESERVED_IDENTIFIER_FIXUP_3_x = _350;
395    float4 _351 = _350 * 0.5f;
396    _RESERVED_IDENTIFIER_FIXUP_3_x = _351;
397    bool _356 = false;
398    if (_347)
399    {
400        _356 = all(bool4(_351.x == float4(2.0f, 8.0f, 16.0f, 4.0f).x, _351.y == float4(2.0f, 8.0f, 16.0f, 4.0f).y, _351.z == float4(2.0f, 8.0f, 16.0f, 4.0f).z, _351.w == float4(2.0f, 8.0f, 16.0f, 4.0f).w));
401    }
402    else
403    {
404        _356 = false;
405    }
406    _RESERVED_IDENTIFIER_FIXUP_0_ok = _356;
407    bool _360 = false;
408    if (_356)
409    {
410        _360 = test_int_b();
411    }
412    else
413    {
414        _360 = false;
415    }
416    float4 _361 = 0.0f.xxxx;
417    if (_360)
418    {
419        _361 = _8_colorGreen;
420    }
421    else
422    {
423        _361 = _8_colorRed;
424    }
425    return _361;
426}
427
428void frag_main()
429{
430    float2 _18 = 0.0f.xx;
431    sk_FragColor = main(_18);
432}
433
434SPIRV_Cross_Output main()
435{
436    frag_main();
437    SPIRV_Cross_Output stage_output;
438    stage_output.sk_FragColor = sk_FragColor;
439    return stage_output;
440}
441