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