blob: 400fc3d284123ecf411b874b2322071ce9441ef6 [file] [edit]
#version 450
#extension GL_EXT_shader_explicit_arithmetic_types: enable
#extension GL_EXT_shader_explicit_arithmetic_types_int8: require
#extension GL_EXT_shader_explicit_arithmetic_types_int16: require
layout(binding = 0) uniform Uniforms
{
uint index;
};
void main()
{
}
void bitOps8(int8_t a, int8_t b)
{
int8_t i8;
i8vec2 i8v2;
i8vec3 i8v3;
i8vec4 i8v4;
uint8_t u8;
u8vec2 u8v2;
u8vec3 u8v3;
u8vec4 u8v4;
i8 = bitfieldReverse(i8);
i8v2 = bitfieldReverse(i8v2);
i8v3 = bitfieldReverse(i8v3);
i8v4 = bitfieldReverse(i8v4);
u8 = bitfieldReverse(u8);
u8v2 = bitfieldReverse(u8v2);
u8v3 = bitfieldReverse(u8v3);
u8v4 = bitfieldReverse(u8v4);
i8 = findMSB(i8);
i8v2 = findMSB(i8v2);
i8v3 = findMSB(i8v3);
i8v4 = findMSB(i8v4);
i8 = findMSB(u8);
i8v2 = findMSB(u8v2);
i8v3 = findMSB(u8v3);
i8v4 = findMSB(u8v4);
i8 = findLSB(i8);
i8v2 = findLSB(i8v2);
i8v3 = findLSB(i8v3);
i8v4 = findLSB(i8v4);
i8 = findLSB(u8);
i8v2 = findLSB(u8v2);
i8v3 = findLSB(u8v3);
i8v4 = findLSB(u8v4);
i8 = bitCount(i8);
i8v2 = bitCount(i8v2);
i8v3 = bitCount(i8v3);
i8v4 = bitCount(i8v4);
i8 = bitCount(u8);
i8v2 = bitCount(u8v2);
i8v3 = bitCount(u8v3);
i8v4 = bitCount(u8v4);
i8 = bitfieldExtract(i8, a, b);
i8v2 = bitfieldExtract(i8v2, a, b);
i8v3 = bitfieldExtract(i8v3, a, b);
i8v4 = bitfieldExtract(i8v4, a, b);
u8 = bitfieldExtract(u8, a, b);
u8v2 = bitfieldExtract(u8v2, a, b);
u8v3 = bitfieldExtract(u8v3, a, b);
u8v4 = bitfieldExtract(u8v4, a, b);
i8 = bitfieldInsert(i8, i8, a, b);
i8v2 = bitfieldInsert(i8v2, i8v2, a, b);
i8v3 = bitfieldInsert(i8v3, i8v3, a, b);
i8v4 = bitfieldInsert(i8v4, i8v4, a, b);
u8 = bitfieldInsert(u8, u8, a, b);
u8v2 = bitfieldInsert(u8v2, u8v2, a, b);
u8v3 = bitfieldInsert(u8v3, u8v3, a, b);
u8v4 = bitfieldInsert(u8v4, u8v4, a, b);
}
void bitOps16(int16_t a, int16_t b)
{
int16_t i16;
i16vec2 i16v2;
i16vec3 i16v3;
i16vec4 i16v4;
uint16_t u16;
u16vec2 u16v2;
u16vec3 u16v3;
u16vec4 u16v4;
i16 = bitfieldReverse(i16);
i16v2 = bitfieldReverse(i16v2);
i16v3 = bitfieldReverse(i16v3);
i16v4 = bitfieldReverse(i16v4);
u16 = bitfieldReverse(u16);
u16v2 = bitfieldReverse(u16v2);
u16v3 = bitfieldReverse(u16v3);
u16v4 = bitfieldReverse(u16v4);
i16 = findMSB(i16);
i16v2 = findMSB(i16v2);
i16v3 = findMSB(i16v3);
i16v4 = findMSB(i16v4);
u16 = findMSB(u16);
u16v2 = findMSB(u16v2);
u16v3 = findMSB(u16v3);
u16v4 = findMSB(u16v4);
i16 = findLSB(i16);
i16v2 = findLSB(i16v2);
i16v3 = findLSB(i16v3);
i16v4 = findLSB(i16v4);
i16 = findLSB(u16);
i16v2 = findLSB(u16v2);
i16v3 = findLSB(u16v3);
i16v4 = findLSB(u16v4);
i16 = bitCount(i16);
i16v2 = bitCount(i16v2);
i16v3 = bitCount(i16v3);
i16v4 = bitCount(i16v4);
i16 = bitCount(u16);
i16v2 = bitCount(u16v2);
i16v3 = bitCount(u16v3);
i16v4 = bitCount(u16v4);
i16 = bitfieldExtract(i16, a, b);
i16v2 = bitfieldExtract(i16v2, a, b);
i16v3 = bitfieldExtract(i16v3, a, b);
i16v4 = bitfieldExtract(i16v4, a, b);
u16 = bitfieldExtract(u16, a, b);
u16v2 = bitfieldExtract(u16v2, a, b);
u16v3 = bitfieldExtract(u16v3, a, b);
u16v4 = bitfieldExtract(u16v4, a, b);
i16 = bitfieldInsert(i16, i16, a, b);
i16v2 = bitfieldInsert(i16v2, i16v2, a, b);
i16v3 = bitfieldInsert(i16v3, i16v3, a, b);
i16v4 = bitfieldInsert(i16v4, i16v4, a, b);
u16 = bitfieldInsert(u16, u16, a, b);
u16v2 = bitfieldInsert(u16v2, u16v2, a, b);
u16v3 = bitfieldInsert(u16v3, u16v3, a, b);
u16v4 = bitfieldInsert(u16v4, u16v4, a, b);
}