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;
    }
}
