#version 450 core #extension GL_EXT_bfloat16 : require #extension GL_EXT_float_e5m2 : require #extension GL_KHR_cooperative_matrix : 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_NV_cooperative_matrix2 : enable layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; floate5m2_t funcfp8(floate5m2_t x) { return x; } void main() { floate5m2_t b; uint8_t u8 = uint8_t(5); uint16_t u16 = uint16_t(5); uint32_t u32 = 5; uint64_t u64 = 5; int8_t i8 = int8_t(6); int16_t i16 = int16_t(6); int32_t i32 = 6; int64_t i64 = 6; floate5m2_t fp8 = floate5m2_t(7); float16_t f16 = float16_t(7); float32_t f32 = 7; float64_t f64 = 7; b = (u8); b = (u16); b = (u32); b = (u64); b = (i8); b = (i16); b = (i32); b = (i64); b = (fp8); // not an error b = (f16); b = (f32); b = (f64); u8 = (b); u16 = (b); u32 = (b); u64 = (b); i8 = (b); i16 = (b); i32 = (b); i64 = (b); fp8 = (b); // not an error f16 = (b); // not an error f32 = (b); // not an error f64 = (b); // not an error dot(b2, f16vec2(0)); funcfp8(f16); funcfp8(f32); funcfp8(f64); bool bl = bool(b); b = floate5m2_t(bl); b++; b--; -b; bfloat16_t bf16 = bfloat16_t(7); b = (bf16); bf16 = b; saturatedConvertEXT(b, b); saturatedConvertEXT(b, f16, f16); saturatedConvertEXT(b, f16vec2(f16)); saturatedConvertEXT(u8, u8); }