| #version 450 core |
| #extension GL_KHR_memory_scope_semantics : enable |
| #extension GL_KHR_cooperative_matrix : enable |
| #extension GL_EXT_shader_explicit_arithmetic_types : enable |
| |
| layout (local_size_x = 64, local_size_y = 1, local_size_z = 1) in; |
| |
| |
| void main() |
| { |
| coopmat<float, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA> f; |
| coopmat<float, gl_ScopeSubgroup, 8, 8, gl_MatrixUseB> f2; |
| coopmat<float, gl_ScopeSubgroup, 16, 8, gl_MatrixUseA> f3; |
| |
| coopmat<float16_t, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA> f16; |
| |
| coopmat<uint8_t, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA> u8; |
| coopmat<int8_t, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA> i8; |
| coopmat<uint32_t, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA> u32; |
| |
| f+f; |
| f-f; |
| f*f; |
| f/f; |
| f+=f; |
| f-=f; |
| f*=f; |
| f/=f; |
| f*2.0; |
| 2.0*f; |
| f*=2.0; |
| |
| f16+f16; |
| f16-f16; |
| f16*f16; |
| f16/f16; |
| f16+=f16; |
| f16-=f16; |
| f16*=f16; |
| f16/=f16; |
| f16*float16_t(2.0); |
| float16_t(2.0)*f16; |
| f16*=float16_t(2.0); |
| |
| u32+u32; |
| u32-u32; |
| u32*u32; |
| u32/u32; |
| u32+=u32; |
| u32-=u32; |
| u32*=u32; |
| u32/=u32; |
| u32*uint32_t(2); |
| uint32_t(2)*u32; |
| u32*=uint32_t(2); |
| |
| u8+u8; |
| u8-u8; |
| u8*u8; |
| u8/u8; |
| u8+=u8; |
| u8-=u8; |
| u8*=u8; |
| u8/=u8; |
| u8*uint8_t(2); |
| uint8_t(2)*u8; |
| u8*=uint8_t(2); |
| |
| i8+i8; |
| i8-i8; |
| i8*i8; |
| i8/i8; |
| i8+=i8; |
| i8-=i8; |
| i8*=i8; |
| i8/=i8; |
| i8*int8_t(2); |
| int8_t(2)*i8; |
| i8*=int8_t(2); |
| |
| -f; |
| -f16; |
| -i8; |
| -u8; |
| } |