uniform half4 colorGreen, colorRed; half4 main(float2 coords) { const bool TRUE = true; const bool FALSE = false; bool ok = true; // Literal test ok = ok && (true ? true : false); ok = ok && (false ? false : true); // Constant boolean test ok = ok && (TRUE ? true : false); ok = ok && (FALSE ? false : true); // Constant-foldable test ok = ok && (1 == 1 ? true : false); ok = ok && (0 == 1 ? false : true); // Unknown-value test ok = ok && (colorGreen.g == 1 ? true : false); ok = ok && (colorGreen.r == 1 ? false : true); // Composite comparison test. ok = ok && (colorGreen.gr == colorRed.rg ? true : false); ok = ok && (colorGreen.gr != colorRed.rg ? false : true); // Test simplification of ternaries to logical-and/logical-or. ok = ok && (colorGreen.gr == colorRed.rg ? true : (colorGreen.a != colorRed.a)); ok = ok && (colorGreen.gr != colorRed.rg ? (colorGreen.a == colorRed.a) : false); return ok ? colorGreen : colorRed; }