1spv.coopmat.comp 2// Module Version 10000 3// Generated by (magic number): 8000a 4// Id's are bound by 228 5 6 Capability Shader 7 Capability Float16 8 Capability StorageUniformBufferBlock16 9 Capability VulkanMemoryModelKHR 10 Capability PhysicalStorageBufferAddressesEXT 11 Capability CooperativeMatrixNV 12 Extension "SPV_KHR_16bit_storage" 13 Extension "SPV_KHR_physical_storage_buffer" 14 Extension "SPV_KHR_storage_buffer_storage_class" 15 Extension "SPV_KHR_vulkan_memory_model" 16 Extension "SPV_NV_cooperative_matrix" 17 1: ExtInstImport "GLSL.std.450" 18 MemoryModel PhysicalStorageBuffer64EXT VulkanKHR 19 EntryPoint GLCompute 4 "main" 20 ExecutionMode 4 LocalSize 64 1 1 21 Source GLSL 450 22 SourceExtension "GL_EXT_buffer_reference" 23 SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float16" 24 SourceExtension "GL_KHR_memory_scope_semantics" 25 SourceExtension "GL_NV_cooperative_matrix" 26 Name 4 "main" 27 Name 14 "f16(f161;" 28 Name 13 "m" 29 Name 21 "f32(f1;" 30 Name 20 "m" 31 Name 34 "m" 32 Name 52 "m2" 33 Name 56 "x" 34 Name 64 "tempArg" 35 Name 68 "Block" 36 MemberName 68(Block) 0 "y" 37 MemberName 68(Block) 1 "x" 38 Name 70 "block" 39 Name 81 "tempArg" 40 Name 86 "Block16" 41 MemberName 86(Block16) 0 "y" 42 MemberName 86(Block16) 1 "x" 43 MemberName 86(Block16) 2 "b" 44 Name 89 "Block" 45 MemberName 89(Block) 0 "y" 46 MemberName 89(Block) 1 "x" 47 Name 91 "block16" 48 Name 98 "tempArg" 49 Name 111 "D" 50 Name 112 "A" 51 Name 114 "B" 52 Name 116 "C" 53 Name 120 "l" 54 Name 124 "Y" 55 Name 125 "Z" 56 Name 128 "F" 57 Name 133 "a" 58 Name 137 "md1" 59 Name 148 "mC2" 60 Name 153 "tempArg" 61 Name 159 "tempArg" 62 Name 165 "p1" 63 Name 166 "param" 64 Name 169 "p2" 65 Name 170 "param" 66 Name 184 "tempArg" 67 Name 189 "shmatrix" 68 Name 194 "ms" 69 Name 201 "mC" 70 Name 206 "arr" 71 Name 211 "arr2" 72 Name 212 "F" 73 Name 217 "S" 74 MemberName 217(S) 0 "a" 75 MemberName 217(S) 1 "b" 76 MemberName 217(S) 2 "c" 77 Name 222 "SC" 78 Name 227 "scm" 79 Decorate 66 ArrayStride 4 80 Decorate 67 ArrayStride 4 81 MemberDecorate 68(Block) 0 Offset 0 82 MemberDecorate 68(Block) 1 Offset 4194304 83 Decorate 68(Block) Block 84 Decorate 70(block) DescriptorSet 0 85 Decorate 70(block) Binding 0 86 Decorate 82 ArrayStride 2 87 Decorate 84 ArrayStride 2 88 MemberDecorate 86(Block16) 0 Offset 0 89 MemberDecorate 86(Block16) 1 Offset 2097152 90 MemberDecorate 86(Block16) 2 Offset 2097160 91 Decorate 86(Block16) Block 92 Decorate 87 ArrayStride 4 93 Decorate 88 ArrayStride 4 94 MemberDecorate 89(Block) 0 Offset 0 95 MemberDecorate 89(Block) 1 Offset 4194304 96 Decorate 89(Block) Block 97 Decorate 91(block16) DescriptorSet 0 98 Decorate 91(block16) Binding 0 99 Decorate 124(Y) SpecId 0 100 Decorate 200 BuiltIn WorkgroupSize 101 Decorate 212(F) SpecId 1 102 Decorate 222(SC) SpecId 2 103 2: TypeVoid 104 3: TypeFunction 2 105 6: TypeFloat 16 106 7: TypeInt 32 0 107 8: 7(int) Constant 3 108 9: 7(int) Constant 8 109 10: TypeCooperativeMatrixNV 6(float16_t) 8 9 9 110 11: TypePointer Function 10 111 12: TypeFunction 10 11(ptr) 112 16: TypeFloat 32 113 17: TypeCooperativeMatrixNV 16(float) 8 9 9 114 18: TypePointer Function 17 115 19: TypeFunction 17 18(ptr) 116 31: 7(int) Constant 16 117 32: TypeCooperativeMatrixNV 16(float) 8 31 9 118 33: TypePointer Function 32 119 35: 16(float) Constant 0 120 36: 32 ConstantComposite 35 121 45: 16(float) Constant 1073741824 122 50: TypeCooperativeMatrixNV 6(float16_t) 8 31 9 123 51: TypePointer Function 50 124 55: TypePointer Function 16(float) 125 57: TypeInt 32 1 126 58: 57(int) Constant 1 127 61: 57(int) Constant 0 128 65: 7(int) Constant 1048576 129 66: TypeArray 16(float) 65 130 67: TypeRuntimeArray 16(float) 131 68(Block): TypeStruct 66 67 132 69: TypePointer StorageBuffer 68(Block) 133 70(block): 69(ptr) Variable StorageBuffer 134 71: 7(int) Constant 5 135 72: TypePointer StorageBuffer 16(float) 136 74: 7(int) Constant 128 137 75: TypeBool 138 76: 75(bool) ConstantFalse 139 82: TypeArray 6(float16_t) 65 140 83: 7(int) Constant 1 141 84: TypeArray 6(float16_t) 83 142 TypeForwardPointer 85 PhysicalStorageBufferEXT 143 86(Block16): TypeStruct 82 84 85 144 87: TypeArray 16(float) 65 145 88: TypeRuntimeArray 16(float) 146 89(Block): TypeStruct 87 88 147 85: TypePointer PhysicalStorageBufferEXT 89(Block) 148 90: TypePointer StorageBuffer 86(Block16) 149 91(block16): 90(ptr) Variable StorageBuffer 150 92: TypePointer StorageBuffer 6(float16_t) 151 99: 57(int) Constant 2 152 100: TypePointer StorageBuffer 85(ptr) 153 103: TypePointer PhysicalStorageBufferEXT 16(float) 154 119: TypePointer Function 57(int) 155 121: 7(int) SpecConstantOp 5362 32 156 122: 57(int) SpecConstantOp 128 121 61 157 123: 57(int) Constant 8 158 124(Y): 57(int) SpecConstant 2 159 125(Z): 57(int) SpecConstantOp 132 123 124(Y) 160 126: TypeCooperativeMatrixNV 6(float16_t) 8 125(Z) 125(Z) 161 127: TypePointer Function 126 162 129:6(float16_t) Constant 0 163 130: 126 ConstantComposite 129 164 131: TypeArray 32 71 165 132: TypePointer Function 131 166 134: 57(int) Constant 3 167 135: 16(float) Constant 1065353216 168 141: 57(int) Constant 1234 169 145: TypeCooperativeMatrixNV 6(float16_t) 8 125(Z) 9 170 146: TypeArray 145 8 171 147: TypePointer Private 146 172 148(mC2): 147(ptr) Variable Private 173 149: TypePointer Private 145 174 173: 10 ConstantComposite 129 175 174: 17 ConstantComposite 35 176 178:6(float16_t) Constant 16384 177 181: 16(float) Constant 1082130432 178 185: TypeVector 7(int) 4 179 186: 7(int) Constant 32 180 187: TypeArray 185(ivec4) 186 181 188: TypePointer Workgroup 187 182 189(shmatrix): 188(ptr) Variable Workgroup 183 190: 7(int) Constant 2 184 191: TypePointer Workgroup 185(ivec4) 185 198: TypeVector 7(int) 3 186 199: 7(int) Constant 64 187 200: 198(ivec3) ConstantComposite 199 83 83 188 201(mC): 149(ptr) Variable Private 189 202: 7(int) SpecConstantOp 5362 145 190 203: 57(int) SpecConstantOp 128 202 61 191 204: TypeArray 57(int) 203 192 205: TypePointer Private 204 193 206(arr): 205(ptr) Variable Private 194 207: 7(int) SpecConstantOp 5362 145 195 208: 57(int) SpecConstantOp 128 207 61 196 209: TypeArray 57(int) 208 197 210: TypePointer Private 209 198 211(arr2): 210(ptr) Variable Private 199 212(F): 16(float) SpecConstant 1077936128 200 213: TypeCooperativeMatrixNV 16(float) 8 125(Z) 9 201 214: 213 ConstantComposite 35 202 215:6(float16_t) Constant 15360 203 216: 10 ConstantComposite 215 204 217(S): TypeStruct 57(int) 57(int) 57(int) 205 218: 57(int) Constant 12 206 219: 57(int) Constant 23 207 220: 57(int) Constant 34 208 221: 217(S) ConstantComposite 218 219 220 209 222(SC): 57(int) SpecConstant 1 210 223: TypeCooperativeMatrixNV 6(float16_t) 8 222(SC) 222(SC) 211 224: TypeArray 223 222(SC) 212 225: TypeArray 224 222(SC) 213 226: TypePointer Private 225 214 227(scm): 226(ptr) Variable Private 215 4(main): 2 Function None 3 216 5: Label 217 34(m): 33(ptr) Variable Function 218 52(m2): 51(ptr) Variable Function 219 56(x): 55(ptr) Variable Function 220 64(tempArg): 33(ptr) Variable Function 221 81(tempArg): 51(ptr) Variable Function 222 98(tempArg): 33(ptr) Variable Function 223 111(D): 33(ptr) Variable Function 224 112(A): 51(ptr) Variable Function 225 114(B): 11(ptr) Variable Function 226 116(C): 33(ptr) Variable Function 227 120(l): 119(ptr) Variable Function 228 128(F): 127(ptr) Variable Function 229 133(a): 132(ptr) Variable Function 230 137(md1): 55(ptr) Variable Function 231 153(tempArg): 33(ptr) Variable Function 232 159(tempArg): 51(ptr) Variable Function 233 165(p1): 11(ptr) Variable Function 234 166(param): 11(ptr) Variable Function 235 169(p2): 18(ptr) Variable Function 236 170(param): 18(ptr) Variable Function 237 184(tempArg): 51(ptr) Variable Function 238 194(ms): 51(ptr) Variable Function 239 Store 34(m) 36 240 37: 32 Load 34(m) 241 38: 32 Load 34(m) 242 39: 32 FAdd 37 38 243 Store 34(m) 39 244 40: 32 Load 34(m) 245 41: 32 Load 34(m) 246 42: 32 FSub 40 41 247 Store 34(m) 42 248 43: 32 Load 34(m) 249 44: 32 FNegate 43 250 Store 34(m) 44 251 46: 32 Load 34(m) 252 47: 32 MatrixTimesScalar 46 45 253 Store 34(m) 47 254 48: 32 Load 34(m) 255 49: 32 MatrixTimesScalar 48 45 256 Store 34(m) 49 257 53: 32 Load 34(m) 258 54: 50 FConvert 53 259 Store 52(m2) 54 260 59: 55(ptr) AccessChain 34(m) 58 261 60: 16(float) Load 59 262 Store 56(x) 60 263 62: 16(float) Load 56(x) 264 63: 55(ptr) AccessChain 34(m) 61 265 Store 63 62 266 73: 72(ptr) AccessChain 70(block) 58 31 267 77: 32 CooperativeMatrixLoadNV 73 74 76 MakePointerVisibleKHR NonPrivatePointerKHR 71 268 Store 64(tempArg) 77 269 78: 32 Load 64(tempArg) 270 Store 34(m) 78 271 79: 32 Load 34(m) 272 80: 72(ptr) AccessChain 70(block) 58 31 273 CooperativeMatrixStoreNV 80 79 74 76 MakePointerAvailableKHR NonPrivatePointerKHR 71 274 93: 92(ptr) AccessChain 91(block16) 58 31 275 94: 50 CooperativeMatrixLoadNV 93 74 76 MakePointerVisibleKHR NonPrivatePointerKHR 71 276 Store 81(tempArg) 94 277 95: 50 Load 81(tempArg) 278 Store 52(m2) 95 279 96: 50 Load 52(m2) 280 97: 92(ptr) AccessChain 91(block16) 58 31 281 CooperativeMatrixStoreNV 97 96 74 76 MakePointerAvailableKHR NonPrivatePointerKHR 71 282 101: 100(ptr) AccessChain 91(block16) 99 283 102: 85(ptr) Load 101 MakePointerVisibleKHR NonPrivatePointerKHR 71 284 104: 103(ptr) AccessChain 102 58 31 285 105: 32 CooperativeMatrixLoadNV 104 74 76 Aligned MakePointerVisibleKHR NonPrivatePointerKHR 16 71 286 Store 98(tempArg) 105 287 106: 32 Load 98(tempArg) 288 Store 34(m) 106 289 107: 32 Load 34(m) 290 108: 100(ptr) AccessChain 91(block16) 99 291 109: 85(ptr) Load 108 MakePointerVisibleKHR NonPrivatePointerKHR 71 292 110: 103(ptr) AccessChain 109 58 31 293 CooperativeMatrixStoreNV 110 107 74 76 Aligned MakePointerAvailableKHR NonPrivatePointerKHR 16 71 294 113: 50 Load 112(A) 295 115: 10 Load 114(B) 296 117: 32 Load 116(C) 297 118: 32 CooperativeMatrixMulAddNV 113 115 117 298 Store 111(D) 118 299 Store 120(l) 122 300 Store 128(F) 130 301 136: 55(ptr) AccessChain 133(a) 134 61 302 Store 136 135 303 Store 137(md1) 35 304 138: 32 Load 34(m) 305 139: 32 Load 34(m) 306 140: 32 FAdd 139 138 307 Store 34(m) 140 308 142: 16(float) CompositeExtract 140 1234 309 143: 16(float) Load 137(md1) 310 144: 16(float) FAdd 143 142 311 Store 137(md1) 144 312 150: 149(ptr) AccessChain 148(mC2) 99 313 151: 145 Load 150 314 152: 149(ptr) AccessChain 148(mC2) 58 315 Store 152 151 316 154: 72(ptr) AccessChain 70(block) 61 31 317 155: 32 CooperativeMatrixLoadNV 154 74 76 MakePointerVisibleKHR NonPrivatePointerKHR 71 318 Store 153(tempArg) 155 319 156: 32 Load 153(tempArg) 320 Store 34(m) 156 321 157: 32 Load 34(m) 322 158: 72(ptr) AccessChain 70(block) 61 31 323 CooperativeMatrixStoreNV 158 157 74 76 MakePointerAvailableKHR NonPrivatePointerKHR 71 324 160: 92(ptr) AccessChain 91(block16) 61 31 325 161: 50 CooperativeMatrixLoadNV 160 74 76 MakePointerVisibleKHR NonPrivatePointerKHR 71 326 Store 159(tempArg) 161 327 162: 50 Load 159(tempArg) 328 Store 52(m2) 162 329 163: 50 Load 52(m2) 330 164: 92(ptr) AccessChain 91(block16) 61 31 331 CooperativeMatrixStoreNV 164 163 74 76 MakePointerAvailableKHR NonPrivatePointerKHR 71 332 167: 10 Load 165(p1) 333 Store 166(param) 167 334 168: 10 FunctionCall 14(f16(f161;) 166(param) 335 Store 165(p1) 168 336 171: 17 Load 169(p2) 337 Store 170(param) 171 338 172: 17 FunctionCall 21(f32(f1;) 170(param) 339 Store 169(p2) 172 340 Store 165(p1) 173 341 Store 169(p2) 174 342 175: 10 Load 165(p1) 343 176: 10 Load 165(p1) 344 177: 10 FDiv 176 175 345 Store 165(p1) 177 346 179: 10 Load 165(p1) 347 180: 10 MatrixTimesScalar 179 178 348 Store 165(p1) 180 349 182: 17 Load 169(p2) 350 183: 17 MatrixTimesScalar 182 181 351 Store 169(p2) 183 352 192: 191(ptr) AccessChain 189(shmatrix) 83 353 193: 50 CooperativeMatrixLoadNV 192 190 76 MakePointerVisibleKHR NonPrivatePointerKHR 190 354 Store 184(tempArg) 193 355 195: 50 Load 184(tempArg) 356 Store 194(ms) 195 357 196: 50 Load 194(ms) 358 197: 191(ptr) AccessChain 189(shmatrix) 83 359 CooperativeMatrixStoreNV 197 196 190 76 MakePointerAvailableKHR NonPrivatePointerKHR 190 360 Return 361 FunctionEnd 362 14(f16(f161;): 10 Function None 12 363 13(m): 11(ptr) FunctionParameter 364 15: Label 365 23: 10 Load 13(m) 366 24: 10 FNegate 23 367 ReturnValue 24 368 FunctionEnd 369 21(f32(f1;): 17 Function None 19 370 20(m): 18(ptr) FunctionParameter 371 22: Label 372 27: 17 Load 20(m) 373 28: 17 FNegate 27 374 ReturnValue 28 375 FunctionEnd 376