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