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 = constVal;
    const uint constXY = packHalf2x16(constVal.xy);
    const uint constZW = packHalf2x16(constVal.zw);
    uint xy = packHalf2x16(testInputs.xy);
    uint zw = packHalf2x16(testInputs.zw);

    return (unpackHalf2x16(xy)      == float2(expected.xy) &&
            unpackHalf2x16(zw)      == float2(expected.zw) &&
            unpackHalf2x16(constXY) == float2(expected.xy) &&
            unpackHalf2x16(constZW) == float2(expected.zw))
              ? colorGreen : colorRed;
}
