1uniform half4 colorGreen, colorRed; 2uniform half4 testInputs; 3 4half4 main(float2 coords) { 5 bool ok = true; 6 7 const half4 vec1234 = half4(1, 2, 3, 4); 8 9 ok = ok && half2x2(testInputs) == half2x2(-1.25, 0, 0.75, 2.25); 10 ok = ok && half2x2(half4(1, 2, 3, 4)) == half2x2(1, 2, 3, 4); 11 ok = ok && half2x2(vec1234) == half2x2(1, 2, 3, 4); 12 ok = ok && half2x2(half4(2, 0, 0, 2)) == half2x2(2); 13 ok = ok && half2x2(half4(2)) == half2x2(2, 2, 2, 2); 14 15 ok = ok && float2x2(testInputs) == float2x2(-1.25, 0, 0.75, 2.25); 16 ok = ok && float2x2(half4(1, 2, 3, 4)) == float2x2(1, 2, 3, 4); 17 ok = ok && float2x2(vec1234) == float2x2(1, 2, 3, 4); 18 ok = ok && float2x2(half4(4, 0, 0, 4)) == float2x2(4); 19 ok = ok && float2x2(half4(4)) == float2x2(4, 4, 4, 4); 20 21 ok = ok && half2x2(colorGreen) == half2x2(0, 1, 0, 1); 22 ok = ok && half2x2(colorGreen) == half2x2(int4(0, 1, 0, 1)); 23 ok = ok && half2x2(int4(colorGreen)) == half2x2(int4(0, 1, 0, 1)); 24 ok = ok && half2x2(0, 1, 0, 1) == half2x2(int4(0, 1, 0, 1)); 25 ok = ok && half2x2(8, 8, 8, 8) == half2x2(int4(8)); 26 ok = ok && half2x2(8) == half2x2(int4(8, 0, 0, 8)); 27 28 ok = ok && half2x2(colorGreen) == half2x2(false, true, false, true); 29 ok = ok && half2x2(colorGreen) == half2x2(bool4(false, true, false, true)); 30 ok = ok && half2x2(bool4(colorGreen)) == half2x2(bool4(false, true, false, true)); 31 ok = ok && half2x2(false, true, false, true) == half2x2(bool4(false, true, false, true)); 32 ok = ok && half2x2(true, false, false, true) == half2x2(bool4(true, false, false, true)); 33 ok = ok && half2x2(true, true, true, true) == half2x2(bool4(true)); 34 35 return ok ? colorGreen : colorRed; 36} 37