Implement support for GL_KHR_cooperative_matrix extension

This commit is contained in:
Boris Zanin 2023-03-16 13:01:01 +01:00 committed by arcady-lunarg
parent 91a97b4c69
commit 808c7ed17c
40 changed files with 8227 additions and 5733 deletions

View file

@ -1,10 +1,11 @@
spv.intcoopmat.comp
// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 262
// Id's are bound by 286
Capability Shader
Capability Float16
Capability Int16
Capability Int8
Capability StorageBuffer8BitAccess
Capability VulkanMemoryModelKHR
@ -72,18 +73,22 @@ spv.intcoopmat.comp
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"
Name 224 "i16"
Name 230 "u16"
Name 233 "tempArg"
Name 239 "tempArg"
Name 249 "miC"
Name 250 "muC"
Name 255 "iarr"
Name 260 "iarr2"
Name 265 "uarr"
Name 270 "uarr2"
Name 275 "S"
MemberName 275(S) 0 "a"
MemberName 275(S) 1 "b"
MemberName 275(S) 2 "c"
Name 280 "SC"
Name 285 "scm"
Decorate 83 ArrayStride 4
Decorate 84 ArrayStride 4
MemberDecorate 85(Block) 0 Offset 0
@ -105,8 +110,8 @@ spv.intcoopmat.comp
Decorate 108(block8) DescriptorSet 0
Decorate 108(block8) Binding 0
Decorate 156(Y) SpecId 0
Decorate 223 BuiltIn WorkgroupSize
Decorate 256(SC) SpecId 2
Decorate 247 BuiltIn WorkgroupSize
Decorate 280(SC) SpecId 2
2: TypeVoid
3: TypeFunction 2
6: TypeInt 8 1
@ -196,47 +201,57 @@ spv.intcoopmat.comp
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
221: TypeInt 16 1
222: TypeCooperativeMatrixNV 221(int16_t) 8 32 9
223: TypePointer Function 222
225:221(int16_t) Constant 0
226: 222 ConstantComposite 225
227: TypeInt 16 0
228: TypeCooperativeMatrixNV 227(int16_t) 8 32 9
229: TypePointer Function 228
231:227(int16_t) Constant 0
232: 228 ConstantComposite 231
245: TypeVector 7(int) 3
246: 7(int) Constant 64
247: 245(ivec3) ConstantComposite 246 100 100
248: TypePointer Private 166
249(miC): 248(ptr) Variable Private
250(muC): 162(ptr) Variable Private
251: 7(int) SpecConstantOp 5362 166
252: 72(int) SpecConstantOp 128 251 76
253: TypeArray 72(int) 252
254: TypePointer Private 253
255(iarr): 254(ptr) Variable Private
256: 7(int) SpecConstantOp 5362 166
257: 72(int) SpecConstantOp 128 256 76
258: TypeArray 72(int) 257
259: TypePointer Private 258
260(iarr2): 259(ptr) Variable Private
261: 7(int) SpecConstantOp 5362 158
262: 72(int) SpecConstantOp 128 261 76
263: TypeArray 72(int) 262
264: TypePointer Private 263
265(uarr): 264(ptr) Variable Private
266: 7(int) SpecConstantOp 5362 158
267: 72(int) SpecConstantOp 128 266 76
268: TypeArray 72(int) 267
269: TypePointer Private 268
270(uarr2): 269(ptr) Variable Private
271: TypeCooperativeMatrixNV 72(int) 8 157(Z) 9
272: 271 ConstantComposite 73
273: 16(int8_t) Constant 1
274: 17 ConstantComposite 273
275(S): TypeStruct 72(int) 72(int) 72(int)
276: 72(int) Constant 12
277: 72(int) Constant 23
278: 72(int) Constant 34
279: 275(S) ConstantComposite 276 277 278
280(SC): 72(int) SpecConstant 1
281: TypeCooperativeMatrixNV 7(int) 8 280(SC) 280(SC)
282: TypeArray 281 280(SC)
283: TypeArray 282 280(SC)
284: TypePointer Private 283
285(scm): 284(ptr) Variable Private
4(main): 2 Function None 3
5: Label
35(mu): 34(ptr) Variable Function
@ -264,6 +279,10 @@ spv.intcoopmat.comp
193(param): 18(ptr) Variable Function
207(tempArg): 38(ptr) Variable Function
217(ms): 38(ptr) Variable Function
224(i16): 223(ptr) Variable Function
230(u16): 229(ptr) Variable Function
233(tempArg): 223(ptr) Variable Function
239(tempArg): 229(ptr) Variable Function
Store 35(mu) 36
Store 39(mi) 41
42: 33 Load 35(mu)
@ -400,6 +419,24 @@ spv.intcoopmat.comp
219: 37 Load 217(ms)
220: 214(ptr) AccessChain 212(shmatrix) 100
CooperativeMatrixStoreNV 220 219 213 93 MakePointerAvailableKHR NonPrivatePointerKHR 213
Store 224(i16) 226
Store 230(u16) 232
234: 214(ptr) AccessChain 212(shmatrix) 100
235: 222 CooperativeMatrixLoadNV 234 213 93 MakePointerVisibleKHR NonPrivatePointerKHR 213
Store 233(tempArg) 235
236: 222 Load 233(tempArg)
Store 224(i16) 236
237: 222 Load 224(i16)
238: 214(ptr) AccessChain 212(shmatrix) 100
CooperativeMatrixStoreNV 238 237 213 93 MakePointerAvailableKHR NonPrivatePointerKHR 213
240: 214(ptr) AccessChain 212(shmatrix) 100
241: 228 CooperativeMatrixLoadNV 240 213 93 MakePointerVisibleKHR NonPrivatePointerKHR 213
Store 239(tempArg) 241
242: 228 Load 239(tempArg)
Store 230(u16) 242
243: 228 Load 230(u16)
244: 214(ptr) AccessChain 212(shmatrix) 100
CooperativeMatrixStoreNV 244 243 213 93 MakePointerAvailableKHR NonPrivatePointerKHR 213
Return
FunctionEnd
14(ineg(i81;): 10 Function None 12