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