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