spv.intcoopmat.comp
// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 286

                              Capability Shader
                              Capability Float16
                              Capability Int16
                              Capability Int8
                              Capability StorageBuffer8BitAccess
                              Capability VulkanMemoryModelKHR
                              Capability PhysicalStorageBufferAddressesEXT
                              Capability CooperativeMatrixNV
                              Extension  "SPV_KHR_8bit_storage"
                              Extension  "SPV_KHR_physical_storage_buffer"
                              Extension  "SPV_KHR_storage_buffer_storage_class"
                              Extension  "SPV_KHR_vulkan_memory_model"
                              Extension  "SPV_NV_cooperative_matrix"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel PhysicalStorageBuffer64EXT VulkanKHR
                              EntryPoint GLCompute 4  "main"
                              ExecutionMode 4 LocalSize 64 1 1
                              Source GLSL 450
                              SourceExtension  "GL_EXT_buffer_reference"
                              SourceExtension  "GL_EXT_shader_explicit_arithmetic_types"
                              SourceExtension  "GL_KHR_memory_scope_semantics"
                              SourceExtension  "GL_NV_cooperative_matrix"
                              SourceExtension  "GL_NV_integer_cooperative_matrix"
                              Name 4  "main"
                              Name 14  "ineg(i81;"
                              Name 13  "m"
                              Name 21  "umul(u81;"
                              Name 20  "m"
                              Name 35  "mu"
                              Name 39  "mi"
                              Name 55  "mf16_0"
                              Name 61  "mf32_0"
                              Name 64  "mf16_1"
                              Name 67  "mf32_1"
                              Name 71  "x"
                              Name 81  "tempArg"
                              Name 85  "Block"
                              MemberName 85(Block) 0  "y"
                              MemberName 85(Block) 1  "x"
                              Name 87  "block"
                              Name 98  "tempArg"
                              Name 103  "Block16"
                              MemberName 103(Block16) 0  "y"
                              MemberName 103(Block16) 1  "x"
                              MemberName 103(Block16) 2  "b"
                              Name 106  "Block"
                              MemberName 106(Block) 0  "y"
                              MemberName 106(Block) 1  "x"
                              Name 108  "block8"
                              Name 115  "tempArg"
                              Name 128  "D"
                              Name 129  "A"
                              Name 131  "B"
                              Name 133  "C"
                              Name 137  "l"
                              Name 142  "a"
                              Name 146  "md1"
                              Name 156  "Y"
                              Name 157  "Z"
                              Name 161  "muC2"
                              Name 169  "miC2"
                              Name 176  "tempArg"
                              Name 182  "tempArg"
                              Name 188  "p1"
                              Name 189  "param"
                              Name 192  "p2"
                              Name 193  "param"
                              Name 207  "tempArg"
                              Name 212  "shmatrix"
                              Name 217  "ms"
                              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
                              MemberDecorate 85(Block) 1 Offset 4194304
                              Decorate 85(Block) Block
                              Decorate 87(block) DescriptorSet 0
                              Decorate 87(block) Binding 0
                              Decorate 99 ArrayStride 1
                              Decorate 101 ArrayStride 1
                              MemberDecorate 103(Block16) 0 Offset 0
                              MemberDecorate 103(Block16) 1 Offset 1048576
                              MemberDecorate 103(Block16) 2 Offset 1048584
                              Decorate 103(Block16) Block
                              Decorate 104 ArrayStride 4
                              Decorate 105 ArrayStride 4
                              MemberDecorate 106(Block) 0 Offset 0
                              MemberDecorate 106(Block) 1 Offset 4194304
                              Decorate 106(Block) Block
                              Decorate 108(block8) DescriptorSet 0
                              Decorate 108(block8) Binding 0
                              Decorate 156(Y) SpecId 0
                              Decorate 247 BuiltIn WorkgroupSize
                              Decorate 280(SC) SpecId 2
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 8 1
               7:             TypeInt 32 0
               8:      7(int) Constant 3
               9:      7(int) Constant 8
              10:             TypeCooperativeMatrixNV 6(int8_t) 8 9 9
              11:             TypePointer Function 10
              12:             TypeFunction 10 11(ptr)
              16:             TypeInt 8 0
              17:             TypeCooperativeMatrixNV 16(int8_t) 8 9 9
              18:             TypePointer Function 17
              19:             TypeFunction 17 18(ptr)
              28:  16(int8_t) Constant 2
              32:      7(int) Constant 16
              33:             TypeCooperativeMatrixNV 16(int8_t) 8 32 9
              34:             TypePointer Function 33
              36:          33 ConstantComposite 28
              37:             TypeCooperativeMatrixNV 6(int8_t) 8 32 9
              38:             TypePointer Function 37
              40:   6(int8_t) Constant 2
              41:          37 ConstantComposite 40
              52:             TypeFloat 16
              53:             TypeCooperativeMatrixNV 52(float16_t) 8 32 9
              54:             TypePointer Function 53
              58:             TypeFloat 32
              59:             TypeCooperativeMatrixNV 58(float) 8 32 9
              60:             TypePointer Function 59
              70:             TypePointer Function 16(int8_t)
              72:             TypeInt 32 1
              73:     72(int) Constant 1
              76:     72(int) Constant 0
              79:             TypePointer Function 6(int8_t)
              82:      7(int) Constant 1048576
              83:             TypeArray 7(int) 82
              84:             TypeRuntimeArray 7(int)
       85(Block):             TypeStruct 83 84
              86:             TypePointer StorageBuffer 85(Block)
       87(block):     86(ptr) Variable StorageBuffer
              88:      7(int) Constant 5
              89:             TypePointer StorageBuffer 7(int)
              91:      7(int) Constant 128
              92:             TypeBool
              93:    92(bool) ConstantFalse
              99:             TypeArray 6(int8_t) 82
             100:      7(int) Constant 1
             101:             TypeArray 6(int8_t) 100
                              TypeForwardPointer 102 PhysicalStorageBufferEXT
    103(Block16):             TypeStruct 99 101 102
             104:             TypeArray 7(int) 82
             105:             TypeRuntimeArray 7(int)
      106(Block):             TypeStruct 104 105
             102:             TypePointer PhysicalStorageBufferEXT 106(Block)
             107:             TypePointer StorageBuffer 103(Block16)
     108(block8):    107(ptr) Variable StorageBuffer
             109:             TypePointer StorageBuffer 6(int8_t)
             116:     72(int) Constant 2
             117:             TypePointer StorageBuffer 102(ptr)
             120:             TypePointer PhysicalStorageBufferEXT 7(int)
             136:             TypePointer Function 72(int)
             138:      7(int) SpecConstantOp 5362 33
             139:     72(int) SpecConstantOp 128 138 76
             140:             TypeArray 37 88
             141:             TypePointer Function 140
             143:     72(int) Constant 3
             144:   6(int8_t) Constant 1
             150:     72(int) Constant 1234
             155:     72(int) Constant 8
          156(Y):     72(int) SpecConstant 2
          157(Z):     72(int) SpecConstantOp 132 155 156(Y)
             158:             TypeCooperativeMatrixNV 16(int8_t) 8 157(Z) 9
             159:             TypeArray 158 8
             160:             TypePointer Private 159
       161(muC2):    160(ptr) Variable Private
             162:             TypePointer Private 158
             166:             TypeCooperativeMatrixNV 6(int8_t) 8 157(Z) 9
             167:             TypeArray 166 8
             168:             TypePointer Private 167
       169(miC2):    168(ptr) Variable Private
             170:             TypePointer Private 6(int8_t)
             174:             TypePointer Private 16(int8_t)
             204:  16(int8_t) Constant 4
             208:             TypeVector 7(int) 4
             209:      7(int) Constant 32
             210:             TypeArray 208(ivec4) 209
             211:             TypePointer Workgroup 210
   212(shmatrix):    211(ptr) Variable Workgroup
             213:      7(int) Constant 2
             214:             TypePointer Workgroup 208(ivec4)
             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
          39(mi):     38(ptr) Variable Function
      55(mf16_0):     54(ptr) Variable Function
      61(mf32_0):     60(ptr) Variable Function
      64(mf16_1):     54(ptr) Variable Function
      67(mf32_1):     60(ptr) Variable Function
           71(x):     70(ptr) Variable Function
     81(tempArg):     38(ptr) Variable Function
     98(tempArg):     34(ptr) Variable Function
    115(tempArg):     38(ptr) Variable Function
          128(D):     34(ptr) Variable Function
          129(A):     34(ptr) Variable Function
          131(B):     18(ptr) Variable Function
          133(C):     34(ptr) Variable Function
          137(l):    136(ptr) Variable Function
          142(a):    141(ptr) Variable Function
        146(md1):    136(ptr) Variable Function
    176(tempArg):     38(ptr) Variable Function
    182(tempArg):     34(ptr) Variable Function
         188(p1):     11(ptr) Variable Function
      189(param):     11(ptr) Variable Function
         192(p2):     18(ptr) Variable Function
      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)
              43:          33 Load 35(mu)
              44:          33 IAdd 42 43
                              Store 35(mu) 44
              45:          33 Load 35(mu)
              46:          33 Load 35(mu)
              47:          33 ISub 45 46
                              Store 35(mu) 47
              48:          37 Load 39(mi)
              49:          37 SNegate 48
                              Store 39(mi) 49
              50:          37 Load 39(mi)
              51:          37 MatrixTimesScalar 50 40
                              Store 39(mi) 51
              56:          33 Load 35(mu)
              57:          53 ConvertUToF 56
                              Store 55(mf16_0) 57
              62:          33 Load 35(mu)
              63:          59 ConvertUToF 62
                              Store 61(mf32_0) 63
              65:          37 Load 39(mi)
              66:          53 ConvertSToF 65
                              Store 64(mf16_1) 66
              68:          37 Load 39(mi)
              69:          59 ConvertSToF 68
                              Store 67(mf32_1) 69
              74:     70(ptr) AccessChain 35(mu) 73
              75:  16(int8_t) Load 74
                              Store 71(x) 75
              77:  16(int8_t) Load 71(x)
              78:   6(int8_t) Bitcast 77
              80:     79(ptr) AccessChain 39(mi) 76
                              Store 80 78
              90:     89(ptr) AccessChain 87(block) 73 32
              94:          37 CooperativeMatrixLoadNV 90 91 93 MakePointerVisibleKHR NonPrivatePointerKHR 88
                              Store 81(tempArg) 94
              95:          37 Load 81(tempArg)
                              Store 39(mi) 95
              96:          37 Load 39(mi)
              97:     89(ptr) AccessChain 87(block) 73 32
                              CooperativeMatrixStoreNV 97 96 91 93 MakePointerAvailableKHR NonPrivatePointerKHR 88
             110:    109(ptr) AccessChain 108(block8) 73 32
             111:          33 CooperativeMatrixLoadNV 110 91 93 MakePointerVisibleKHR NonPrivatePointerKHR 88
                              Store 98(tempArg) 111
             112:          33 Load 98(tempArg)
                              Store 35(mu) 112
             113:          33 Load 35(mu)
             114:    109(ptr) AccessChain 108(block8) 73 32
                              CooperativeMatrixStoreNV 114 113 91 93 MakePointerAvailableKHR NonPrivatePointerKHR 88
             118:    117(ptr) AccessChain 108(block8) 116
             119:    102(ptr) Load 118 MakePointerVisibleKHR NonPrivatePointerKHR 88
             121:    120(ptr) AccessChain 119 73 32
             122:          37 CooperativeMatrixLoadNV 121 91 93 Aligned MakePointerVisibleKHR NonPrivatePointerKHR 16 88
                              Store 115(tempArg) 122
             123:          37 Load 115(tempArg)
                              Store 39(mi) 123
             124:          37 Load 39(mi)
             125:    117(ptr) AccessChain 108(block8) 116
             126:    102(ptr) Load 125 MakePointerVisibleKHR NonPrivatePointerKHR 88
             127:    120(ptr) AccessChain 126 73 32
                              CooperativeMatrixStoreNV 127 124 91 93 Aligned MakePointerAvailableKHR NonPrivatePointerKHR 16 88
             130:          33 Load 129(A)
             132:          17 Load 131(B)
             134:          33 Load 133(C)
             135:          33 CooperativeMatrixMulAddNV 130 132 134
                              Store 128(D) 135
                              Store 137(l) 139
             145:     79(ptr) AccessChain 142(a) 143 76
                              Store 145 144
                              Store 146(md1) 73
             147:          37 Load 39(mi)
             148:          37 Load 39(mi)
             149:          37 IAdd 148 147
                              Store 39(mi) 149
             151:   6(int8_t) CompositeExtract 149 1234
             152:     72(int) SConvert 151
             153:     72(int) Load 146(md1)
             154:     72(int) IAdd 153 152
                              Store 146(md1) 154
             163:    162(ptr) AccessChain 161(muC2) 73
             164:         158 Load 163
             165:    162(ptr) AccessChain 161(muC2) 76
                              Store 165 164
             171:    170(ptr) AccessChain 169(miC2) 116 76
             172:   6(int8_t) Load 171
             173:  16(int8_t) Bitcast 172
             175:    174(ptr) AccessChain 161(muC2) 73 76
                              Store 175 173
             177:     89(ptr) AccessChain 87(block) 76 32
             178:          37 CooperativeMatrixLoadNV 177 91 93 MakePointerVisibleKHR NonPrivatePointerKHR 88
                              Store 176(tempArg) 178
             179:          37 Load 176(tempArg)
                              Store 39(mi) 179
             180:          37 Load 39(mi)
             181:     89(ptr) AccessChain 87(block) 76 32
                              CooperativeMatrixStoreNV 181 180 91 93 MakePointerAvailableKHR NonPrivatePointerKHR 88
             183:    109(ptr) AccessChain 108(block8) 76 32
             184:          33 CooperativeMatrixLoadNV 183 91 93 MakePointerVisibleKHR NonPrivatePointerKHR 88
                              Store 182(tempArg) 184
             185:          33 Load 182(tempArg)
                              Store 35(mu) 185
             186:          33 Load 35(mu)
             187:    109(ptr) AccessChain 108(block8) 76 32
                              CooperativeMatrixStoreNV 187 186 91 93 MakePointerAvailableKHR NonPrivatePointerKHR 88
             190:          10 Load 188(p1)
                              Store 189(param) 190
             191:          10 FunctionCall 14(ineg(i81;) 189(param)
                              Store 188(p1) 191
             194:          17 Load 192(p2)
                              Store 193(param) 194
             195:          17 FunctionCall 21(umul(u81;) 193(param)
                              Store 192(p2) 195
             196:          10 Load 188(p1)
             197:          10 Load 188(p1)
             198:          10 SDiv 197 196
                              Store 188(p1) 198
             199:          17 Load 192(p2)
             200:          17 Load 192(p2)
             201:          17 UDiv 200 199
                              Store 192(p2) 201
             202:          10 Load 188(p1)
             203:          10 MatrixTimesScalar 202 40
                              Store 188(p1) 203
             205:          17 Load 192(p2)
             206:          17 MatrixTimesScalar 205 204
                              Store 192(p2) 206
             215:    214(ptr) AccessChain 212(shmatrix) 100
             216:          37 CooperativeMatrixLoadNV 215 213 93 MakePointerVisibleKHR NonPrivatePointerKHR 213
                              Store 207(tempArg) 216
             218:          37 Load 207(tempArg)
                              Store 217(ms) 218
             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
           13(m):     11(ptr) FunctionParameter
              15:             Label
              23:          10 Load 13(m)
              24:          10 SNegate 23
                              ReturnValue 24
                              FunctionEnd
   21(umul(u81;):          17 Function None 19
           20(m):     18(ptr) FunctionParameter
              22:             Label
              27:          17 Load 20(m)
              29:          17 MatrixTimesScalar 27 28
                              ReturnValue 29
                              FunctionEnd
