38 lines
1.3 KiB
Plaintext
38 lines
1.3 KiB
Plaintext
|
void main() {
|
||
|
bool expr1 = sk_FragCoord.x > 0;
|
||
|
bool expr2 = sk_FragCoord.y > 0;
|
||
|
|
||
|
if (true && expr1) { // -> if (expr1)
|
||
|
sk_FragColor.r = 1;
|
||
|
} else if (false && expr1) { // -> if (false) -> block removed
|
||
|
sk_FragColor.r = -2;
|
||
|
} else if (true ^^ expr1) { // -> if (!expr1)
|
||
|
sk_FragColor.r = 3;
|
||
|
} else if (false ^^ expr2) { // -> if (expr2)
|
||
|
sk_FragColor.r = 4;
|
||
|
} else if (false || expr2) { // -> if (expr2)
|
||
|
sk_FragColor.r = 5;
|
||
|
} else if (true || expr2) { // -> if (true) -> replaces unreachable else
|
||
|
sk_FragColor.r = 6;
|
||
|
} else { // removed
|
||
|
sk_FragColor.r = -7;
|
||
|
}
|
||
|
|
||
|
// Test short-circuiting of right hand side boolean literals
|
||
|
if (expr1 && true) { // -> if (expr1)
|
||
|
sk_FragColor.r = 1;
|
||
|
} else if (expr1 && false) { // -> if (false) -> block removed
|
||
|
sk_FragColor.r = -2;
|
||
|
} else if (expr1 ^^ true) { // -> if (!expr1)
|
||
|
sk_FragColor.r = 3;
|
||
|
} else if (expr2 ^^ false) { // -> if (expr2)
|
||
|
sk_FragColor.r = 4;
|
||
|
} else if (expr2 || false) { // -> if (expr2)
|
||
|
sk_FragColor.r = 5;
|
||
|
} else if (expr2 || true) { // -> if (true) -> replaces unreachable else
|
||
|
sk_FragColor.r = 6;
|
||
|
} else { // removed
|
||
|
sk_FragColor.r = -7;
|
||
|
}
|
||
|
}
|