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<int32_t, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA> i32;
20
21    f+1.0;
22    f-1.0;
23    f/1.0;
24    1.0+f;
25    1.0-f;
26    1.0/f;
27    f+=1.0;
28    f-=1.0;
29    f/=1.0;
30
31    f+f16;
32    f-f16;
33    f*f16;
34    f/f16;
35    f+=f16;
36    f-=f16;
37    f*=f16;
38    f/=f16;
39
40    f+f2;
41    f-f2;
42    f*f2;
43    f/f2;
44    f+=f2;
45    f-=f2;
46    f*=f2;
47    f/=f2;
48
49    f+f3;
50    f-f3;
51    f*f3;
52    f/f3;
53    f+=f3;
54    f-=f3;
55    f*=f3;
56    f/=f3;
57
58    u8+i8;
59    u8-i8;
60    u8*i8;
61    u8/i8;
62    u8+=i8;
63    u8-=i8;
64    u8*=i8;
65    u8/=i8;
66
67    u8+uint8_t(1);
68    u8-uint8_t(1);
69    u8/uint8_t(1);
70    u8+=uint8_t(1);
71    u8-=uint8_t(1);
72    u8/=uint8_t(1);
73
74    i8+int8_t(1);
75    i8-int8_t(1);
76    i8/int8_t(1);
77    i8+=int8_t(1);
78    i8-=int8_t(1);
79    i8/=int8_t(1);
80
81    i32+1;
82    i32-1;
83    i32/1;
84    i32+=1;
85    i32-=1;
86    i32/=1;
87}
88