1*c8dee2aaSAndroid Build Coastguard Workeruniform half4 colorGreen, colorRed; 2*c8dee2aaSAndroid Build Coastguard Worker 3*c8dee2aaSAndroid Build Coastguard Workerhalf4 main(float2 coords) { 4*c8dee2aaSAndroid Build Coastguard Worker const bool TRUE = true; 5*c8dee2aaSAndroid Build Coastguard Worker const bool FALSE = false; 6*c8dee2aaSAndroid Build Coastguard Worker 7*c8dee2aaSAndroid Build Coastguard Worker bool ok = true; 8*c8dee2aaSAndroid Build Coastguard Worker 9*c8dee2aaSAndroid Build Coastguard Worker // Literal test 10*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (true ? true : false); 11*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (false ? false : true); 12*c8dee2aaSAndroid Build Coastguard Worker 13*c8dee2aaSAndroid Build Coastguard Worker // Constant boolean test 14*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (TRUE ? true : false); 15*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (FALSE ? false : true); 16*c8dee2aaSAndroid Build Coastguard Worker 17*c8dee2aaSAndroid Build Coastguard Worker // Constant-foldable test 18*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (1 == 1 ? true : false); 19*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (0 == 1 ? false : true); 20*c8dee2aaSAndroid Build Coastguard Worker 21*c8dee2aaSAndroid Build Coastguard Worker // Unknown-value test 22*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (colorGreen.g == 1 ? true : false); 23*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (colorGreen.r == 1 ? false : true); 24*c8dee2aaSAndroid Build Coastguard Worker 25*c8dee2aaSAndroid Build Coastguard Worker // Composite comparison test. 26*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (colorGreen.gr == colorRed.rg ? true : false); 27*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (colorGreen.gr != colorRed.rg ? false : true); 28*c8dee2aaSAndroid Build Coastguard Worker 29*c8dee2aaSAndroid Build Coastguard Worker // Test simplification of ternaries to logical-and/logical-or. 30*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (colorGreen.gr == colorRed.rg ? true : (colorGreen.a != colorRed.a)); 31*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (colorGreen.gr != colorRed.rg ? (colorGreen.a == colorRed.a) : false); 32*c8dee2aaSAndroid Build Coastguard Worker 33*c8dee2aaSAndroid Build Coastguard Worker return ok ? colorGreen : colorRed; 34*c8dee2aaSAndroid Build Coastguard Worker} 35