| uniform half4 testInputs, colorGreen, colorRed; |
| |
| half4 constant_swizzle() { |
| half4 v = testInputs; |
| half x = v[0]; |
| half y = v[1]; |
| half z = v[2]; |
| half w = v[3]; |
| return half4(x, y, z, w); // -1.25, 0, 0.75, 2.25 |
| } |
| |
| half4 foldable_index() { |
| const int ZERO = 0, ONE = 1, TWO = 2, THREE = 3; |
| half x = testInputs[ZERO]; |
| half y = testInputs[ONE]; |
| half z = testInputs[TWO]; |
| half w = testInputs[THREE]; |
| return half4(x, y, z, w); // -1.25, 0, 0.75, 2.25 |
| } |
| |
| half4 foldable() { |
| half4 v = half4(0, 1, 2, 3); |
| half x = v[0]; |
| half y = v[1]; |
| half z = v[2]; |
| half w = v[3]; |
| return half4(x, y, z, w); // 0, 1, 2, 3 |
| } |
| |
| half4 main(float2 coords) { |
| half4 a = constant_swizzle(); |
| half4 b = foldable_index(); |
| half4 c = foldable(); |
| |
| return a == half4(-1.25, 0, 0.75, 2.25) && |
| b == half4(-1.25, 0, 0.75, 2.25) && |
| c == half4(0, 1, 2, 3) ? colorGreen : colorRed; |
| } |