86 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| #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;
 | |
| }
 | 
