#version 310 es
precision mediump float;
precision highp int;

const float _16[16] = float[](1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0, 4.0);
const vec4 _60[4] = vec4[](vec4(0.0), vec4(1.0), vec4(8.0), vec4(5.0));

layout(location = 0) out float FragColor;
layout(location = 0) flat in mediump int index;

void main()
{
    FragColor = _16[index];
    if (index < 10)
    {
        FragColor += _16[index ^ 1];
    }
    else
    {
        FragColor += _16[index & 1];
    }
    if (index > 30)
    {
        FragColor += _60[index & 3].y;
    }
    else
    {
        FragColor += _60[index & 1].x;
    }
    vec4 foobar[4] = _60;
    if (index > 30)
    {
        foobar[1].z = 20.0;
    }
    FragColor += foobar[index & 3].z;
    vec4 baz[4] = _60;
    baz = vec4[](vec4(20.0), vec4(30.0), vec4(50.0), vec4(60.0));
    FragColor += baz[index & 3].z;
}

