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