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

                              Capability Shader
                              Capability Float16
                              Capability Int8
                              Capability StorageBuffer8BitAccess
                              Capability VulkanMemoryModelKHR
                              Capability PhysicalStorageBufferAddressesEXT
                              Capability CooperativeMatrixNV
                              Extension  "SPV_EXT_physical_storage_buffer"
                              Extension  "SPV_KHR_8bit_storage"
                              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 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"
                              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 223 BuiltIn WorkgroupSize
                              Decorate 256(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:             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
         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
                              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
                              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
