uniform half4 colorGreen, colorRed;
uniform float4 testInputs;  // equals (-1.25, 0, 0.75, 2.25)

half4 main(float2 coords) {
    const float4 constVal = float4(-1.25, 0, 0.75, 2.25);
    const float4 expected = clamp(constVal, -1, 1);
    const uint constXY = packSnorm2x16(constVal.xy);
    const uint constZW = packSnorm2x16(constVal.zw);
    uint xy = packSnorm2x16(testInputs.xy);
    uint zw = packSnorm2x16(testInputs.zw);
    const float2 tolerance = float2(0.015625);

    return (all(lessThan(abs(unpackSnorm2x16(xy)      - float2(expected.xy)), tolerance)) &&
            all(lessThan(abs(unpackSnorm2x16(zw)      - float2(expected.zw)), tolerance)) &&
            all(lessThan(abs(unpackSnorm2x16(constXY) - float2(expected.xy)), tolerance)) &&
            all(lessThan(abs(unpackSnorm2x16(constZW) - float2(expected.zw)), tolerance)))
              ? colorGreen : colorRed;
}
