xref: /aosp_15_r20/external/skia/tests/sksl/folding/VectorScalarFolding.glsl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1
2uniform vec4 colorRed;
3uniform vec4 colorGreen;
4uniform float unknownInput;
5bool test_int_b() {
6    bool ok = true;
7    ivec4 x = ivec4(6, 6, 7, 8);
8    ok = ok && x == ivec4(6, 6, 7, 8);
9    x = ivec4(7, 9, 9, 9);
10    ok = ok && x == ivec4(7, 9, 9, 9);
11    x = ivec4(9, 9, 10, 10);
12    ok = ok && x == ivec4(9, 9, 10, 10);
13    x.xyz = ivec3(6);
14    ok = ok && x == ivec4(6, 6, 6, 10);
15    x.xy = ivec2(3);
16    ok = ok && x == ivec4(3, 3, 6, 10);
17    x = ivec4(6);
18    ok = ok && x == ivec4(6);
19    x = ivec4(6, 6, 7, 8);
20    ok = ok && x == ivec4(6, 6, 7, 8);
21    x = ivec4(-7, -9, -9, -9);
22    ok = ok && x == ivec4(-7, -9, -9, -9);
23    x = ivec4(9, 9, 10, 10);
24    ok = ok && x == ivec4(9, 9, 10, 10);
25    x.xyz = ivec3(6);
26    ok = ok && x == ivec4(6, 6, 6, 10);
27    x.xy = ivec2(8);
28    ok = ok && x == ivec4(8, 8, 6, 10);
29    x = ivec4(200, 100, 50, 25);
30    ok = ok && x == ivec4(200, 100, 50, 25);
31    x = ivec4(6);
32    ok = ok && x == ivec4(6);
33    int unknown = int(unknownInput);
34    x = ivec4(unknown);
35    ok = ok && x == ivec4(unknown);
36    x = ivec4(0);
37    ok = ok && x == ivec4(0);
38    x = ivec4(0) / unknown;
39    ok = ok && x == ivec4(0);
40    x = ivec4(unknown);
41    ok = ok && x == ivec4(unknown);
42    x = ivec4(unknown);
43    ok = ok && x == ivec4(unknown);
44    x = ivec4(unknown);
45    ok = ok && x == ivec4(unknown);
46    x = ivec4(unknown);
47    ok = ok && x == ivec4(unknown);
48    x = ivec4(unknown);
49    ok = ok && x == ivec4(unknown);
50    x = ivec4(unknown);
51    ok = ok && x == ivec4(unknown);
52    x = ivec4(0);
53    ok = ok && x == ivec4(0);
54    x = 0 / ivec4(unknown);
55    ok = ok && x == ivec4(0);
56    x = ivec4(unknown);
57    ok = ok && x == ivec4(unknown);
58    x = ivec4(unknown);
59    ok = ok && x == ivec4(unknown);
60    x = ivec4(0);
61    ok = ok && x == ivec4(0);
62    x = ivec4(unknown);
63    ok = ok && x == ivec4(unknown);
64    x = ivec4(unknown);
65    ok = ok && x == ivec4(unknown);
66    x = ivec4(unknown);
67    x += 1;
68    x -= 1;
69    ok = ok && x == ivec4(unknown);
70    x = ivec4(unknown);
71    x = x + 1;
72    x = x - 1;
73    ok = ok && x == ivec4(unknown);
74    return ok;
75}
76vec4 main() {
77    bool _0_ok = true;
78    vec4 _1_x = vec4(6.0, 6.0, 7.0, 8.0);
79    _0_ok = _0_ok && _1_x == vec4(6.0, 6.0, 7.0, 8.0);
80    _1_x = vec4(7.0, 9.0, 9.0, 9.0);
81    _0_ok = _0_ok && _1_x == vec4(7.0, 9.0, 9.0, 9.0);
82    _1_x = vec4(9.0, 9.0, 10.0, 10.0);
83    _0_ok = _0_ok && _1_x == vec4(9.0, 9.0, 10.0, 10.0);
84    _1_x.xyz = vec3(6.0);
85    _0_ok = _0_ok && _1_x == vec4(6.0, 6.0, 6.0, 10.0);
86    _1_x.xy = vec2(3.0);
87    _0_ok = _0_ok && _1_x == vec4(3.0, 3.0, 6.0, 10.0);
88    _1_x = vec4(6.0);
89    _0_ok = _0_ok && _1_x == vec4(6.0);
90    _1_x = vec4(6.0, 6.0, 7.0, 8.0);
91    _0_ok = _0_ok && _1_x == vec4(6.0, 6.0, 7.0, 8.0);
92    _1_x = vec4(-7.0, -9.0, -9.0, -9.0);
93    _0_ok = _0_ok && _1_x == vec4(-7.0, -9.0, -9.0, -9.0);
94    _1_x = vec4(9.0, 9.0, 10.0, 10.0);
95    _0_ok = _0_ok && _1_x == vec4(9.0, 9.0, 10.0, 10.0);
96    _1_x.xyz = vec3(6.0);
97    _0_ok = _0_ok && _1_x == vec4(6.0, 6.0, 6.0, 10.0);
98    _1_x.xy = vec2(8.0);
99    _0_ok = _0_ok && _1_x == vec4(8.0, 8.0, 6.0, 10.0);
100    _1_x = vec4(2.0, 1.0, 0.5, 0.25);
101    _0_ok = _0_ok && _1_x == vec4(2.0, 1.0, 0.5, 0.25);
102    _1_x = vec4(6.0);
103    _0_ok = _0_ok && _1_x == vec4(6.0);
104    float _2_unknown = unknownInput;
105    _1_x = vec4(_2_unknown);
106    _0_ok = _0_ok && _1_x == vec4(_2_unknown);
107    _1_x = vec4(0.0);
108    _0_ok = _0_ok && _1_x == vec4(0.0);
109    _1_x = vec4(0.0) / _2_unknown;
110    _0_ok = _0_ok && _1_x == vec4(0.0);
111    _1_x = vec4(_2_unknown);
112    _0_ok = _0_ok && _1_x == vec4(_2_unknown);
113    _1_x = vec4(_2_unknown);
114    _0_ok = _0_ok && _1_x == vec4(_2_unknown);
115    _1_x = vec4(_2_unknown);
116    _0_ok = _0_ok && _1_x == vec4(_2_unknown);
117    _1_x = vec4(_2_unknown);
118    _0_ok = _0_ok && _1_x == vec4(_2_unknown);
119    _1_x = vec4(_2_unknown);
120    _0_ok = _0_ok && _1_x == vec4(_2_unknown);
121    _1_x = vec4(_2_unknown);
122    _0_ok = _0_ok && _1_x == vec4(_2_unknown);
123    _1_x = vec4(0.0);
124    _0_ok = _0_ok && _1_x == vec4(0.0);
125    _1_x = 0.0 / vec4(_2_unknown);
126    _0_ok = _0_ok && _1_x == vec4(0.0);
127    _1_x = vec4(_2_unknown);
128    _0_ok = _0_ok && _1_x == vec4(_2_unknown);
129    _1_x = vec4(_2_unknown);
130    _0_ok = _0_ok && _1_x == vec4(_2_unknown);
131    _1_x = vec4(0.0);
132    _0_ok = _0_ok && _1_x == vec4(0.0);
133    _1_x = vec4(_2_unknown);
134    _0_ok = _0_ok && _1_x == vec4(_2_unknown);
135    _1_x = vec4(_2_unknown);
136    _0_ok = _0_ok && _1_x == vec4(_2_unknown);
137    _1_x = vec4(_2_unknown);
138    _1_x += 1.0;
139    _1_x -= 1.0;
140    _0_ok = _0_ok && _1_x == vec4(_2_unknown);
141    _1_x = vec4(_2_unknown);
142    _1_x = _1_x + 1.0;
143    _1_x = _1_x - 1.0;
144    _0_ok = _0_ok && _1_x == vec4(_2_unknown);
145    return _0_ok && test_int_b() ? colorGreen : colorRed;
146}
147