1#version 300 es
2
3int imax, imin;
4uint umax, umin;
5
6vec3 x, y;    // ERROR, needs default precision
7bvec3 bv;
8
9uint uy;
10uvec2 uv2c;
11uvec2 uv2y;
12uvec2 uv2x;
13uvec4 uv4y;
14
15ivec3 iv3a;
16ivec3 iv3b;
17
18ivec4 iv4a;
19ivec4 iv4b;
20
21float f;
22
23vec2 v2a, v2b;
24vec4 v4;
25
26void main()
27{
28    // 1.3 int
29    vec3 v = mix(x, y, bv);
30    ivec4 iv10 = abs(iv4a);
31    ivec4 iv11 = sign(iv4a);
32    ivec4 iv12 = min(iv4a, iv4b);
33    ivec4 iv13 = min(iv4a, imin);
34    uvec2 u = min(uv2x, uv2y);
35    uvec4 uv = min(uv4y, uy);
36    ivec3 iv14 = max(iv3a, iv3b);
37    ivec4 iv15 = max(iv4a, imax);
38    uvec2 u10 = max(uv2x, uv2y);
39    uvec2 u11 = max(uv2x, uy);
40    ivec4 iv16 = clamp(iv4a, iv4a, iv4b);
41    ivec4 iv17 = clamp(iv4a, imin, imax);
42    uvec2 u12 = clamp(uv2x, uv2y, uv2c);
43    uvec4 uv10 = clamp(uv4y, umin, umax);
44
45    // 1.3 float
46    vec3 modfOut;
47    vec3 v11 = modf(x, modfOut);
48
49    float t = trunc(f);
50    vec2 v12 = round(v2a);
51    vec2 v13 = roundEven(v2a);
52    bvec2 b10 = isnan(v2a);
53    bvec4 b11 = isinf(v4);
54
55    // 3.3 float
56    int i = floatBitsToInt(f);
57    uvec4 uv11 = floatBitsToUint(v4);
58    vec4 v14 = intBitsToFloat(iv4a);
59    vec2 v15 = uintBitsToFloat(uv2c);
60
61    // 4.0  pack
62    uint u19 = packSnorm2x16(v2a);
63    vec2 v20 = unpackSnorm2x16(uy);
64    uint u15 = packUnorm2x16(v2a);
65    vec2 v16 = unpackUnorm2x16(uy);
66    uint u17 = packHalf2x16(v2b);
67    vec2 v18 = unpackHalf2x16(uy);
68
69    // not present
70    noise2(v18);  // ERROR, not present
71
72    float t__;  // ERROR, no __ until revision 310
73
74      // ERROR, no __ until revision 310
75    #define __D
76}
77