uniform half4 a, b;
uniform uint2 c, d;
uniform int3 e, f;
void main() {
    const int4 int4_zero = int4(0);
    bool4 expectFFTT = greaterThan(half4(1, 2, 2.5, 2.75), half4(2.25));
    bool4 expectTTFF = greaterThan(int4_zero, int4(-100, -50, 0, 50));

    sk_FragColor.x = greaterThan(a, b).x ? 1 : 0;
    sk_FragColor.y = greaterThan(c, d).y ? 1 : 0;
    sk_FragColor.z = greaterThan(e, f).z ? 1 : 0;
    sk_FragColor.w = any(expectTTFF) || any(expectFFTT) ? 1 : 0;
}
