1*c8dee2aaSAndroid Build Coastguard Workeruniform half4 testInputs, colorGreen, colorRed; 2*c8dee2aaSAndroid Build Coastguard Worker 3*c8dee2aaSAndroid Build Coastguard Workerhalf4 constant_swizzle() { 4*c8dee2aaSAndroid Build Coastguard Worker half4 v = testInputs; 5*c8dee2aaSAndroid Build Coastguard Worker half x = v[0]; 6*c8dee2aaSAndroid Build Coastguard Worker half y = v[1]; 7*c8dee2aaSAndroid Build Coastguard Worker half z = v[2]; 8*c8dee2aaSAndroid Build Coastguard Worker half w = v[3]; 9*c8dee2aaSAndroid Build Coastguard Worker return half4(x, y, z, w); // -1.25, 0, 0.75, 2.25 10*c8dee2aaSAndroid Build Coastguard Worker} 11*c8dee2aaSAndroid Build Coastguard Worker 12*c8dee2aaSAndroid Build Coastguard Workerhalf4 foldable_index() { 13*c8dee2aaSAndroid Build Coastguard Worker const int ZERO = 0, ONE = 1, TWO = 2, THREE = 3; 14*c8dee2aaSAndroid Build Coastguard Worker half x = testInputs[ZERO]; 15*c8dee2aaSAndroid Build Coastguard Worker half y = testInputs[ONE]; 16*c8dee2aaSAndroid Build Coastguard Worker half z = testInputs[TWO]; 17*c8dee2aaSAndroid Build Coastguard Worker half w = testInputs[THREE]; 18*c8dee2aaSAndroid Build Coastguard Worker return half4(x, y, z, w); // -1.25, 0, 0.75, 2.25 19*c8dee2aaSAndroid Build Coastguard Worker} 20*c8dee2aaSAndroid Build Coastguard Worker 21*c8dee2aaSAndroid Build Coastguard Workerhalf4 foldable() { 22*c8dee2aaSAndroid Build Coastguard Worker half4 v = half4(0, 1, 2, 3); 23*c8dee2aaSAndroid Build Coastguard Worker half x = v[0]; 24*c8dee2aaSAndroid Build Coastguard Worker half y = v[1]; 25*c8dee2aaSAndroid Build Coastguard Worker half z = v[2]; 26*c8dee2aaSAndroid Build Coastguard Worker half w = v[3]; 27*c8dee2aaSAndroid Build Coastguard Worker return half4(x, y, z, w); // 0, 1, 2, 3 28*c8dee2aaSAndroid Build Coastguard Worker} 29*c8dee2aaSAndroid Build Coastguard Worker 30*c8dee2aaSAndroid Build Coastguard Workerhalf4 main(float2 coords) { 31*c8dee2aaSAndroid Build Coastguard Worker half4 a = constant_swizzle(); 32*c8dee2aaSAndroid Build Coastguard Worker half4 b = foldable_index(); 33*c8dee2aaSAndroid Build Coastguard Worker half4 c = foldable(); 34*c8dee2aaSAndroid Build Coastguard Worker 35*c8dee2aaSAndroid Build Coastguard Worker return a == half4(-1.25, 0, 0.75, 2.25) && 36*c8dee2aaSAndroid Build Coastguard Worker b == half4(-1.25, 0, 0.75, 2.25) && 37*c8dee2aaSAndroid Build Coastguard Worker c == half4(0, 1, 2, 3) ? colorGreen : colorRed; 38*c8dee2aaSAndroid Build Coastguard Worker} 39