spv.qcom.multiple_wait_queues.comp // Module Version 10300 // Generated by (magic number): 8000b // Id's are bound by 115 Capability Shader Capability VulkanMemoryModelKHR Capability CooperativeMatrixKHR Extension "SPV_KHR_cooperative_matrix" Extension "SPV_KHR_vulkan_memory_model" 1: ExtInstImport "GLSL.std.450" MemoryModel Logical VulkanKHR EntryPoint GLCompute 4 "main" ExecutionMode 4 LocalSize 64 2 2 Source GLSL 450 SourceExtension "GL_KHR_cooperative_matrix" SourceExtension "GL_KHR_memory_scope_semantics" SourceExtension "GL_QCOM_multiple_wait_queues" Name 4 "main" Name 11 "coop_matmul(u1;u1;" Name 9 "row" Name 10 "col" Name 13 "step" Name 21 "TOTAL_K" Name 24 "subMatrixAStart" Name 30 "subMatrixBStart" Name 37 "TILE_M" Name 41 "matA" Name 43 "InputA" MemberName 43(InputA) 0 "x" Name 45 "inputA" Name 52 "TILE_N" Name 56 "matB" Name 58 "InputB" MemberName 58(InputB) 0 "x" Name 60 "inputB" Name 68 "matC" Name 73 "TILE_K" Name 83 "subMatrixAStart" Name 88 "subMatrixBStart" Name 105 "param" Name 106 "param" Name 109 "InputC" MemberName 109(InputC) 0 "x" Name 111 "inputC" Decorate 21(TOTAL_K) SpecId 0 Decorate 37(TILE_M) SpecId 3 Decorate 42 ArrayStride 4 Decorate 43(InputA) Block MemberDecorate 43(InputA) 0 NonWritable MemberDecorate 43(InputA) 0 Offset 0 Decorate 45(inputA) NonWritable Decorate 45(inputA) Binding 0 Decorate 45(inputA) DescriptorSet 0 Decorate 52(TILE_N) SpecId 4 Decorate 57 ArrayStride 4 Decorate 58(InputB) Block MemberDecorate 58(InputB) 0 NonWritable MemberDecorate 58(InputB) 0 Offset 0 Decorate 60(inputB) NonWritable Decorate 60(inputB) Binding 1 Decorate 60(inputB) DescriptorSet 0 Decorate 73(TILE_K) SpecId 7 Decorate 108 ArrayStride 4 Decorate 109(InputC) Block MemberDecorate 109(InputC) 0 NonWritable MemberDecorate 109(InputC) 0 Offset 0 Decorate 111(inputC) NonWritable Decorate 111(inputC) Binding 2 Decorate 111(inputC) DescriptorSet 0 Decorate 114 BuiltIn WorkgroupSize 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 7: TypePointer Function 6(int) 8: TypeFunction 2 7(ptr) 7(ptr) 14: 6(int) Constant 0 21(TOTAL_K): 6(int) SpecConstant 1 22: TypeBool 26: 6(int) Constant 16 35: TypeFloat 32 36: 6(int) Constant 3 37(TILE_M): 6(int) SpecConstant 1 38: 6(int) Constant 8 39: TypeCooperativeMatrixKHR 35(float) 36 37(TILE_M) 38 14 40: TypePointer Function 39 42: TypeRuntimeArray 35(float) 43(InputA): TypeStruct 42 44: TypePointer StorageBuffer 43(InputA) 45(inputA): 44(ptr) Variable StorageBuffer 46: TypeInt 32 1 47: 46(int) Constant 0 49: TypePointer StorageBuffer 35(float) 52(TILE_N): 6(int) SpecConstant 1 53: 6(int) Constant 1 54: TypeCooperativeMatrixKHR 35(float) 36 38 52(TILE_N) 53 55: TypePointer Function 54 57: TypeRuntimeArray 35(float) 58(InputB): TypeStruct 57 59: TypePointer StorageBuffer 58(InputB) 60(inputB): 59(ptr) Variable StorageBuffer 63: 46(int) Constant 1 65: 6(int) Constant 2 66: TypeCooperativeMatrixKHR 35(float) 36 37(TILE_M) 52(TILE_N) 65 67: TypePointer Function 66 73(TILE_K): 6(int) SpecConstant 1 108: TypeRuntimeArray 35(float) 109(InputC): TypeStruct 108 110: TypePointer StorageBuffer 109(InputC) 111(inputC): 110(ptr) Variable StorageBuffer 112: TypeVector 6(int) 3 113: 6(int) Constant 64 114: 112(ivec3) ConstantComposite 113 65 65 4(main): 2 Function None 3 5: Label 105(param): 7(ptr) Variable Function 106(param): 7(ptr) Variable Function Store 105(param) 14 Store 106(param) 14 107: 2 FunctionCall 11(coop_matmul(u1;u1;) 105(param) 106(param) Return FunctionEnd 11(coop_matmul(u1;u1;): 2 Function None 8 9(row): 7(ptr) FunctionParameter 10(col): 7(ptr) FunctionParameter 12: Label 13(step): 7(ptr) Variable Function 24(subMatrixAStart): 7(ptr) Variable Function 30(subMatrixBStart): 7(ptr) Variable Function 41(matA): 40(ptr) Variable Function 56(matB): 55(ptr) Variable Function 68(matC): 67(ptr) Variable Function 83(subMatrixAStart): 7(ptr) Variable Function 88(subMatrixBStart): 7(ptr) Variable Function Store 13(step) 14 Branch 15 15: Label LoopMerge 17 18 0 Branch 19 19: Label 20: 6(int) Load 13(step) 23: 22(bool) ULessThan 20 21(TOTAL_K) BranchConditional 23 16 17 16: Label 25: 6(int) Load 9(row) 27: 6(int) IMul 25 26 28: 6(int) Load 13(step) 29: 6(int) IAdd 27 28 Store 24(subMatrixAStart) 29 31: 6(int) Load 10(col) 32: 6(int) IMul 31 26 33: 6(int) Load 13(step) 34: 6(int) IAdd 32 33 Store 30(subMatrixBStart) 34 48: 6(int) Load 24(subMatrixAStart) 50: 49(ptr) AccessChain 45(inputA) 47 48 51: 39 CooperativeMatrixLoadKHR 50 47 26 None Store 41(matA) 51 61: 6(int) Load 30(subMatrixBStart) 62: 49(ptr) AccessChain 60(inputB) 47 61 64: 54 CooperativeMatrixLoadKHR 62 63 26 None Store 56(matB) 64 69: 39 Load 41(matA) 70: 54 Load 56(matB) 71: 66 Load 68(matC) 72: 66 CooperativeMatrixMulAddKHR 69 70 71 Store 68(matC) 72 Branch 18 18: Label 74: 6(int) Load 13(step) 75: 6(int) IAdd 74 73(TILE_K) Store 13(step) 75 Branch 15 17: Label Store 13(step) 14 Branch 76 76: Label LoopMerge 78 79 2 Branch 80 80: Label 81: 6(int) Load 13(step) 82: 22(bool) ULessThan 81 21(TOTAL_K) BranchConditional 82 77 78 77: Label 84: 6(int) Load 9(row) 85: 6(int) IMul 84 26 86: 6(int) Load 13(step) 87: 6(int) IAdd 85 86 Store 83(subMatrixAStart) 87 89: 6(int) Load 10(col) 90: 6(int) IMul 89 26 91: 6(int) Load 13(step) 92: 6(int) IAdd 90 91 Store 88(subMatrixBStart) 92 93: 6(int) Load 83(subMatrixAStart) 94: 49(ptr) AccessChain 45(inputA) 47 93 95: 39 CooperativeMatrixLoadKHR 94 47 26 None Store 41(matA) 95 96: 6(int) Load 88(subMatrixBStart) 97: 49(ptr) AccessChain 60(inputB) 47 96 98: 54 CooperativeMatrixLoadKHR 97 63 26 None Store 56(matB) 98 99: 39 Load 41(matA) 100: 54 Load 56(matB) 101: 66 Load 68(matC) 102: 66 CooperativeMatrixMulAddKHR 99 100 101 Store 68(matC) 102 Branch 79 79: Label 103: 6(int) Load 13(step) 104: 6(int) IAdd 103 73(TILE_K) Store 13(step) 104 Branch 76 78: Label Return FunctionEnd