| #version 310 es | |
| in uint u1; | |
| in uvec2 u2; | |
| in uvec3 u3; | |
| in uvec4 u4; | |
| in float v1; | |
| in vec2 v2; | |
| in vec3 v3; | |
| in vec4 v4; | |
| in int i1; | |
| in ivec2 i2; | |
| in ivec3 i3; | |
| in ivec4 i4; | |
| out uvec4 uout; | |
| out ivec4 iout; | |
| out vec4 fout; | |
| void main() | |
| { | |
| iout = ivec4(0); | |
| uout = uvec4(0); | |
| fout = vec4(0.0); | |
| uvec2 u2out; | |
| uout.xy += uaddCarry(u2, u2, u2out); | |
| uout.xy += u2out; | |
| uint u1out; | |
| uout.x += usubBorrow(u1, u1, u1out); | |
| uout.x += u1out; | |
| uvec4 u4outHi, u4outLow; | |
| umulExtended(u4, u4, u4outHi, u4outLow); | |
| uout += u4outHi + u4outLow; | |
| ivec4 i4outHi, i4outLow; | |
| imulExtended(i4, i4, i4outHi, i4outLow); | |
| iout += i4outLow + i4outHi; | |
| ivec3 i3out; | |
| fout.xyz += frexp(v3, i3out); | |
| iout.xyz += i3out; | |
| int i1out; | |
| fout.x += frexp(v1, i1out); | |
| iout.x += i1out; | |
| fout.xy += ldexp(v2, i2); | |
| fout.x += ldexp(v1, i1); | |
| iout.x += bitfieldExtract(i1, 4, 5); | |
| uout.xyz += bitfieldExtract(u3, 4, 5); | |
| iout.xyz += bitfieldInsert(i3, i3, 4, 5); | |
| uout.x += bitfieldInsert(u1, u1, 4, 5); | |
| iout.xy += bitfieldReverse(i2); | |
| uout += bitfieldReverse(u4); | |
| iout.x += bitCount(i1); | |
| iout.xyz += bitCount(u3); | |
| iout.xy += findLSB(i2); | |
| iout += findLSB(u4); | |
| iout.x += findMSB(i1); | |
| iout.xy += findMSB(u2); | |
| uout.x += packUnorm4x8(v4); | |
| uout.x += packSnorm4x8(v4); | |
| fout += unpackUnorm4x8(u1); | |
| fout += unpackSnorm4x8(u1); | |
| } |