uniform float testInput; uniform float2x2 testMatrix2x2; uniform half4 colorGreen, colorRed; half4 main(float2 coords) { const float4 constVal = float4(-1, 0, 1, 2); const uint4 expectedA = uint4(0xBF800000, 0x00000000, 0x3F800000, 0x40000000); float4 input = float4(testMatrix2x2) * float4(1, 1, -1, -1); uint4 expectedB = uint4(0x3F800000, 0x40000000, 0xC0400000, 0xC0800000); return (constVal.x == uintBitsToFloat(expectedA.x) && constVal.xy == uintBitsToFloat(expectedA.xy) && constVal.xyz == uintBitsToFloat(expectedA.xyz) && constVal.xyzw == uintBitsToFloat(expectedA.xyzw) && input.x == uintBitsToFloat(expectedB.x) && input.xy == uintBitsToFloat(expectedB.xy) && input.xyz == uintBitsToFloat(expectedB.xyz) && input.xyzw == uintBitsToFloat(expectedB.xyzw)) ? colorGreen : colorRed; }