yum-mirror/glslang
git clone https://git.yummers.dev/yum-mirror/glslang
62f5430e
main
1#version 450 core 2 3#extension GL_EXT_float_e5m2 : require 4#extension GL_EXT_float_e2m1 : require 5#extension GL_KHR_memory_scope_semantics : enable 6#extension GL_EXT_shader_explicit_arithmetic_types : enable 7#extension GL_EXT_scalar_block_layout : enable 8#extension GL_EXT_long_vector : enable 9 10layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; 11 12const floate2m1_t bc10 = 10.fe2m1; 13const fe2m1vec2 b2c10 = fe2m1vec2(bc10, bc10); 14layout(constant_id = 1) const floate2m1_t bsc10 = 10.fe2m1; 15 16struct S { floate2m1_t b; }; 17const S sc = S(bc10); 18 19const floate2m1_t bca[2] = {bc10, bc10}; 20 21floate2m1_t funcfe2m1(floate2m1_t x) 22{ 23 return x; 24} 25 26void main() 27{ 28 float f = 2.0; 29 floate2m1_t b = floate2m1_t(1.0fe2m1); 30 31 floate5m2_t fe5m2 = floate5m2_t(7); 32 float16_t f16 = float16_t(7); 33 float32_t f32 = 7; 34 float64_t f64 = 7; 35 fe5m2 = floate5m2_t(b); 36 f16 = float16_t(b); 37 f32 = float32_t(b); 38 f64 = float64_t(b); 39 40 f16 = b; 41 f32 = b; 42 f64 = b; 43 44 b = funcfe2m1(b); 45 46 47 fe2m1vec2 v2; 48 fe2m1vec4 v4; 49 vector<floate2m1_t, 8> v8; 50 vector<floate2m1_t, 16> v16; 51 52 uint8_t u8 = packFloat2xfe2m1EXT(v2); 53 uint16_t u16 = packFloat4xfe2m1EXT(v4); 54 uint32_t u32 = packFloat8xfe2m1EXT(v8); 55 u32vec2 u32v2 = packFloat16xfe2m1EXT(v16); 56 57 v2 = unpackFloat2xfe2m1EXT(u8); 58 v4 = unpackFloat4xfe2m1EXT(u16); 59 v8 = unpackFloat8xfe2m1EXT(u32); 60 v16 = unpackFloat16xfe2m1EXT(u32v2); 61 62 b = bitcastExtractfe2m1EXT(uint8_t(1), 2); 63 fe2m1vec4 v4_2 = bitcastExtractfe2m1EXT(u8vec4(1), 2); 64 vector<floate2m1_t, 7> v7 = bitcastExtractfe2m1EXT(vector<uint8_t, 7>(1), 3); 65}