#version 450 core #extension GL_EXT_float_e3m2 : require #extension GL_KHR_memory_scope_semantics : enable #extension GL_EXT_shader_explicit_arithmetic_types : enable #extension GL_EXT_scalar_block_layout : enable #extension GL_EXT_long_vector : enable layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; const floate3m2_t bc10 = floate3m2_t(10); const fe3m2vec2 b2c20 = fe3m2vec2(20); layout(constant_id = 1) const floate3m2_t bsc10 = floate3m2_t(10); struct S { floate3m2_t b; }; const S sc = S(bc10); const floate3m2_t bca[2] = {bc10, bc10}; floate3m2_t funcfe3m2(floate3m2_t x) { return x; } void main() { float f = 2.0; floate3m2_t b = floate3m2_t(1.0fe3m2); float16_t f16 = float16_t(7); float32_t f32 = 7; float64_t f64 = 7; f16 = float16_t(b); f32 = float32_t(b); f64 = float64_t(b); f16 = b; f32 = b; f64 = b; b = funcfe3m2(b); fe3m2vec4 v4; vector v8; vector v16; u8vec3 u8 = packFloat4xfe3m2EXT(v4); u16vec3 u16 = packFloat8xfe3m2EXT(v8); u32vec3 u32 = packFloat16xfe3m2EXT(v16); v4 = unpackFloat4xfe3m2EXT(u8); v8 = unpackFloat8xfe3m2EXT(u16); v16 = unpackFloat16xfe3m2EXT(u32); b = bitcastExtractfe3m2EXT(uint8_t(1), 2); fe3m2vec4 v4_2 = bitcastExtractfe3m2EXT(u8vec4(1), 2); vector v7 = bitcastExtractfe3m2EXT(vector(1), 3); }