#version 310 es precision highp float; layout(binding = 0) uniform block { mediump float f; } instanceName; struct S { int i; } s; float a[5]; void main() { bool b; float f; int i; uint u; bvec3 b3; vec3 v3; ivec3 iv3; uvec3 uv3; vec4 v4; ivec4 iv4; uvec4 uv4; mat2 m2; mat4 m4; f * v4; u + u; uv4 / u; iv3 -= iv3; i %= 3; uv3 % 4u; --m2; iv4++; m4 != m4; m2 == m2; i <= i; a == a; s != s; b && b; b || b; b ^^ b; !b, uv3; ~i; ~u; ~uv3; ~iv3; uv3 <<= i; i >> i; u << u; iv3 >> iv3; i & i; u | u; iv3 ^ iv3; u & uv3; uv3 | u; uv3 &= u; int arr[0x222 & 0xf]; arr[1]; // size 2 int arr2[(uvec2(0, 0x2) | 0x1u).y]; arr2[2]; // size 3 }