uniform half4 colorRed, colorGreen;

struct S {
    half i;
    half j;
};

half4 main() {
    // 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.ay = x.ay;
    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]);
}
