1#version 450 core 2#extension GL_KHR_memory_scope_semantics : enable 3#extension GL_KHR_cooperative_matrix : enable 4#extension GL_EXT_shader_explicit_arithmetic_types : enable 5 6layout (local_size_x = 64, local_size_y = 1, local_size_z = 1) in; 7 8 9void main() 10{ 11 coopmat<float, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA> f; 12 coopmat<float, gl_ScopeSubgroup, 8, 8, gl_MatrixUseB> f2; 13 coopmat<float, gl_ScopeSubgroup, 16, 8, gl_MatrixUseA> f3; 14 15 coopmat<float16_t, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA> f16; 16 17 coopmat<uint8_t, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA> u8; 18 coopmat<int8_t, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA> i8; 19 coopmat<uint32_t, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA> u32; 20 21 f+f; 22 f-f; 23 f*f; 24 f/f; 25 f+=f; 26 f-=f; 27 f*=f; 28 f/=f; 29 f*2.0; 30 2.0*f; 31 f*=2.0; 32 33 f16+f16; 34 f16-f16; 35 f16*f16; 36 f16/f16; 37 f16+=f16; 38 f16-=f16; 39 f16*=f16; 40 f16/=f16; 41 f16*float16_t(2.0); 42 float16_t(2.0)*f16; 43 f16*=float16_t(2.0); 44 45 u32+u32; 46 u32-u32; 47 u32*u32; 48 u32/u32; 49 u32+=u32; 50 u32-=u32; 51 u32*=u32; 52 u32/=u32; 53 u32*uint32_t(2); 54 uint32_t(2)*u32; 55 u32*=uint32_t(2); 56 57 u8+u8; 58 u8-u8; 59 u8*u8; 60 u8/u8; 61 u8+=u8; 62 u8-=u8; 63 u8*=u8; 64 u8/=u8; 65 u8*uint8_t(2); 66 uint8_t(2)*u8; 67 u8*=uint8_t(2); 68 69 i8+i8; 70 i8-i8; 71 i8*i8; 72 i8/i8; 73 i8+=i8; 74 i8-=i8; 75 i8*=i8; 76 i8/=i8; 77 i8*int8_t(2); 78 int8_t(2)*i8; 79 i8*=int8_t(2); 80 81 -f; 82 -f16; 83 -i8; 84 -u8; 85} 86