#version 450 core #extension GL_EXT_bfloat16 : 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 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; bfloat16_t funcbf16(bfloat16_t x) { return x; } void main() { bfloat16_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; bfloat16_t bf16 = bfloat16_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 = (bf16); // 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); bf16 = (b); // not an error f16 = (b); f32 = (b); // not an error f64 = (b); // not an error dot(b2, f16vec2(0)); funcbf16(f16); funcbf16(f32); funcbf16(f64); bool bl = bool(b); b = bfloat16_t(bl); b++; b--; -b; b+b; coopmat cmA; cmA+cmA; }