| #version 450 core | |
| #extension GL_EXT_bfloat16 : require | |
| #extension GL_EXT_float_e4m3 : 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; | |
| floate4m3_t funcfp8(floate4m3_t x) | |
| { | |
| return x; | |
| } | |
| void main() | |
| { | |
| floate4m3_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; | |
| floate4m3_t fp8 = floate4m3_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 = floate4m3_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); | |
| } | |