• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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    x = unknown + 0;
41    ok = ok && (x == unknown);
42    x = 0 + unknown;
43    ok = ok && (x == unknown);
44    x = unknown - 0;
45    ok = ok && (x == unknown);
46    x = unknown * 0;
47    ok = ok && (x == 0);
48    x = unknown * 1;
49    ok = ok && (x == unknown);
50    x = 1 * unknown;
51    ok = ok && (x == unknown);
52    x = 0 * unknown;
53    ok = ok && (x == 0);
54    x = unknown / 1;
55    ok = ok && (x == unknown);
56    x = 0 / unknown;
57    ok = ok && (x == 0);
58    x += 1;                    // TODO(skia:11192): constant propagation for `+=` style operators
59    ok = ok && (x == 1);
60    x += 0;
61    ok = ok && (x == 1);
62    x -= 2;
63    ok = ok && (x == -1);
64    x -= 0;
65    ok = ok && (x == -1);
66    x *= 1;
67    ok = ok && (x == -1);
68    x *= 2;
69    ok = ok && (x == -2);
70    x /= 1;
71    ok = ok && (x == -2);
72    x /= 2;
73    ok = ok && (x == -1);
74    return ok;
75}
76
77half4 main(float2 coords) {
78    return test() ? colorGreen : colorRed;
79}
80