uniform half4 colorRed, colorGreen; struct S { half i; half j; }; half4 main(float2 coords) { // All of these assignments can be preserved. half4 x = half4(3, 2, 1, 0); x.xyz = x.zyx; S s; s.i = 2; s.j = 2; s.i = s.j; s.j = s.i; half a[2]; a[0] = 1; a[1] = 0; a[1] = a[0]; // All of these assignments should be eliminated. x.wy = x.wy; x.xyz = x.xyz; x = x; s.i = s.i; s.j = s.j; a[0] = a[0]; a[1] = a[1]; return half4(x.w, s.i / s.j, a[0] - a[1], a[0] * a[1]); }