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

                              Capability Shader
                              Capability Float16
                              Capability StorageUniformBufferBlock16
                              Capability VulkanMemoryModelKHR
                              Capability PhysicalStorageBufferAddressesEXT
                              Capability CooperativeMatrixNV
                              Extension  "SPV_KHR_16bit_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_float16"
                              SourceExtension  "GL_KHR_memory_scope_semantics"
                              SourceExtension  "GL_NV_cooperative_matrix"
                              Name 4  "main"
                              Name 14  "f16(f161;"
                              Name 13  "m"
                              Name 21  "f32(f1;"
                              Name 20  "m"
                              Name 34  "m"
                              Name 52  "m2"
                              Name 56  "x"
                              Name 64  "tempArg"
                              Name 68  "Block"
                              MemberName 68(Block) 0  "y"
                              MemberName 68(Block) 1  "x"
                              Name 70  "block"
                              Name 81  "tempArg"
                              Name 86  "Block16"
                              MemberName 86(Block16) 0  "y"
                              MemberName 86(Block16) 1  "x"
                              MemberName 86(Block16) 2  "b"
                              Name 89  "Block"
                              MemberName 89(Block) 0  "y"
                              MemberName 89(Block) 1  "x"
                              Name 91  "block16"
                              Name 98  "tempArg"
                              Name 111  "D"
                              Name 112  "A"
                              Name 114  "B"
                              Name 116  "C"
                              Name 120  "l"
                              Name 124  "Y"
                              Name 125  "Z"
                              Name 128  "F"
                              Name 133  "a"
                              Name 137  "md1"
                              Name 148  "mC2"
                              Name 153  "tempArg"
                              Name 159  "tempArg"
                              Name 165  "p1"
                              Name 166  "param"
                              Name 169  "p2"
                              Name 170  "param"
                              Name 184  "tempArg"
                              Name 189  "shmatrix"
                              Name 194  "ms"
                              Name 201  "mC"
                              Name 206  "arr"
                              Name 211  "arr2"
                              Name 212  "F"
                              Name 217  "S"
                              MemberName 217(S) 0  "a"
                              MemberName 217(S) 1  "b"
                              MemberName 217(S) 2  "c"
                              Name 222  "SC"
                              Name 227  "scm"
                              Decorate 66 ArrayStride 4
                              Decorate 67 ArrayStride 4
                              MemberDecorate 68(Block) 0 Offset 0
                              MemberDecorate 68(Block) 1 Offset 4194304
                              Decorate 68(Block) Block
                              Decorate 70(block) DescriptorSet 0
                              Decorate 70(block) Binding 0
                              Decorate 82 ArrayStride 2
                              Decorate 84 ArrayStride 2
                              MemberDecorate 86(Block16) 0 Offset 0
                              MemberDecorate 86(Block16) 1 Offset 2097152
                              MemberDecorate 86(Block16) 2 Offset 2097160
                              Decorate 86(Block16) Block
                              Decorate 87 ArrayStride 4
                              Decorate 88 ArrayStride 4
                              MemberDecorate 89(Block) 0 Offset 0
                              MemberDecorate 89(Block) 1 Offset 4194304
                              Decorate 89(Block) Block
                              Decorate 91(block16) DescriptorSet 0
                              Decorate 91(block16) Binding 0
                              Decorate 124(Y) SpecId 0
                              Decorate 200 BuiltIn WorkgroupSize
                              Decorate 212(F) SpecId 1
                              Decorate 222(SC) SpecId 2
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 16
               7:             TypeInt 32 0
               8:      7(int) Constant 3
               9:      7(int) Constant 8
              10:             TypeCooperativeMatrixNV 6(float16_t) 8 9 9
              11:             TypePointer Function 10
              12:             TypeFunction 10 11(ptr)
              16:             TypeFloat 32
              17:             TypeCooperativeMatrixNV 16(float) 8 9 9
              18:             TypePointer Function 17
              19:             TypeFunction 17 18(ptr)
              31:      7(int) Constant 16
              32:             TypeCooperativeMatrixNV 16(float) 8 31 9
              33:             TypePointer Function 32
              35:   16(float) Constant 0
              36:          32 ConstantComposite 35
              45:   16(float) Constant 1073741824
              50:             TypeCooperativeMatrixNV 6(float16_t) 8 31 9
              51:             TypePointer Function 50
              55:             TypePointer Function 16(float)
              57:             TypeInt 32 1
              58:     57(int) Constant 1
              61:     57(int) Constant 0
              65:      7(int) Constant 1048576
              66:             TypeArray 16(float) 65
              67:             TypeRuntimeArray 16(float)
       68(Block):             TypeStruct 66 67
              69:             TypePointer StorageBuffer 68(Block)
       70(block):     69(ptr) Variable StorageBuffer
              71:      7(int) Constant 5
              72:             TypePointer StorageBuffer 16(float)
              74:      7(int) Constant 128
              75:             TypeBool
              76:    75(bool) ConstantFalse
              82:             TypeArray 6(float16_t) 65
              83:      7(int) Constant 1
              84:             TypeArray 6(float16_t) 83
                              TypeForwardPointer 85 PhysicalStorageBufferEXT
     86(Block16):             TypeStruct 82 84 85
              87:             TypeArray 16(float) 65
              88:             TypeRuntimeArray 16(float)
       89(Block):             TypeStruct 87 88
              85:             TypePointer PhysicalStorageBufferEXT 89(Block)
              90:             TypePointer StorageBuffer 86(Block16)
     91(block16):     90(ptr) Variable StorageBuffer
              92:             TypePointer StorageBuffer 6(float16_t)
              99:     57(int) Constant 2
             100:             TypePointer StorageBuffer 85(ptr)
             103:             TypePointer PhysicalStorageBufferEXT 16(float)
             119:             TypePointer Function 57(int)
             121:      7(int) SpecConstantOp 5362 32
             122:     57(int) SpecConstantOp 128 121 61
             123:     57(int) Constant 8
          124(Y):     57(int) SpecConstant 2
          125(Z):     57(int) SpecConstantOp 132 123 124(Y)
             126:             TypeCooperativeMatrixNV 6(float16_t) 8 125(Z) 125(Z)
             127:             TypePointer Function 126
             129:6(float16_t) Constant 0
             130:         126 ConstantComposite 129
             131:             TypeArray 32 71
             132:             TypePointer Function 131
             134:     57(int) Constant 3
             135:   16(float) Constant 1065353216
             141:     57(int) Constant 1234
             145:             TypeCooperativeMatrixNV 6(float16_t) 8 125(Z) 9
             146:             TypeArray 145 8
             147:             TypePointer Private 146
        148(mC2):    147(ptr) Variable Private
             149:             TypePointer Private 145
             173:          10 ConstantComposite 129
             174:          17 ConstantComposite 35
             178:6(float16_t) Constant 16384
             181:   16(float) Constant 1082130432
             185:             TypeVector 7(int) 4
             186:      7(int) Constant 32
             187:             TypeArray 185(ivec4) 186
             188:             TypePointer Workgroup 187
   189(shmatrix):    188(ptr) Variable Workgroup
             190:      7(int) Constant 2
             191:             TypePointer Workgroup 185(ivec4)
             198:             TypeVector 7(int) 3
             199:      7(int) Constant 64
             200:  198(ivec3) ConstantComposite 199 83 83
         201(mC):    149(ptr) Variable Private
             202:      7(int) SpecConstantOp 5362 145
             203:     57(int) SpecConstantOp 128 202 61
             204:             TypeArray 57(int) 203
             205:             TypePointer Private 204
        206(arr):    205(ptr) Variable Private
             207:      7(int) SpecConstantOp 5362 145
             208:     57(int) SpecConstantOp 128 207 61
             209:             TypeArray 57(int) 208
             210:             TypePointer Private 209
       211(arr2):    210(ptr) Variable Private
          212(F):   16(float) SpecConstant 1077936128
             213:             TypeCooperativeMatrixNV 16(float) 8 125(Z) 9
             214:         213 ConstantComposite 35
             215:6(float16_t) Constant 15360
             216:          10 ConstantComposite 215
          217(S):             TypeStruct 57(int) 57(int) 57(int)
             218:     57(int) Constant 12
             219:     57(int) Constant 23
             220:     57(int) Constant 34
             221:      217(S) ConstantComposite 218 219 220
         222(SC):     57(int) SpecConstant 1
             223:             TypeCooperativeMatrixNV 6(float16_t) 8 222(SC) 222(SC)
             224:             TypeArray 223 222(SC)
             225:             TypeArray 224 222(SC)
             226:             TypePointer Private 225
        227(scm):    226(ptr) Variable Private
         4(main):           2 Function None 3
               5:             Label
           34(m):     33(ptr) Variable Function
          52(m2):     51(ptr) Variable Function
           56(x):     55(ptr) Variable Function
     64(tempArg):     33(ptr) Variable Function
     81(tempArg):     51(ptr) Variable Function
     98(tempArg):     33(ptr) Variable Function
          111(D):     33(ptr) Variable Function
          112(A):     51(ptr) Variable Function
          114(B):     11(ptr) Variable Function
          116(C):     33(ptr) Variable Function
          120(l):    119(ptr) Variable Function
          128(F):    127(ptr) Variable Function
          133(a):    132(ptr) Variable Function
        137(md1):     55(ptr) Variable Function
    153(tempArg):     33(ptr) Variable Function
    159(tempArg):     51(ptr) Variable Function
         165(p1):     11(ptr) Variable Function
      166(param):     11(ptr) Variable Function
         169(p2):     18(ptr) Variable Function
      170(param):     18(ptr) Variable Function
    184(tempArg):     51(ptr) Variable Function
         194(ms):     51(ptr) Variable Function
                              Store 34(m) 36
              37:          32 Load 34(m)
              38:          32 Load 34(m)
              39:          32 FAdd 37 38
                              Store 34(m) 39
              40:          32 Load 34(m)
              41:          32 Load 34(m)
              42:          32 FSub 40 41
                              Store 34(m) 42
              43:          32 Load 34(m)
              44:          32 FNegate 43
                              Store 34(m) 44
              46:          32 Load 34(m)
              47:          32 MatrixTimesScalar 46 45
                              Store 34(m) 47
              48:          32 Load 34(m)
              49:          32 MatrixTimesScalar 48 45
                              Store 34(m) 49
              53:          32 Load 34(m)
              54:          50 FConvert 53
                              Store 52(m2) 54
              59:     55(ptr) AccessChain 34(m) 58
              60:   16(float) Load 59
                              Store 56(x) 60
              62:   16(float) Load 56(x)
              63:     55(ptr) AccessChain 34(m) 61
                              Store 63 62
              73:     72(ptr) AccessChain 70(block) 58 31
              77:          32 CooperativeMatrixLoadNV 73 74 76 MakePointerVisibleKHR NonPrivatePointerKHR 71
                              Store 64(tempArg) 77
              78:          32 Load 64(tempArg)
                              Store 34(m) 78
              79:          32 Load 34(m)
              80:     72(ptr) AccessChain 70(block) 58 31
                              CooperativeMatrixStoreNV 80 79 74 76 MakePointerAvailableKHR NonPrivatePointerKHR 71
              93:     92(ptr) AccessChain 91(block16) 58 31
              94:          50 CooperativeMatrixLoadNV 93 74 76 MakePointerVisibleKHR NonPrivatePointerKHR 71
                              Store 81(tempArg) 94
              95:          50 Load 81(tempArg)
                              Store 52(m2) 95
              96:          50 Load 52(m2)
              97:     92(ptr) AccessChain 91(block16) 58 31
                              CooperativeMatrixStoreNV 97 96 74 76 MakePointerAvailableKHR NonPrivatePointerKHR 71
             101:    100(ptr) AccessChain 91(block16) 99
             102:     85(ptr) Load 101 MakePointerVisibleKHR NonPrivatePointerKHR 71
             104:    103(ptr) AccessChain 102 58 31
             105:          32 CooperativeMatrixLoadNV 104 74 76 Aligned MakePointerVisibleKHR NonPrivatePointerKHR 16 71
                              Store 98(tempArg) 105
             106:          32 Load 98(tempArg)
                              Store 34(m) 106
             107:          32 Load 34(m)
             108:    100(ptr) AccessChain 91(block16) 99
             109:     85(ptr) Load 108 MakePointerVisibleKHR NonPrivatePointerKHR 71
             110:    103(ptr) AccessChain 109 58 31
                              CooperativeMatrixStoreNV 110 107 74 76 Aligned MakePointerAvailableKHR NonPrivatePointerKHR 16 71
             113:          50 Load 112(A)
             115:          10 Load 114(B)
             117:          32 Load 116(C)
             118:          32 CooperativeMatrixMulAddNV 113 115 117
                              Store 111(D) 118
                              Store 120(l) 122
                              Store 128(F) 130
             136:     55(ptr) AccessChain 133(a) 134 61
                              Store 136 135
                              Store 137(md1) 35
             138:          32 Load 34(m)
             139:          32 Load 34(m)
             140:          32 FAdd 139 138
                              Store 34(m) 140
             142:   16(float) CompositeExtract 140 1234
             143:   16(float) Load 137(md1)
             144:   16(float) FAdd 143 142
                              Store 137(md1) 144
             150:    149(ptr) AccessChain 148(mC2) 99
             151:         145 Load 150
             152:    149(ptr) AccessChain 148(mC2) 58
                              Store 152 151
             154:     72(ptr) AccessChain 70(block) 61 31
             155:          32 CooperativeMatrixLoadNV 154 74 76 MakePointerVisibleKHR NonPrivatePointerKHR 71
                              Store 153(tempArg) 155
             156:          32 Load 153(tempArg)
                              Store 34(m) 156
             157:          32 Load 34(m)
             158:     72(ptr) AccessChain 70(block) 61 31
                              CooperativeMatrixStoreNV 158 157 74 76 MakePointerAvailableKHR NonPrivatePointerKHR 71
             160:     92(ptr) AccessChain 91(block16) 61 31
             161:          50 CooperativeMatrixLoadNV 160 74 76 MakePointerVisibleKHR NonPrivatePointerKHR 71
                              Store 159(tempArg) 161
             162:          50 Load 159(tempArg)
                              Store 52(m2) 162
             163:          50 Load 52(m2)
             164:     92(ptr) AccessChain 91(block16) 61 31
                              CooperativeMatrixStoreNV 164 163 74 76 MakePointerAvailableKHR NonPrivatePointerKHR 71
             167:          10 Load 165(p1)
                              Store 166(param) 167
             168:          10 FunctionCall 14(f16(f161;) 166(param)
                              Store 165(p1) 168
             171:          17 Load 169(p2)
                              Store 170(param) 171
             172:          17 FunctionCall 21(f32(f1;) 170(param)
                              Store 169(p2) 172
                              Store 165(p1) 173
                              Store 169(p2) 174
             175:          10 Load 165(p1)
             176:          10 Load 165(p1)
             177:          10 FDiv 176 175
                              Store 165(p1) 177
             179:          10 Load 165(p1)
             180:          10 MatrixTimesScalar 179 178
                              Store 165(p1) 180
             182:          17 Load 169(p2)
             183:          17 MatrixTimesScalar 182 181
                              Store 169(p2) 183
             192:    191(ptr) AccessChain 189(shmatrix) 83
             193:          50 CooperativeMatrixLoadNV 192 190 76 MakePointerVisibleKHR NonPrivatePointerKHR 190
                              Store 184(tempArg) 193
             195:          50 Load 184(tempArg)
                              Store 194(ms) 195
             196:          50 Load 194(ms)
             197:    191(ptr) AccessChain 189(shmatrix) 83
                              CooperativeMatrixStoreNV 197 196 190 76 MakePointerAvailableKHR NonPrivatePointerKHR 190
                              Return
                              FunctionEnd
   14(f16(f161;):          10 Function None 12
           13(m):     11(ptr) FunctionParameter
              15:             Label
              23:          10 Load 13(m)
              24:          10 FNegate 23
                              ReturnValue 24
                              FunctionEnd
     21(f32(f1;):          17 Function None 19
           20(m):     18(ptr) FunctionParameter
              22:             Label
              27:          17 Load 20(m)
              28:          17 FNegate 27
                              ReturnValue 28
                              FunctionEnd
