xref: /aosp_15_r20/external/skia/resources/sksl/folding/IntFoldingES2.rts (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1uniform half4 colorRed, colorGreen;
2uniform half  unknownInput;
3
4bool test() {
5    int unknown = int(unknownInput);
6
7    bool ok = true;
8    int x = 32 + 2;
9    ok = ok && (x == 34);
10    x = 32 - 2;
11    ok = ok && (x == 30);
12    x = 32 * 2;
13    ok = ok && (x == 64);
14    x = 32 / 2;
15    ok = ok && (x == 16);
16    x = -1 == -1 ? 1 : -1;
17    ok = ok && (x == 1);
18    x = -1 == -2 ? 2 : -2;
19    ok = ok && (x == -2);
20    x = 0 != 1 ? 3 : -3;
21    ok = ok && (x == 3);
22    x = 0 != 0 ? 4 : -4;
23    ok = ok && (x == -4);
24    x = 6 > 5 ? 5 : -5;
25    ok = ok && (x == 5);
26    x = 6 > 6 ? 6 : -6;
27    ok = ok && (x == -6);
28    x = -1 < 0 ? 7 : -7;
29    ok = ok && (x == 7);
30    x = 1 < 0 ? 8 : -8;
31    ok = ok && (x == -8);
32    x = 6 >= 6 ? 9 : -9;
33    ok = ok && (x == 9);
34    x = 6 >= 7 ? 10 : -10;
35    ok = ok && (x == -10);
36    x = 6 <= 6 ? 11 : -11;
37    ok = ok && (x == 11);
38    x = 6 <= 5 ? 12 : -12;
39    ok = ok && (x == -12);
40
41    x = unknown + 0;
42    ok = ok && (x == unknown);
43    x = 0 + unknown;
44    ok = ok && (x == unknown);
45    x = unknown - 0;
46    ok = ok && (x == unknown);
47    x = unknown * 0;
48    ok = ok && (x == 0);
49    x = unknown * 1;
50    ok = ok && (x == unknown);
51    x = 1 * unknown;
52    ok = ok && (x == unknown);
53    x = 0 * unknown;
54    ok = ok && (x == 0);
55    x = unknown / 1;
56    ok = ok && (x == unknown);
57    x = 0 / unknown;
58    ok = ok && (x == 0);
59    x += 1;
60    ok = ok && (x == 1);
61    x += 0;
62    ok = ok && (x == 1);
63    x -= 2;
64    ok = ok && (x == -1);
65    x -= 0;
66    ok = ok && (x == -1);
67    x *= 1;
68    ok = ok && (x == -1);
69    x *= 2;
70    ok = ok && (x == -2);
71    x /= 1;
72    ok = ok && (x == -2);
73    x /= 2;
74    ok = ok && (x == -1);
75    return ok;
76}
77
78half4 main(float2 coords) {
79    return test() ? colorGreen : colorRed;
80}
81