uniform half4 colorRed, colorGreen;

bool test() {
    const half4 colorWhite = half4(1);
    const half2 point = half2(40, 60);

    bool ok = true;
    // Comparisons on swizzled constants should fold
    ok = ok && (point.x >= 0 && point.x <= 100 && point.y >= 0 && point.y <= 100);

    // Arithmetic on swizzled constants should fold
    ok = ok && (colorWhite.x == 1);
    ok = ok && (colorWhite.x + colorWhite.y == 2);
    ok = ok && (colorWhite.x + colorWhite.y + colorWhite.z == 3);
    ok = ok && (colorWhite.x + colorWhite.y + colorWhite.z + colorWhite.w == 4);

    // No-op arithmetic using swizzled constants should fold away
    ok = ok && ((colorGreen * colorWhite.x) != (colorRed * colorWhite.y));

    // Folding on swizzles with more than one component should be optimized.
    const half2 pointOffset = point.yx + colorWhite.xz;
    ok = ok && (pointOffset == half2(61, 41));

    return ok;
}

half4 main(float2 coords) {
    return test() ? colorGreen : colorRed;
}
