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