/*#pragma settings NoInline*/

uniform half4 colorGreen, colorRed;

half4 dead_fn(half4 a, half4 b) {
    return a * b;
}

half4 live_fn(half4 a, half4 b) {
    return a + b;
}

half4 main() {
    bool TRUE = true, FALSE = false;
    half4 a, b;

    if (FALSE) {
        // Dead stripping a user function.
        half4 unused = dead_fn(half4(0.5), half4(2));
    } else {
        // A live user function.
        a = live_fn(half4(3), half4(-5));
    }

    if (TRUE) {
        // A live built-in function.
        b = unpremul(half4(1));
    } else {
        // Dead stripping a built-in function.
        float4 unused = unpremul_float(float4(-1));
    }

    return (a != half4(0) && b != half4(0)) ? colorGreen : colorRed;
}
