xref: /aosp_15_r20/external/angle/third_party/glslang/src/Test/spv.coopmatKHR_arithmetic.comp (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
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