uniform half4 colorGreen, colorRed; uniform half4 testInputs; half4 main(float2 coords) { bool ok = true; const half4 vec1234 = half4(1, 2, 3, 4); ok = ok && half2x2(testInputs) == half2x2(-1.25, 0, 0.75, 2.25); ok = ok && half2x2(half4(1, 2, 3, 4)) == half2x2(1, 2, 3, 4); ok = ok && half2x2(vec1234) == half2x2(1, 2, 3, 4); ok = ok && float2x2(testInputs) == float2x2(-1.25, 0, 0.75, 2.25); ok = ok && float2x2(half4(1, 2, 3, 4)) == float2x2(1, 2, 3, 4); ok = ok && float2x2(vec1234) == float2x2(1, 2, 3, 4); ok = ok && half2x2(colorGreen) == half2x2(0, 1, 0, 1); ok = ok && half2x2(colorGreen) == half2x2(int4(0, 1, 0, 1)); ok = ok && half2x2(int4(colorGreen)) == half2x2(int4(0, 1, 0, 1)); ok = ok && half2x2(0, 1, 0, 1) == half2x2(int4(0, 1, 0, 1)); ok = ok && half2x2(colorGreen) == half2x2(false, true, false, true); ok = ok && half2x2(colorGreen) == half2x2(bool4(false, true, false, true)); ok = ok && half2x2(bool4(colorGreen)) == half2x2(bool4(false, true, false, true)); ok = ok && half2x2(false, true, false, true) == half2x2(bool4(false, true, false, true)); return ok ? colorGreen : colorRed; }