#version 310 es void main() { int signed_value = 0; uint unsigned_value = 0u; ivec3 signed_values = ivec3(0); uvec3 unsigned_values = uvec3(0u); { int s = bitfieldExtract(signed_value, 5, 20); uint u = bitfieldExtract(unsigned_value, 6, 21); s = bitfieldInsert(s, 40, 5, 4); u = bitfieldInsert(u, 60u, 5, 4); u = bitfieldReverse(u); s = bitfieldReverse(s); int v0 = bitCount(u); int v1 = bitCount(s); int v2 = findMSB(u); int v3 = findLSB(s); } { ivec3 s = bitfieldExtract(signed_values, 5, 20); uvec3 u = bitfieldExtract(unsigned_values, 6, 21); s = bitfieldInsert(s, ivec3(40), 5, 4); u = bitfieldInsert(u, uvec3(60u), 5, 4); u = bitfieldReverse(u); s = bitfieldReverse(s); ivec3 v0 = bitCount(u); ivec3 v1 = bitCount(s); ivec3 v2 = findMSB(u); ivec3 v3 = findLSB(s); } }