#version 460 #extension GL_EXT_nonuniform_qualifier : require #extension GL_EXT_scalar_block_layout : require #extension GL_EXT_shader_16bit_storage : require uint calcRootCode(float y1, float y2, float y3) { uint i1 = floatBitsToUint(y1) >> 31U; uint i2 = floatBitsToUint(y2) >> 30U; uint i3 = floatBitsToUint(y3) >> 29U; uint shift = (i2 & 2U) | (i1 & ~2U); shift = (i3 & 4U) | (shift & ~4U); return ((0x2E74U >> shift) & 0x0101U); }