The KHR form comes along as part of 1.5, and otherwise should require another form of request to emit it.
419 lines
22 KiB
Plaintext
419 lines
22 KiB
Plaintext
spv.intcoopmat.comp
|
|
// Module Version 10000
|
|
// Generated by (magic number): 80007
|
|
// Id's are bound by 262
|
|
|
|
Capability Shader
|
|
Capability Float16
|
|
Capability Int8
|
|
Capability StorageBuffer8BitAccess
|
|
Capability VulkanMemoryModelKHR
|
|
Capability PhysicalStorageBufferAddressesEXT
|
|
Capability CooperativeMatrixNV
|
|
Extension "SPV_EXT_physical_storage_buffer"
|
|
Extension "SPV_KHR_8bit_storage"
|
|
Extension "SPV_KHR_storage_buffer_storage_class"
|
|
Extension "SPV_KHR_vulkan_memory_model"
|
|
Extension "SPV_NV_cooperative_matrix"
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel PhysicalStorageBuffer64EXT VulkanKHR
|
|
EntryPoint GLCompute 4 "main"
|
|
ExecutionMode 4 LocalSize 64 1 1
|
|
Source GLSL 450
|
|
SourceExtension "GL_EXT_buffer_reference"
|
|
SourceExtension "GL_EXT_shader_explicit_arithmetic_types"
|
|
SourceExtension "GL_KHR_memory_scope_semantics"
|
|
SourceExtension "GL_NV_cooperative_matrix"
|
|
SourceExtension "GL_NV_integer_cooperative_matrix"
|
|
Name 4 "main"
|
|
Name 14 "ineg(i81;"
|
|
Name 13 "m"
|
|
Name 21 "umul(u81;"
|
|
Name 20 "m"
|
|
Name 35 "mu"
|
|
Name 39 "mi"
|
|
Name 55 "mf16_0"
|
|
Name 61 "mf32_0"
|
|
Name 64 "mf16_1"
|
|
Name 67 "mf32_1"
|
|
Name 71 "x"
|
|
Name 81 "tempArg"
|
|
Name 85 "Block"
|
|
MemberName 85(Block) 0 "y"
|
|
MemberName 85(Block) 1 "x"
|
|
Name 87 "block"
|
|
Name 98 "tempArg"
|
|
Name 103 "Block16"
|
|
MemberName 103(Block16) 0 "y"
|
|
MemberName 103(Block16) 1 "x"
|
|
MemberName 103(Block16) 2 "b"
|
|
Name 106 "Block"
|
|
MemberName 106(Block) 0 "y"
|
|
MemberName 106(Block) 1 "x"
|
|
Name 108 "block8"
|
|
Name 115 "tempArg"
|
|
Name 128 "D"
|
|
Name 129 "A"
|
|
Name 131 "B"
|
|
Name 133 "C"
|
|
Name 137 "l"
|
|
Name 142 "a"
|
|
Name 146 "md1"
|
|
Name 156 "Y"
|
|
Name 157 "Z"
|
|
Name 161 "muC2"
|
|
Name 169 "miC2"
|
|
Name 176 "tempArg"
|
|
Name 182 "tempArg"
|
|
Name 188 "p1"
|
|
Name 189 "param"
|
|
Name 192 "p2"
|
|
Name 193 "param"
|
|
Name 207 "tempArg"
|
|
Name 212 "shmatrix"
|
|
Name 217 "ms"
|
|
Name 225 "miC"
|
|
Name 226 "muC"
|
|
Name 231 "iarr"
|
|
Name 236 "iarr2"
|
|
Name 241 "uarr"
|
|
Name 246 "uarr2"
|
|
Name 251 "S"
|
|
MemberName 251(S) 0 "a"
|
|
MemberName 251(S) 1 "b"
|
|
MemberName 251(S) 2 "c"
|
|
Name 256 "SC"
|
|
Name 261 "scm"
|
|
Decorate 83 ArrayStride 4
|
|
Decorate 84 ArrayStride 4
|
|
MemberDecorate 85(Block) 0 Offset 0
|
|
MemberDecorate 85(Block) 1 Offset 4194304
|
|
Decorate 85(Block) Block
|
|
Decorate 87(block) DescriptorSet 0
|
|
Decorate 87(block) Binding 0
|
|
Decorate 99 ArrayStride 1
|
|
Decorate 101 ArrayStride 1
|
|
MemberDecorate 103(Block16) 0 Offset 0
|
|
MemberDecorate 103(Block16) 1 Offset 1048576
|
|
MemberDecorate 103(Block16) 2 Offset 1048584
|
|
Decorate 103(Block16) Block
|
|
Decorate 104 ArrayStride 4
|
|
Decorate 105 ArrayStride 4
|
|
MemberDecorate 106(Block) 0 Offset 0
|
|
MemberDecorate 106(Block) 1 Offset 4194304
|
|
Decorate 106(Block) Block
|
|
Decorate 108(block8) DescriptorSet 0
|
|
Decorate 108(block8) Binding 0
|
|
Decorate 156(Y) SpecId 0
|
|
Decorate 223 BuiltIn WorkgroupSize
|
|
Decorate 256(SC) SpecId 2
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeInt 8 1
|
|
7: TypeInt 32 0
|
|
8: 7(int) Constant 3
|
|
9: 7(int) Constant 8
|
|
10: TypeCooperativeMatrixNV 6(int8_t) 8 9 9
|
|
11: TypePointer Function 10
|
|
12: TypeFunction 10 11(ptr)
|
|
16: TypeInt 8 0
|
|
17: TypeCooperativeMatrixNV 16(int8_t) 8 9 9
|
|
18: TypePointer Function 17
|
|
19: TypeFunction 17 18(ptr)
|
|
28: 16(int8_t) Constant 2
|
|
32: 7(int) Constant 16
|
|
33: TypeCooperativeMatrixNV 16(int8_t) 8 32 9
|
|
34: TypePointer Function 33
|
|
36: 33 ConstantComposite 28
|
|
37: TypeCooperativeMatrixNV 6(int8_t) 8 32 9
|
|
38: TypePointer Function 37
|
|
40: 6(int8_t) Constant 2
|
|
41: 37 ConstantComposite 40
|
|
52: TypeFloat 16
|
|
53: TypeCooperativeMatrixNV 52(float16_t) 8 32 9
|
|
54: TypePointer Function 53
|
|
58: TypeFloat 32
|
|
59: TypeCooperativeMatrixNV 58(float) 8 32 9
|
|
60: TypePointer Function 59
|
|
70: TypePointer Function 16(int8_t)
|
|
72: TypeInt 32 1
|
|
73: 72(int) Constant 1
|
|
76: 72(int) Constant 0
|
|
79: TypePointer Function 6(int8_t)
|
|
82: 7(int) Constant 1048576
|
|
83: TypeArray 7(int) 82
|
|
84: TypeRuntimeArray 7(int)
|
|
85(Block): TypeStruct 83 84
|
|
86: TypePointer StorageBuffer 85(Block)
|
|
87(block): 86(ptr) Variable StorageBuffer
|
|
88: 7(int) Constant 5
|
|
89: TypePointer StorageBuffer 7(int)
|
|
91: 7(int) Constant 128
|
|
92: TypeBool
|
|
93: 92(bool) ConstantFalse
|
|
99: TypeArray 6(int8_t) 82
|
|
100: 7(int) Constant 1
|
|
101: TypeArray 6(int8_t) 100
|
|
TypeForwardPointer 102 PhysicalStorageBufferEXT
|
|
103(Block16): TypeStruct 99 101 102
|
|
104: TypeArray 7(int) 82
|
|
105: TypeRuntimeArray 7(int)
|
|
106(Block): TypeStruct 104 105
|
|
102: TypePointer PhysicalStorageBufferEXT 106(Block)
|
|
107: TypePointer StorageBuffer 103(Block16)
|
|
108(block8): 107(ptr) Variable StorageBuffer
|
|
109: TypePointer StorageBuffer 6(int8_t)
|
|
116: 72(int) Constant 2
|
|
117: TypePointer StorageBuffer 102(ptr)
|
|
120: TypePointer PhysicalStorageBufferEXT 7(int)
|
|
136: TypePointer Function 72(int)
|
|
138: 7(int) SpecConstantOp 5362 33
|
|
139: 72(int) SpecConstantOp 128 138 76
|
|
140: TypeArray 37 88
|
|
141: TypePointer Function 140
|
|
143: 72(int) Constant 3
|
|
144: 6(int8_t) Constant 1
|
|
150: 72(int) Constant 1234
|
|
155: 72(int) Constant 8
|
|
156(Y): 72(int) SpecConstant 2
|
|
157(Z): 72(int) SpecConstantOp 132 155 156(Y)
|
|
158: TypeCooperativeMatrixNV 16(int8_t) 8 157(Z) 9
|
|
159: TypeArray 158 8
|
|
160: TypePointer Private 159
|
|
161(muC2): 160(ptr) Variable Private
|
|
162: TypePointer Private 158
|
|
166: TypeCooperativeMatrixNV 6(int8_t) 8 157(Z) 9
|
|
167: TypeArray 166 8
|
|
168: TypePointer Private 167
|
|
169(miC2): 168(ptr) Variable Private
|
|
170: TypePointer Private 6(int8_t)
|
|
174: TypePointer Private 16(int8_t)
|
|
204: 16(int8_t) Constant 4
|
|
208: TypeVector 7(int) 4
|
|
209: 7(int) Constant 32
|
|
210: TypeArray 208(ivec4) 209
|
|
211: TypePointer Workgroup 210
|
|
212(shmatrix): 211(ptr) Variable Workgroup
|
|
213: 7(int) Constant 2
|
|
214: TypePointer Workgroup 208(ivec4)
|
|
221: TypeVector 7(int) 3
|
|
222: 7(int) Constant 64
|
|
223: 221(ivec3) ConstantComposite 222 100 100
|
|
224: TypePointer Private 166
|
|
225(miC): 224(ptr) Variable Private
|
|
226(muC): 162(ptr) Variable Private
|
|
227: 7(int) SpecConstantOp 5362 166
|
|
228: 72(int) SpecConstantOp 128 227 76
|
|
229: TypeArray 72(int) 228
|
|
230: TypePointer Private 229
|
|
231(iarr): 230(ptr) Variable Private
|
|
232: 7(int) SpecConstantOp 5362 166
|
|
233: 72(int) SpecConstantOp 128 232 76
|
|
234: TypeArray 72(int) 233
|
|
235: TypePointer Private 234
|
|
236(iarr2): 235(ptr) Variable Private
|
|
237: 7(int) SpecConstantOp 5362 158
|
|
238: 72(int) SpecConstantOp 128 237 76
|
|
239: TypeArray 72(int) 238
|
|
240: TypePointer Private 239
|
|
241(uarr): 240(ptr) Variable Private
|
|
242: 7(int) SpecConstantOp 5362 158
|
|
243: 72(int) SpecConstantOp 128 242 76
|
|
244: TypeArray 72(int) 243
|
|
245: TypePointer Private 244
|
|
246(uarr2): 245(ptr) Variable Private
|
|
247: TypeCooperativeMatrixNV 72(int) 8 157(Z) 9
|
|
248: 247 ConstantComposite 73
|
|
249: 16(int8_t) Constant 1
|
|
250: 17 ConstantComposite 249
|
|
251(S): TypeStruct 72(int) 72(int) 72(int)
|
|
252: 72(int) Constant 12
|
|
253: 72(int) Constant 23
|
|
254: 72(int) Constant 34
|
|
255: 251(S) ConstantComposite 252 253 254
|
|
256(SC): 72(int) SpecConstant 1
|
|
257: TypeCooperativeMatrixNV 7(int) 8 256(SC) 256(SC)
|
|
258: TypeArray 257 256(SC)
|
|
259: TypeArray 258 256(SC)
|
|
260: TypePointer Private 259
|
|
261(scm): 260(ptr) Variable Private
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
35(mu): 34(ptr) Variable Function
|
|
39(mi): 38(ptr) Variable Function
|
|
55(mf16_0): 54(ptr) Variable Function
|
|
61(mf32_0): 60(ptr) Variable Function
|
|
64(mf16_1): 54(ptr) Variable Function
|
|
67(mf32_1): 60(ptr) Variable Function
|
|
71(x): 70(ptr) Variable Function
|
|
81(tempArg): 38(ptr) Variable Function
|
|
98(tempArg): 34(ptr) Variable Function
|
|
115(tempArg): 38(ptr) Variable Function
|
|
128(D): 34(ptr) Variable Function
|
|
129(A): 34(ptr) Variable Function
|
|
131(B): 18(ptr) Variable Function
|
|
133(C): 34(ptr) Variable Function
|
|
137(l): 136(ptr) Variable Function
|
|
142(a): 141(ptr) Variable Function
|
|
146(md1): 136(ptr) Variable Function
|
|
176(tempArg): 38(ptr) Variable Function
|
|
182(tempArg): 34(ptr) Variable Function
|
|
188(p1): 11(ptr) Variable Function
|
|
189(param): 11(ptr) Variable Function
|
|
192(p2): 18(ptr) Variable Function
|
|
193(param): 18(ptr) Variable Function
|
|
207(tempArg): 38(ptr) Variable Function
|
|
217(ms): 38(ptr) Variable Function
|
|
Store 35(mu) 36
|
|
Store 39(mi) 41
|
|
42: 33 Load 35(mu)
|
|
43: 33 Load 35(mu)
|
|
44: 33 IAdd 42 43
|
|
Store 35(mu) 44
|
|
45: 33 Load 35(mu)
|
|
46: 33 Load 35(mu)
|
|
47: 33 ISub 45 46
|
|
Store 35(mu) 47
|
|
48: 37 Load 39(mi)
|
|
49: 37 SNegate 48
|
|
Store 39(mi) 49
|
|
50: 37 Load 39(mi)
|
|
51: 37 MatrixTimesScalar 50 40
|
|
Store 39(mi) 51
|
|
56: 33 Load 35(mu)
|
|
57: 53 ConvertUToF 56
|
|
Store 55(mf16_0) 57
|
|
62: 33 Load 35(mu)
|
|
63: 59 ConvertUToF 62
|
|
Store 61(mf32_0) 63
|
|
65: 37 Load 39(mi)
|
|
66: 53 ConvertSToF 65
|
|
Store 64(mf16_1) 66
|
|
68: 37 Load 39(mi)
|
|
69: 59 ConvertSToF 68
|
|
Store 67(mf32_1) 69
|
|
74: 70(ptr) AccessChain 35(mu) 73
|
|
75: 16(int8_t) Load 74
|
|
Store 71(x) 75
|
|
77: 16(int8_t) Load 71(x)
|
|
78: 6(int8_t) Bitcast 77
|
|
80: 79(ptr) AccessChain 39(mi) 76
|
|
Store 80 78
|
|
90: 89(ptr) AccessChain 87(block) 73 32
|
|
94: 37 CooperativeMatrixLoadNV 90 91 93 MakePointerVisibleKHR NonPrivatePointerKHR 88
|
|
Store 81(tempArg) 94
|
|
95: 37 Load 81(tempArg)
|
|
Store 39(mi) 95
|
|
96: 37 Load 39(mi)
|
|
97: 89(ptr) AccessChain 87(block) 73 32
|
|
CooperativeMatrixStoreNV 97 96 91 93 MakePointerAvailableKHR NonPrivatePointerKHR 88
|
|
110: 109(ptr) AccessChain 108(block8) 73 32
|
|
111: 33 CooperativeMatrixLoadNV 110 91 93 MakePointerVisibleKHR NonPrivatePointerKHR 88
|
|
Store 98(tempArg) 111
|
|
112: 33 Load 98(tempArg)
|
|
Store 35(mu) 112
|
|
113: 33 Load 35(mu)
|
|
114: 109(ptr) AccessChain 108(block8) 73 32
|
|
CooperativeMatrixStoreNV 114 113 91 93 MakePointerAvailableKHR NonPrivatePointerKHR 88
|
|
118: 117(ptr) AccessChain 108(block8) 116
|
|
119: 102(ptr) Load 118 MakePointerVisibleKHR NonPrivatePointerKHR 88
|
|
121: 120(ptr) AccessChain 119 73 32
|
|
122: 37 CooperativeMatrixLoadNV 121 91 93 Aligned MakePointerVisibleKHR NonPrivatePointerKHR 16 88
|
|
Store 115(tempArg) 122
|
|
123: 37 Load 115(tempArg)
|
|
Store 39(mi) 123
|
|
124: 37 Load 39(mi)
|
|
125: 117(ptr) AccessChain 108(block8) 116
|
|
126: 102(ptr) Load 125 MakePointerVisibleKHR NonPrivatePointerKHR 88
|
|
127: 120(ptr) AccessChain 126 73 32
|
|
CooperativeMatrixStoreNV 127 124 91 93 Aligned MakePointerAvailableKHR NonPrivatePointerKHR 16 88
|
|
130: 33 Load 129(A)
|
|
132: 17 Load 131(B)
|
|
134: 33 Load 133(C)
|
|
135: 33 CooperativeMatrixMulAddNV 130 132 134
|
|
Store 128(D) 135
|
|
Store 137(l) 139
|
|
145: 79(ptr) AccessChain 142(a) 143 76
|
|
Store 145 144
|
|
Store 146(md1) 73
|
|
147: 37 Load 39(mi)
|
|
148: 37 Load 39(mi)
|
|
149: 37 IAdd 148 147
|
|
Store 39(mi) 149
|
|
151: 6(int8_t) CompositeExtract 149 1234
|
|
152: 72(int) SConvert 151
|
|
153: 72(int) Load 146(md1)
|
|
154: 72(int) IAdd 153 152
|
|
Store 146(md1) 154
|
|
163: 162(ptr) AccessChain 161(muC2) 73
|
|
164: 158 Load 163
|
|
165: 162(ptr) AccessChain 161(muC2) 76
|
|
Store 165 164
|
|
171: 170(ptr) AccessChain 169(miC2) 116 76
|
|
172: 6(int8_t) Load 171
|
|
173: 16(int8_t) Bitcast 172
|
|
175: 174(ptr) AccessChain 161(muC2) 73 76
|
|
Store 175 173
|
|
177: 89(ptr) AccessChain 87(block) 76 32
|
|
178: 37 CooperativeMatrixLoadNV 177 91 93 MakePointerVisibleKHR NonPrivatePointerKHR 88
|
|
Store 176(tempArg) 178
|
|
179: 37 Load 176(tempArg)
|
|
Store 39(mi) 179
|
|
180: 37 Load 39(mi)
|
|
181: 89(ptr) AccessChain 87(block) 76 32
|
|
CooperativeMatrixStoreNV 181 180 91 93 MakePointerAvailableKHR NonPrivatePointerKHR 88
|
|
183: 109(ptr) AccessChain 108(block8) 76 32
|
|
184: 33 CooperativeMatrixLoadNV 183 91 93 MakePointerVisibleKHR NonPrivatePointerKHR 88
|
|
Store 182(tempArg) 184
|
|
185: 33 Load 182(tempArg)
|
|
Store 35(mu) 185
|
|
186: 33 Load 35(mu)
|
|
187: 109(ptr) AccessChain 108(block8) 76 32
|
|
CooperativeMatrixStoreNV 187 186 91 93 MakePointerAvailableKHR NonPrivatePointerKHR 88
|
|
190: 10 Load 188(p1)
|
|
Store 189(param) 190
|
|
191: 10 FunctionCall 14(ineg(i81;) 189(param)
|
|
Store 188(p1) 191
|
|
194: 17 Load 192(p2)
|
|
Store 193(param) 194
|
|
195: 17 FunctionCall 21(umul(u81;) 193(param)
|
|
Store 192(p2) 195
|
|
196: 10 Load 188(p1)
|
|
197: 10 Load 188(p1)
|
|
198: 10 SDiv 197 196
|
|
Store 188(p1) 198
|
|
199: 17 Load 192(p2)
|
|
200: 17 Load 192(p2)
|
|
201: 17 UDiv 200 199
|
|
Store 192(p2) 201
|
|
202: 10 Load 188(p1)
|
|
203: 10 MatrixTimesScalar 202 40
|
|
Store 188(p1) 203
|
|
205: 17 Load 192(p2)
|
|
206: 17 MatrixTimesScalar 205 204
|
|
Store 192(p2) 206
|
|
215: 214(ptr) AccessChain 212(shmatrix) 100
|
|
216: 37 CooperativeMatrixLoadNV 215 213 93 MakePointerVisibleKHR NonPrivatePointerKHR 213
|
|
Store 207(tempArg) 216
|
|
218: 37 Load 207(tempArg)
|
|
Store 217(ms) 218
|
|
219: 37 Load 217(ms)
|
|
220: 214(ptr) AccessChain 212(shmatrix) 100
|
|
CooperativeMatrixStoreNV 220 219 213 93 MakePointerAvailableKHR NonPrivatePointerKHR 213
|
|
Return
|
|
FunctionEnd
|
|
14(ineg(i81;): 10 Function None 12
|
|
13(m): 11(ptr) FunctionParameter
|
|
15: Label
|
|
23: 10 Load 13(m)
|
|
24: 10 SNegate 23
|
|
ReturnValue 24
|
|
FunctionEnd
|
|
21(umul(u81;): 17 Function None 19
|
|
20(m): 18(ptr) FunctionParameter
|
|
22: Label
|
|
27: 17 Load 20(m)
|
|
29: 17 MatrixTimesScalar 27 28
|
|
ReturnValue 29
|
|
FunctionEnd
|