1*c8dee2aaSAndroid Build Coastguard Workeruniform half4 colorRed, colorGreen; 2*c8dee2aaSAndroid Build Coastguard Workeruniform float unknownInput; 3*c8dee2aaSAndroid Build Coastguard Worker 4*c8dee2aaSAndroid Build Coastguard Workerbool test() { 5*c8dee2aaSAndroid Build Coastguard Worker half unknown = half(unknownInput); 6*c8dee2aaSAndroid Build Coastguard Worker 7*c8dee2aaSAndroid Build Coastguard Worker bool ok = true; 8*c8dee2aaSAndroid Build Coastguard Worker half x = 32.0 + 2.0; 9*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (x == 34); 10*c8dee2aaSAndroid Build Coastguard Worker x = 32.0 - 2.0; 11*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (x == 30); 12*c8dee2aaSAndroid Build Coastguard Worker x = 32.0 * 2.0; 13*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (x == 64); 14*c8dee2aaSAndroid Build Coastguard Worker x = 32.0 / 2.0; 15*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (x == 16); 16*c8dee2aaSAndroid Build Coastguard Worker x = (12 > 2.0) ? (10 * 2 / 5 + 18 - 3) : 0; 17*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (x == 19); 18*c8dee2aaSAndroid Build Coastguard Worker x = 0.0 == 0.0 ? 1 : -1; 19*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (x == 1); 20*c8dee2aaSAndroid Build Coastguard Worker x = 0.0 == 1.0 ? 2 : -2; 21*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (x == -2); 22*c8dee2aaSAndroid Build Coastguard Worker x = 0.0 != 1.0 ? 3 : -3; 23*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (x == 3); 24*c8dee2aaSAndroid Build Coastguard Worker x = 0.0 != 0.0 ? 4 : -4; 25*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (x == -4); 26*c8dee2aaSAndroid Build Coastguard Worker x = 6.0 > 5.0 ? 5 : -5; 27*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (x == 5); 28*c8dee2aaSAndroid Build Coastguard Worker x = 6.0 > 6.0 ? 6 : -6; 29*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (x == -6); 30*c8dee2aaSAndroid Build Coastguard Worker x = 6.0 >= 6.0 ? 7 : -7; 31*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (x == 7); 32*c8dee2aaSAndroid Build Coastguard Worker x = 6.0 >= 7.0 ? 8 : -8; 33*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (x == -8); 34*c8dee2aaSAndroid Build Coastguard Worker x = 5.0 < 6.0 ? 9 : -9; 35*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (x == 9); 36*c8dee2aaSAndroid Build Coastguard Worker x = 6.0 < 6.0 ? 10 : -10; 37*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (x == -10); 38*c8dee2aaSAndroid Build Coastguard Worker x = 6.0 <= 6.0 ? 11 : -11; 39*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (x == 11); 40*c8dee2aaSAndroid Build Coastguard Worker x = 6.0 <= 5.0 ? 12 : -12; 41*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (x == -12); 42*c8dee2aaSAndroid Build Coastguard Worker 43*c8dee2aaSAndroid Build Coastguard Worker x = half(unknown + 0); 44*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (x == unknown); 45*c8dee2aaSAndroid Build Coastguard Worker x = half(0 + unknown); 46*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (x == unknown); 47*c8dee2aaSAndroid Build Coastguard Worker x = half(unknown - 0); 48*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (x == unknown); 49*c8dee2aaSAndroid Build Coastguard Worker x = half(unknown * 0); 50*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (x == 0); 51*c8dee2aaSAndroid Build Coastguard Worker x = half(unknown * 1); 52*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (x == unknown); 53*c8dee2aaSAndroid Build Coastguard Worker x = half(1 * unknown); 54*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (x == unknown); 55*c8dee2aaSAndroid Build Coastguard Worker x = half(0 * unknown); 56*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (x == 0); 57*c8dee2aaSAndroid Build Coastguard Worker x = half(unknown / 1); 58*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (x == unknown); 59*c8dee2aaSAndroid Build Coastguard Worker x = half(0 / unknown); // this should NOT optimize away 60*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (x == 0); 61*c8dee2aaSAndroid Build Coastguard Worker x += 1; 62*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (x == 1); 63*c8dee2aaSAndroid Build Coastguard Worker x += 0; 64*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (x == 1); 65*c8dee2aaSAndroid Build Coastguard Worker x -= 2; 66*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (x == -1); 67*c8dee2aaSAndroid Build Coastguard Worker x -= 0; 68*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (x == -1); 69*c8dee2aaSAndroid Build Coastguard Worker x *= 1; 70*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (x == -1); 71*c8dee2aaSAndroid Build Coastguard Worker x *= 2; 72*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (x == -2); 73*c8dee2aaSAndroid Build Coastguard Worker x /= 1; 74*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (x == -2); 75*c8dee2aaSAndroid Build Coastguard Worker x /= 2; 76*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (x == -1); 77*c8dee2aaSAndroid Build Coastguard Worker return ok; 78*c8dee2aaSAndroid Build Coastguard Worker} 79*c8dee2aaSAndroid Build Coastguard Worker 80*c8dee2aaSAndroid Build Coastguard Workerhalf4 main(float2 coords) { 81*c8dee2aaSAndroid Build Coastguard Worker return test() ? colorGreen : colorRed; 82*c8dee2aaSAndroid Build Coastguard Worker} 83