| #version 450 core | |
| #extension GL_EXT_bfloat16 : require | |
| #extension GL_EXT_float_ue8m0 : require | |
| #extension GL_KHR_cooperative_matrix : enable | |
| #extension GL_NV_cooperative_matrix2 : enable | |
| #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 floatue8m0_t bc10 = floatue8m0_t(10); | |
| const fue8m0vec2 b2c20 = fue8m0vec2(20); | |
| layout(constant_id = 1) const floatue8m0_t bsc10 = floatue8m0_t(10); | |
| struct S { floatue8m0_t b; }; | |
| const S sc = S(bc10); | |
| const floatue8m0_t bca[2] = {bc10, bc10}; | |
| shared floatue8m0_t bfs[10]; | |
| layout(scalar) buffer B { | |
| fue8m0vec3 b3; | |
| fue8m0vec2 b2; | |
| floatue8m0_t b1; | |
| } buf; | |
| floatue8m0_t funcfue8m0(floatue8m0_t x) | |
| { | |
| return x; | |
| } | |
| void main() | |
| { | |
| float f = 2.0; | |
| floatue8m0_t b = floatue8m0_t(1.0fue8m0); | |
| 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); | |
| b = funcfue8m0(b); | |
| b = buf.b1; | |
| fue8m0vec2 b2 = buf.b2; | |
| fue8m0vec3 b3 = buf.b3; | |
| int8_t i8_1 = floatue8m0BitsToIntEXT(b); | |
| i8vec2 i8_2 = floatue8m0BitsToIntEXT(b2); | |
| i8vec3 i8_3 = floatue8m0BitsToIntEXT(fue8m0vec3(b2, b)); | |
| i8vec4 i8_4 = floatue8m0BitsToIntEXT(fue8m0vec4(b2, b2)); | |
| vector<int8_t, 5> i8_5 = floatue8m0BitsToIntEXT(vector<floatue8m0_t, 5>(b2, b2, b)); | |
| uint8_t u8_1 = floatue8m0BitsToUintEXT(b); | |
| u8vec2 u8_2 = floatue8m0BitsToUintEXT(b2); | |
| u8vec3 u8_3 = floatue8m0BitsToUintEXT(fue8m0vec3(b2, b)); | |
| u8vec4 u8_4 = floatue8m0BitsToUintEXT(fue8m0vec4(b2, b2)); | |
| vector<uint8_t, 5> u8_5 = floatue8m0BitsToUintEXT(vector<floatue8m0_t, 5>(b2, b2, b)); | |
| floatue8m0_t f8_1 = intBitsToFloatue8m0EXT(i8_1); | |
| fue8m0vec2 f8_2 = intBitsToFloatue8m0EXT(i8_2); | |
| fue8m0vec3 f8_3 = intBitsToFloatue8m0EXT(i8_3); | |
| fue8m0vec4 f8_4 = intBitsToFloatue8m0EXT(i8_4); | |
| vector<floatue8m0_t, 5> f8_5 = intBitsToFloatue8m0EXT(i8_5); | |
| f8_1 = uintBitsToFloatue8m0EXT(u8_1); | |
| f8_2 = uintBitsToFloatue8m0EXT(u8_2); | |
| f8_3 = uintBitsToFloatue8m0EXT(u8_3); | |
| f8_4 = uintBitsToFloatue8m0EXT(u8_4); | |
| f8_5 = uintBitsToFloatue8m0EXT(u8_5); | |
| } |