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