1spv.intcoopmat.comp
2// Module Version 10000
3// Generated by (magic number): 8000b
4// Id's are bound by 286
5
6                              Capability Shader
7                              Capability Float16
8                              Capability Int16
9                              Capability Int8
10                              Capability StorageBuffer8BitAccess
11                              Capability VulkanMemoryModelKHR
12                              Capability PhysicalStorageBufferAddressesEXT
13                              Capability CooperativeMatrixNV
14                              Extension  "SPV_KHR_8bit_storage"
15                              Extension  "SPV_KHR_physical_storage_buffer"
16                              Extension  "SPV_KHR_storage_buffer_storage_class"
17                              Extension  "SPV_KHR_vulkan_memory_model"
18                              Extension  "SPV_NV_cooperative_matrix"
19               1:             ExtInstImport  "GLSL.std.450"
20                              MemoryModel PhysicalStorageBuffer64EXT VulkanKHR
21                              EntryPoint GLCompute 4  "main"
22                              ExecutionMode 4 LocalSize 64 1 1
23                              Source GLSL 450
24                              SourceExtension  "GL_EXT_buffer_reference"
25                              SourceExtension  "GL_EXT_shader_explicit_arithmetic_types"
26                              SourceExtension  "GL_KHR_memory_scope_semantics"
27                              SourceExtension  "GL_NV_cooperative_matrix"
28                              SourceExtension  "GL_NV_integer_cooperative_matrix"
29                              Name 4  "main"
30                              Name 14  "ineg(i81;"
31                              Name 13  "m"
32                              Name 21  "umul(u81;"
33                              Name 20  "m"
34                              Name 35  "mu"
35                              Name 39  "mi"
36                              Name 55  "mf16_0"
37                              Name 61  "mf32_0"
38                              Name 64  "mf16_1"
39                              Name 67  "mf32_1"
40                              Name 71  "x"
41                              Name 81  "tempArg"
42                              Name 85  "Block"
43                              MemberName 85(Block) 0  "y"
44                              MemberName 85(Block) 1  "x"
45                              Name 87  "block"
46                              Name 98  "tempArg"
47                              Name 103  "Block16"
48                              MemberName 103(Block16) 0  "y"
49                              MemberName 103(Block16) 1  "x"
50                              MemberName 103(Block16) 2  "b"
51                              Name 106  "Block"
52                              MemberName 106(Block) 0  "y"
53                              MemberName 106(Block) 1  "x"
54                              Name 108  "block8"
55                              Name 115  "tempArg"
56                              Name 128  "D"
57                              Name 129  "A"
58                              Name 131  "B"
59                              Name 133  "C"
60                              Name 137  "l"
61                              Name 142  "a"
62                              Name 146  "md1"
63                              Name 156  "Y"
64                              Name 157  "Z"
65                              Name 161  "muC2"
66                              Name 169  "miC2"
67                              Name 176  "tempArg"
68                              Name 182  "tempArg"
69                              Name 188  "p1"
70                              Name 189  "param"
71                              Name 192  "p2"
72                              Name 193  "param"
73                              Name 207  "tempArg"
74                              Name 212  "shmatrix"
75                              Name 217  "ms"
76                              Name 224  "i16"
77                              Name 230  "u16"
78                              Name 233  "tempArg"
79                              Name 239  "tempArg"
80                              Name 249  "miC"
81                              Name 250  "muC"
82                              Name 255  "iarr"
83                              Name 260  "iarr2"
84                              Name 265  "uarr"
85                              Name 270  "uarr2"
86                              Name 275  "S"
87                              MemberName 275(S) 0  "a"
88                              MemberName 275(S) 1  "b"
89                              MemberName 275(S) 2  "c"
90                              Name 280  "SC"
91                              Name 285  "scm"
92                              Decorate 83 ArrayStride 4
93                              Decorate 84 ArrayStride 4
94                              MemberDecorate 85(Block) 0 Offset 0
95                              MemberDecorate 85(Block) 1 Offset 4194304
96                              Decorate 85(Block) Block
97                              Decorate 87(block) DescriptorSet 0
98                              Decorate 87(block) Binding 0
99                              Decorate 99 ArrayStride 1
100                              Decorate 101 ArrayStride 1
101                              MemberDecorate 103(Block16) 0 Offset 0
102                              MemberDecorate 103(Block16) 1 Offset 1048576
103                              MemberDecorate 103(Block16) 2 Offset 1048584
104                              Decorate 103(Block16) Block
105                              Decorate 104 ArrayStride 4
106                              Decorate 105 ArrayStride 4
107                              MemberDecorate 106(Block) 0 Offset 0
108                              MemberDecorate 106(Block) 1 Offset 4194304
109                              Decorate 106(Block) Block
110                              Decorate 108(block8) DescriptorSet 0
111                              Decorate 108(block8) Binding 0
112                              Decorate 156(Y) SpecId 0
113                              Decorate 247 BuiltIn WorkgroupSize
114                              Decorate 280(SC) SpecId 2
115               2:             TypeVoid
116               3:             TypeFunction 2
117               6:             TypeInt 8 1
118               7:             TypeInt 32 0
119               8:      7(int) Constant 3
120               9:      7(int) Constant 8
121              10:             TypeCooperativeMatrixNV 6(int8_t) 8 9 9
122              11:             TypePointer Function 10
123              12:             TypeFunction 10 11(ptr)
124              16:             TypeInt 8 0
125              17:             TypeCooperativeMatrixNV 16(int8_t) 8 9 9
126              18:             TypePointer Function 17
127              19:             TypeFunction 17 18(ptr)
128              28:  16(int8_t) Constant 2
129              32:      7(int) Constant 16
130              33:             TypeCooperativeMatrixNV 16(int8_t) 8 32 9
131              34:             TypePointer Function 33
132              36:          33 ConstantComposite 28
133              37:             TypeCooperativeMatrixNV 6(int8_t) 8 32 9
134              38:             TypePointer Function 37
135              40:   6(int8_t) Constant 2
136              41:          37 ConstantComposite 40
137              52:             TypeFloat 16
138              53:             TypeCooperativeMatrixNV 52(float16_t) 8 32 9
139              54:             TypePointer Function 53
140              58:             TypeFloat 32
141              59:             TypeCooperativeMatrixNV 58(float) 8 32 9
142              60:             TypePointer Function 59
143              70:             TypePointer Function 16(int8_t)
144              72:             TypeInt 32 1
145              73:     72(int) Constant 1
146              76:     72(int) Constant 0
147              79:             TypePointer Function 6(int8_t)
148              82:      7(int) Constant 1048576
149              83:             TypeArray 7(int) 82
150              84:             TypeRuntimeArray 7(int)
151       85(Block):             TypeStruct 83 84
152              86:             TypePointer StorageBuffer 85(Block)
153       87(block):     86(ptr) Variable StorageBuffer
154              88:      7(int) Constant 5
155              89:             TypePointer StorageBuffer 7(int)
156              91:      7(int) Constant 128
157              92:             TypeBool
158              93:    92(bool) ConstantFalse
159              99:             TypeArray 6(int8_t) 82
160             100:      7(int) Constant 1
161             101:             TypeArray 6(int8_t) 100
162                              TypeForwardPointer 102 PhysicalStorageBufferEXT
163    103(Block16):             TypeStruct 99 101 102
164             104:             TypeArray 7(int) 82
165             105:             TypeRuntimeArray 7(int)
166      106(Block):             TypeStruct 104 105
167             102:             TypePointer PhysicalStorageBufferEXT 106(Block)
168             107:             TypePointer StorageBuffer 103(Block16)
169     108(block8):    107(ptr) Variable StorageBuffer
170             109:             TypePointer StorageBuffer 6(int8_t)
171             116:     72(int) Constant 2
172             117:             TypePointer StorageBuffer 102(ptr)
173             120:             TypePointer PhysicalStorageBufferEXT 7(int)
174             136:             TypePointer Function 72(int)
175             138:      7(int) SpecConstantOp 5362 33
176             139:     72(int) SpecConstantOp 128 138 76
177             140:             TypeArray 37 88
178             141:             TypePointer Function 140
179             143:     72(int) Constant 3
180             144:   6(int8_t) Constant 1
181             150:     72(int) Constant 1234
182             155:     72(int) Constant 8
183          156(Y):     72(int) SpecConstant 2
184          157(Z):     72(int) SpecConstantOp 132 155 156(Y)
185             158:             TypeCooperativeMatrixNV 16(int8_t) 8 157(Z) 9
186             159:             TypeArray 158 8
187             160:             TypePointer Private 159
188       161(muC2):    160(ptr) Variable Private
189             162:             TypePointer Private 158
190             166:             TypeCooperativeMatrixNV 6(int8_t) 8 157(Z) 9
191             167:             TypeArray 166 8
192             168:             TypePointer Private 167
193       169(miC2):    168(ptr) Variable Private
194             170:             TypePointer Private 6(int8_t)
195             174:             TypePointer Private 16(int8_t)
196             204:  16(int8_t) Constant 4
197             208:             TypeVector 7(int) 4
198             209:      7(int) Constant 32
199             210:             TypeArray 208(ivec4) 209
200             211:             TypePointer Workgroup 210
201   212(shmatrix):    211(ptr) Variable Workgroup
202             213:      7(int) Constant 2
203             214:             TypePointer Workgroup 208(ivec4)
204             221:             TypeInt 16 1
205             222:             TypeCooperativeMatrixNV 221(int16_t) 8 32 9
206             223:             TypePointer Function 222
207             225:221(int16_t) Constant 0
208             226:         222 ConstantComposite 225
209             227:             TypeInt 16 0
210             228:             TypeCooperativeMatrixNV 227(int16_t) 8 32 9
211             229:             TypePointer Function 228
212             231:227(int16_t) Constant 0
213             232:         228 ConstantComposite 231
214             245:             TypeVector 7(int) 3
215             246:      7(int) Constant 64
216             247:  245(ivec3) ConstantComposite 246 100 100
217             248:             TypePointer Private 166
218        249(miC):    248(ptr) Variable Private
219        250(muC):    162(ptr) Variable Private
220             251:      7(int) SpecConstantOp 5362 166
221             252:     72(int) SpecConstantOp 128 251 76
222             253:             TypeArray 72(int) 252
223             254:             TypePointer Private 253
224       255(iarr):    254(ptr) Variable Private
225             256:      7(int) SpecConstantOp 5362 166
226             257:     72(int) SpecConstantOp 128 256 76
227             258:             TypeArray 72(int) 257
228             259:             TypePointer Private 258
229      260(iarr2):    259(ptr) Variable Private
230             261:      7(int) SpecConstantOp 5362 158
231             262:     72(int) SpecConstantOp 128 261 76
232             263:             TypeArray 72(int) 262
233             264:             TypePointer Private 263
234       265(uarr):    264(ptr) Variable Private
235             266:      7(int) SpecConstantOp 5362 158
236             267:     72(int) SpecConstantOp 128 266 76
237             268:             TypeArray 72(int) 267
238             269:             TypePointer Private 268
239      270(uarr2):    269(ptr) Variable Private
240             271:             TypeCooperativeMatrixNV 72(int) 8 157(Z) 9
241             272:         271 ConstantComposite 73
242             273:  16(int8_t) Constant 1
243             274:          17 ConstantComposite 273
244          275(S):             TypeStruct 72(int) 72(int) 72(int)
245             276:     72(int) Constant 12
246             277:     72(int) Constant 23
247             278:     72(int) Constant 34
248             279:      275(S) ConstantComposite 276 277 278
249         280(SC):     72(int) SpecConstant 1
250             281:             TypeCooperativeMatrixNV 7(int) 8 280(SC) 280(SC)
251             282:             TypeArray 281 280(SC)
252             283:             TypeArray 282 280(SC)
253             284:             TypePointer Private 283
254        285(scm):    284(ptr) Variable Private
255         4(main):           2 Function None 3
256               5:             Label
257          35(mu):     34(ptr) Variable Function
258          39(mi):     38(ptr) Variable Function
259      55(mf16_0):     54(ptr) Variable Function
260      61(mf32_0):     60(ptr) Variable Function
261      64(mf16_1):     54(ptr) Variable Function
262      67(mf32_1):     60(ptr) Variable Function
263           71(x):     70(ptr) Variable Function
264     81(tempArg):     38(ptr) Variable Function
265     98(tempArg):     34(ptr) Variable Function
266    115(tempArg):     38(ptr) Variable Function
267          128(D):     34(ptr) Variable Function
268          129(A):     34(ptr) Variable Function
269          131(B):     18(ptr) Variable Function
270          133(C):     34(ptr) Variable Function
271          137(l):    136(ptr) Variable Function
272          142(a):    141(ptr) Variable Function
273        146(md1):    136(ptr) Variable Function
274    176(tempArg):     38(ptr) Variable Function
275    182(tempArg):     34(ptr) Variable Function
276         188(p1):     11(ptr) Variable Function
277      189(param):     11(ptr) Variable Function
278         192(p2):     18(ptr) Variable Function
279      193(param):     18(ptr) Variable Function
280    207(tempArg):     38(ptr) Variable Function
281         217(ms):     38(ptr) Variable Function
282        224(i16):    223(ptr) Variable Function
283        230(u16):    229(ptr) Variable Function
284    233(tempArg):    223(ptr) Variable Function
285    239(tempArg):    229(ptr) Variable Function
286                              Store 35(mu) 36
287                              Store 39(mi) 41
288              42:          33 Load 35(mu)
289              43:          33 Load 35(mu)
290              44:          33 IAdd 42 43
291                              Store 35(mu) 44
292              45:          33 Load 35(mu)
293              46:          33 Load 35(mu)
294              47:          33 ISub 45 46
295                              Store 35(mu) 47
296              48:          37 Load 39(mi)
297              49:          37 SNegate 48
298                              Store 39(mi) 49
299              50:          37 Load 39(mi)
300              51:          37 MatrixTimesScalar 50 40
301                              Store 39(mi) 51
302              56:          33 Load 35(mu)
303              57:          53 ConvertUToF 56
304                              Store 55(mf16_0) 57
305              62:          33 Load 35(mu)
306              63:          59 ConvertUToF 62
307                              Store 61(mf32_0) 63
308              65:          37 Load 39(mi)
309              66:          53 ConvertSToF 65
310                              Store 64(mf16_1) 66
311              68:          37 Load 39(mi)
312              69:          59 ConvertSToF 68
313                              Store 67(mf32_1) 69
314              74:     70(ptr) AccessChain 35(mu) 73
315              75:  16(int8_t) Load 74
316                              Store 71(x) 75
317              77:  16(int8_t) Load 71(x)
318              78:   6(int8_t) Bitcast 77
319              80:     79(ptr) AccessChain 39(mi) 76
320                              Store 80 78
321              90:     89(ptr) AccessChain 87(block) 73 32
322              94:          37 CooperativeMatrixLoadNV 90 91 93 MakePointerVisibleKHR NonPrivatePointerKHR 88
323                              Store 81(tempArg) 94
324              95:          37 Load 81(tempArg)
325                              Store 39(mi) 95
326              96:          37 Load 39(mi)
327              97:     89(ptr) AccessChain 87(block) 73 32
328                              CooperativeMatrixStoreNV 97 96 91 93 MakePointerAvailableKHR NonPrivatePointerKHR 88
329             110:    109(ptr) AccessChain 108(block8) 73 32
330             111:          33 CooperativeMatrixLoadNV 110 91 93 MakePointerVisibleKHR NonPrivatePointerKHR 88
331                              Store 98(tempArg) 111
332             112:          33 Load 98(tempArg)
333                              Store 35(mu) 112
334             113:          33 Load 35(mu)
335             114:    109(ptr) AccessChain 108(block8) 73 32
336                              CooperativeMatrixStoreNV 114 113 91 93 MakePointerAvailableKHR NonPrivatePointerKHR 88
337             118:    117(ptr) AccessChain 108(block8) 116
338             119:    102(ptr) Load 118 MakePointerVisibleKHR NonPrivatePointerKHR 88
339             121:    120(ptr) AccessChain 119 73 32
340             122:          37 CooperativeMatrixLoadNV 121 91 93 Aligned MakePointerVisibleKHR NonPrivatePointerKHR 16 88
341                              Store 115(tempArg) 122
342             123:          37 Load 115(tempArg)
343                              Store 39(mi) 123
344             124:          37 Load 39(mi)
345             125:    117(ptr) AccessChain 108(block8) 116
346             126:    102(ptr) Load 125 MakePointerVisibleKHR NonPrivatePointerKHR 88
347             127:    120(ptr) AccessChain 126 73 32
348                              CooperativeMatrixStoreNV 127 124 91 93 Aligned MakePointerAvailableKHR NonPrivatePointerKHR 16 88
349             130:          33 Load 129(A)
350             132:          17 Load 131(B)
351             134:          33 Load 133(C)
352             135:          33 CooperativeMatrixMulAddNV 130 132 134
353                              Store 128(D) 135
354                              Store 137(l) 139
355             145:     79(ptr) AccessChain 142(a) 143 76
356                              Store 145 144
357                              Store 146(md1) 73
358             147:          37 Load 39(mi)
359             148:          37 Load 39(mi)
360             149:          37 IAdd 148 147
361                              Store 39(mi) 149
362             151:   6(int8_t) CompositeExtract 149 1234
363             152:     72(int) SConvert 151
364             153:     72(int) Load 146(md1)
365             154:     72(int) IAdd 153 152
366                              Store 146(md1) 154
367             163:    162(ptr) AccessChain 161(muC2) 73
368             164:         158 Load 163
369             165:    162(ptr) AccessChain 161(muC2) 76
370                              Store 165 164
371             171:    170(ptr) AccessChain 169(miC2) 116 76
372             172:   6(int8_t) Load 171
373             173:  16(int8_t) Bitcast 172
374             175:    174(ptr) AccessChain 161(muC2) 73 76
375                              Store 175 173
376             177:     89(ptr) AccessChain 87(block) 76 32
377             178:          37 CooperativeMatrixLoadNV 177 91 93 MakePointerVisibleKHR NonPrivatePointerKHR 88
378                              Store 176(tempArg) 178
379             179:          37 Load 176(tempArg)
380                              Store 39(mi) 179
381             180:          37 Load 39(mi)
382             181:     89(ptr) AccessChain 87(block) 76 32
383                              CooperativeMatrixStoreNV 181 180 91 93 MakePointerAvailableKHR NonPrivatePointerKHR 88
384             183:    109(ptr) AccessChain 108(block8) 76 32
385             184:          33 CooperativeMatrixLoadNV 183 91 93 MakePointerVisibleKHR NonPrivatePointerKHR 88
386                              Store 182(tempArg) 184
387             185:          33 Load 182(tempArg)
388                              Store 35(mu) 185
389             186:          33 Load 35(mu)
390             187:    109(ptr) AccessChain 108(block8) 76 32
391                              CooperativeMatrixStoreNV 187 186 91 93 MakePointerAvailableKHR NonPrivatePointerKHR 88
392             190:          10 Load 188(p1)
393                              Store 189(param) 190
394             191:          10 FunctionCall 14(ineg(i81;) 189(param)
395                              Store 188(p1) 191
396             194:          17 Load 192(p2)
397                              Store 193(param) 194
398             195:          17 FunctionCall 21(umul(u81;) 193(param)
399                              Store 192(p2) 195
400             196:          10 Load 188(p1)
401             197:          10 Load 188(p1)
402             198:          10 SDiv 197 196
403                              Store 188(p1) 198
404             199:          17 Load 192(p2)
405             200:          17 Load 192(p2)
406             201:          17 UDiv 200 199
407                              Store 192(p2) 201
408             202:          10 Load 188(p1)
409             203:          10 MatrixTimesScalar 202 40
410                              Store 188(p1) 203
411             205:          17 Load 192(p2)
412             206:          17 MatrixTimesScalar 205 204
413                              Store 192(p2) 206
414             215:    214(ptr) AccessChain 212(shmatrix) 100
415             216:          37 CooperativeMatrixLoadNV 215 213 93 MakePointerVisibleKHR NonPrivatePointerKHR 213
416                              Store 207(tempArg) 216
417             218:          37 Load 207(tempArg)
418                              Store 217(ms) 218
419             219:          37 Load 217(ms)
420             220:    214(ptr) AccessChain 212(shmatrix) 100
421                              CooperativeMatrixStoreNV 220 219 213 93 MakePointerAvailableKHR NonPrivatePointerKHR 213
422                              Store 224(i16) 226
423                              Store 230(u16) 232
424             234:    214(ptr) AccessChain 212(shmatrix) 100
425             235:         222 CooperativeMatrixLoadNV 234 213 93 MakePointerVisibleKHR NonPrivatePointerKHR 213
426                              Store 233(tempArg) 235
427             236:         222 Load 233(tempArg)
428                              Store 224(i16) 236
429             237:         222 Load 224(i16)
430             238:    214(ptr) AccessChain 212(shmatrix) 100
431                              CooperativeMatrixStoreNV 238 237 213 93 MakePointerAvailableKHR NonPrivatePointerKHR 213
432             240:    214(ptr) AccessChain 212(shmatrix) 100
433             241:         228 CooperativeMatrixLoadNV 240 213 93 MakePointerVisibleKHR NonPrivatePointerKHR 213
434                              Store 239(tempArg) 241
435             242:         228 Load 239(tempArg)
436                              Store 230(u16) 242
437             243:         228 Load 230(u16)
438             244:    214(ptr) AccessChain 212(shmatrix) 100
439                              CooperativeMatrixStoreNV 244 243 213 93 MakePointerAvailableKHR NonPrivatePointerKHR 213
440                              Return
441                              FunctionEnd
442   14(ineg(i81;):          10 Function None 12
443           13(m):     11(ptr) FunctionParameter
444              15:             Label
445              23:          10 Load 13(m)
446              24:          10 SNegate 23
447                              ReturnValue 24
448                              FunctionEnd
449   21(umul(u81;):          17 Function None 19
450           20(m):     18(ptr) FunctionParameter
451              22:             Label
452              27:          17 Load 20(m)
453              29:          17 MatrixTimesScalar 27 28
454                              ReturnValue 29
455                              FunctionEnd
456