mirror of https://github.com/xemu-project/xemu.git
493 lines
24 KiB
Plaintext
493 lines
24 KiB
Plaintext
spv.bfloat16.comp
|
|
// Module Version 10300
|
|
// Generated by (magic number): 8000b
|
|
// Id's are bound by 325
|
|
|
|
Capability Shader
|
|
Capability Float16
|
|
Capability Float64
|
|
Capability Int64
|
|
Capability Int16
|
|
Capability Int8
|
|
Capability CapabilityBFloat16TypeKHR
|
|
Capability CapabilityBFloat16DotProductKHR
|
|
Capability CapabilityBFloat16CooperativeMatrixKHR
|
|
Capability VulkanMemoryModelKHR
|
|
Capability CooperativeMatrixKHR
|
|
Extension "SPV_KHR_bfloat16"
|
|
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 1 1 1
|
|
Source GLSL 450
|
|
SourceExtension "GL_EXT_bfloat16"
|
|
SourceExtension "GL_EXT_scalar_block_layout"
|
|
SourceExtension "GL_EXT_shader_explicit_arithmetic_types"
|
|
SourceExtension "GL_KHR_cooperative_matrix"
|
|
SourceExtension "GL_KHR_memory_scope_semantics"
|
|
Name 4 "main"
|
|
Name 10 "funcbf16(bf161;"
|
|
Name 9 "x"
|
|
Name 16 "funcf32(f1;"
|
|
Name 15 "x"
|
|
Name 22 "funcf64(d1;"
|
|
Name 21 "x"
|
|
Name 34 "func2(vbf164[2];i1;"
|
|
Name 32 "v"
|
|
Name 33 "i"
|
|
Name 47 "f"
|
|
Name 49 "b"
|
|
Name 55 "b2"
|
|
Name 61 "u8"
|
|
Name 65 "u16"
|
|
Name 68 "u32"
|
|
Name 72 "u64"
|
|
Name 76 "i8"
|
|
Name 80 "i16"
|
|
Name 82 "i32"
|
|
Name 86 "i64"
|
|
Name 88 "bf16"
|
|
Name 92 "f16"
|
|
Name 94 "f32"
|
|
Name 96 "f64"
|
|
Name 149 "B"
|
|
MemberName 149(B) 0 "b3"
|
|
MemberName 149(B) 1 "b2"
|
|
MemberName 149(B) 2 "b1"
|
|
Name 151 "buf"
|
|
Name 161 "b3"
|
|
Name 174 "cmA"
|
|
Name 179 "cmAf"
|
|
Name 182 "param"
|
|
Name 187 "param"
|
|
Name 191 "param"
|
|
Name 193 "i16_1"
|
|
Name 198 "i16_2"
|
|
Name 203 "i16_3"
|
|
Name 212 "i16_4"
|
|
Name 220 "u16_1"
|
|
Name 225 "u16_2"
|
|
Name 230 "u16_3"
|
|
Name 239 "u16_4"
|
|
Name 247 "b16_1"
|
|
Name 250 "b16_2"
|
|
Name 253 "b16_3"
|
|
Name 257 "b16_4"
|
|
Name 268 "b"
|
|
Name 289 "S"
|
|
MemberName 289(S) 0 "b"
|
|
Name 291 "s"
|
|
Name 317 "bsc10"
|
|
Name 324 "bfs"
|
|
Decorate 149(B) Block
|
|
MemberDecorate 149(B) 0 Offset 0
|
|
MemberDecorate 149(B) 1 Offset 6
|
|
MemberDecorate 149(B) 2 Offset 10
|
|
Decorate 151(buf) Binding 0
|
|
Decorate 151(buf) DescriptorSet 0
|
|
Decorate 313 BuiltIn WorkgroupSize
|
|
Decorate 317(bsc10) SpecId 1
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeFloat 16 0
|
|
7: TypePointer Function 6(bfloat16_t)
|
|
8: TypeFunction 6(bfloat16_t) 7(ptr)
|
|
12: TypeFloat 32
|
|
13: TypePointer Function 12(float)
|
|
14: TypeFunction 6(bfloat16_t) 13(ptr)
|
|
18: TypeFloat 64
|
|
19: TypePointer Function 18(float64_t)
|
|
20: TypeFunction 6(bfloat16_t) 19(ptr)
|
|
24: TypeVector 6(bfloat16_t) 4
|
|
25: TypeInt 32 0
|
|
26: 25(int) Constant 2
|
|
27: TypeArray 24(bf16vec4) 26
|
|
28: TypePointer Function 27
|
|
29: TypeInt 32 1
|
|
30: TypePointer Function 29(int)
|
|
31: TypeFunction 6(bfloat16_t) 28(ptr) 30(ptr)
|
|
48: 12(float) Constant 1073741824
|
|
50:6(bfloat16_t) Constant 16256
|
|
53: TypeVector 6(bfloat16_t) 2
|
|
54: TypePointer Function 53(bf16vec2)
|
|
59: TypeInt 8 0
|
|
60: TypePointer Function 59(int8_t)
|
|
62: 59(int8_t) Constant 5
|
|
63: TypeInt 16 0
|
|
64: TypePointer Function 63(int16_t)
|
|
66: 63(int16_t) Constant 5
|
|
67: TypePointer Function 25(int)
|
|
69: 25(int) Constant 5
|
|
70: TypeInt 64 0
|
|
71: TypePointer Function 70(int64_t)
|
|
73: 70(int64_t) Constant 5 0
|
|
74: TypeInt 8 1
|
|
75: TypePointer Function 74(int8_t)
|
|
77: 74(int8_t) Constant 6
|
|
78: TypeInt 16 1
|
|
79: TypePointer Function 78(int16_t)
|
|
81: 78(int16_t) Constant 6
|
|
83: 29(int) Constant 6
|
|
84: TypeInt 64 1
|
|
85: TypePointer Function 84(int64_t)
|
|
87: 84(int64_t) Constant 6 0
|
|
89:6(bfloat16_t) Constant 16608
|
|
90: TypeFloat 16
|
|
91: TypePointer Function 90(float16_t)
|
|
93:90(float16_t) Constant 18176
|
|
95: 12(float) Constant 1088421888
|
|
97:18(float64_t) Constant 0 1075576832
|
|
148: TypeVector 6(bfloat16_t) 3
|
|
149(B): TypeStruct 148(bf16vec3) 53(bf16vec2) 6(bfloat16_t)
|
|
150: TypePointer StorageBuffer 149(B)
|
|
151(buf): 150(ptr) Variable StorageBuffer
|
|
152: 29(int) Constant 2
|
|
153: TypePointer StorageBuffer 6(bfloat16_t)
|
|
156: 29(int) Constant 1
|
|
157: TypePointer StorageBuffer 53(bf16vec2)
|
|
160: TypePointer Function 148(bf16vec3)
|
|
162: 29(int) Constant 0
|
|
163: TypePointer StorageBuffer 148(bf16vec3)
|
|
169: 25(int) Constant 3
|
|
170: 25(int) Constant 16
|
|
171: 25(int) Constant 0
|
|
172: TypeCooperativeMatrixKHR 6(bfloat16_t) 169 170 170 171
|
|
173: TypePointer Function 172
|
|
175:6(bfloat16_t) Constant 16448
|
|
176: 172 ConstantComposite 175
|
|
177: TypeCooperativeMatrixKHR 12(float) 169 170 170 171
|
|
178: TypePointer Function 177
|
|
196: TypeVector 78(int16_t) 2
|
|
197: TypePointer Function 196(i16vec2)
|
|
201: TypeVector 78(int16_t) 3
|
|
202: TypePointer Function 201(i16vec3)
|
|
210: TypeVector 78(int16_t) 4
|
|
211: TypePointer Function 210(i16vec4)
|
|
223: TypeVector 63(int16_t) 2
|
|
224: TypePointer Function 223(i16vec2)
|
|
228: TypeVector 63(int16_t) 3
|
|
229: TypePointer Function 228(i16vec3)
|
|
237: TypeVector 63(int16_t) 4
|
|
238: TypePointer Function 237(i16vec4)
|
|
256: TypePointer Function 24(bf16vec4)
|
|
281: 25(int) Constant 1
|
|
289(S): TypeStruct 6(bfloat16_t)
|
|
290: TypePointer Function 289(S)
|
|
295: TypeBool
|
|
298:6(bfloat16_t) Constant 16384
|
|
312: TypeVector 25(int) 3
|
|
313: 312(ivec3) ConstantComposite 281 281 281
|
|
314:6(bfloat16_t) Constant 16672
|
|
315:6(bfloat16_t) Constant 16800
|
|
316:53(bf16vec2) ConstantComposite 315 315
|
|
317(bsc10):6(bfloat16_t) SpecConstant 16672
|
|
318: 289(S) ConstantComposite 314
|
|
319: TypeArray 6(bfloat16_t) 26
|
|
320: 319 ConstantComposite 314 314
|
|
321: 25(int) Constant 10
|
|
322: TypeArray 6(bfloat16_t) 321
|
|
323: TypePointer Workgroup 322
|
|
324(bfs): 323(ptr) Variable Workgroup
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
47(f): 13(ptr) Variable Function
|
|
49(b): 7(ptr) Variable Function
|
|
55(b2): 54(ptr) Variable Function
|
|
61(u8): 60(ptr) Variable Function
|
|
65(u16): 64(ptr) Variable Function
|
|
68(u32): 67(ptr) Variable Function
|
|
72(u64): 71(ptr) Variable Function
|
|
76(i8): 75(ptr) Variable Function
|
|
80(i16): 79(ptr) Variable Function
|
|
82(i32): 30(ptr) Variable Function
|
|
86(i64): 85(ptr) Variable Function
|
|
88(bf16): 7(ptr) Variable Function
|
|
92(f16): 91(ptr) Variable Function
|
|
94(f32): 13(ptr) Variable Function
|
|
96(f64): 19(ptr) Variable Function
|
|
161(b3): 160(ptr) Variable Function
|
|
174(cmA): 173(ptr) Variable Function
|
|
179(cmAf): 178(ptr) Variable Function
|
|
182(param): 7(ptr) Variable Function
|
|
187(param): 13(ptr) Variable Function
|
|
191(param): 19(ptr) Variable Function
|
|
193(i16_1): 79(ptr) Variable Function
|
|
198(i16_2): 197(ptr) Variable Function
|
|
203(i16_3): 202(ptr) Variable Function
|
|
212(i16_4): 211(ptr) Variable Function
|
|
220(u16_1): 64(ptr) Variable Function
|
|
225(u16_2): 224(ptr) Variable Function
|
|
230(u16_3): 229(ptr) Variable Function
|
|
239(u16_4): 238(ptr) Variable Function
|
|
247(b16_1): 7(ptr) Variable Function
|
|
250(b16_2): 54(ptr) Variable Function
|
|
253(b16_3): 160(ptr) Variable Function
|
|
257(b16_4): 256(ptr) Variable Function
|
|
Store 47(f) 48
|
|
Store 49(b) 50
|
|
51: 12(float) Load 47(f)
|
|
52:6(bfloat16_t) FConvert 51
|
|
56: 12(float) Load 47(f)
|
|
57:6(bfloat16_t) FConvert 56
|
|
58:53(bf16vec2) CompositeConstruct 57 57
|
|
Store 55(b2) 58
|
|
Store 61(u8) 62
|
|
Store 65(u16) 66
|
|
Store 68(u32) 69
|
|
Store 72(u64) 73
|
|
Store 76(i8) 77
|
|
Store 80(i16) 81
|
|
Store 82(i32) 83
|
|
Store 86(i64) 87
|
|
Store 88(bf16) 89
|
|
Store 92(f16) 93
|
|
Store 94(f32) 95
|
|
Store 96(f64) 97
|
|
98: 59(int8_t) Load 61(u8)
|
|
99:6(bfloat16_t) ConvertUToF 98
|
|
Store 49(b) 99
|
|
100: 63(int16_t) Load 65(u16)
|
|
101:6(bfloat16_t) ConvertUToF 100
|
|
Store 49(b) 101
|
|
102: 25(int) Load 68(u32)
|
|
103:6(bfloat16_t) ConvertUToF 102
|
|
Store 49(b) 103
|
|
104: 70(int64_t) Load 72(u64)
|
|
105:6(bfloat16_t) ConvertUToF 104
|
|
Store 49(b) 105
|
|
106: 74(int8_t) Load 76(i8)
|
|
107:6(bfloat16_t) ConvertSToF 106
|
|
Store 49(b) 107
|
|
108: 78(int16_t) Load 80(i16)
|
|
109:6(bfloat16_t) ConvertSToF 108
|
|
Store 49(b) 109
|
|
110: 29(int) Load 82(i32)
|
|
111:6(bfloat16_t) ConvertSToF 110
|
|
Store 49(b) 111
|
|
112: 84(int64_t) Load 86(i64)
|
|
113:6(bfloat16_t) ConvertSToF 112
|
|
Store 49(b) 113
|
|
114:6(bfloat16_t) Load 88(bf16)
|
|
Store 49(b) 114
|
|
115:90(float16_t) Load 92(f16)
|
|
116:6(bfloat16_t) FConvert 115
|
|
Store 49(b) 116
|
|
117: 12(float) Load 94(f32)
|
|
118:6(bfloat16_t) FConvert 117
|
|
Store 49(b) 118
|
|
119:18(float64_t) Load 96(f64)
|
|
120:6(bfloat16_t) FConvert 119
|
|
Store 49(b) 120
|
|
121:6(bfloat16_t) Load 49(b)
|
|
122: 59(int8_t) ConvertFToU 121
|
|
Store 61(u8) 122
|
|
123:6(bfloat16_t) Load 49(b)
|
|
124: 63(int16_t) ConvertFToU 123
|
|
Store 65(u16) 124
|
|
125:6(bfloat16_t) Load 49(b)
|
|
126: 25(int) ConvertFToU 125
|
|
Store 68(u32) 126
|
|
127:6(bfloat16_t) Load 49(b)
|
|
128: 70(int64_t) ConvertFToU 127
|
|
Store 72(u64) 128
|
|
129:6(bfloat16_t) Load 49(b)
|
|
130: 74(int8_t) ConvertFToS 129
|
|
Store 76(i8) 130
|
|
131:6(bfloat16_t) Load 49(b)
|
|
132: 78(int16_t) ConvertFToS 131
|
|
Store 80(i16) 132
|
|
133:6(bfloat16_t) Load 49(b)
|
|
134: 29(int) ConvertFToS 133
|
|
Store 82(i32) 134
|
|
135:6(bfloat16_t) Load 49(b)
|
|
136: 84(int64_t) ConvertFToS 135
|
|
Store 86(i64) 136
|
|
137:6(bfloat16_t) Load 49(b)
|
|
Store 88(bf16) 137
|
|
138:6(bfloat16_t) Load 49(b)
|
|
139:90(float16_t) FConvert 138
|
|
Store 92(f16) 139
|
|
140:6(bfloat16_t) Load 49(b)
|
|
141: 12(float) FConvert 140
|
|
Store 94(f32) 141
|
|
142:6(bfloat16_t) Load 49(b)
|
|
143:18(float64_t) FConvert 142
|
|
Store 96(f64) 143
|
|
144:6(bfloat16_t) Load 49(b)
|
|
145: 12(float) FConvert 144
|
|
Store 94(f32) 145
|
|
146:6(bfloat16_t) Load 49(b)
|
|
147:18(float64_t) FConvert 146
|
|
Store 96(f64) 147
|
|
154: 153(ptr) AccessChain 151(buf) 152
|
|
155:6(bfloat16_t) Load 154
|
|
Store 49(b) 155
|
|
158: 157(ptr) AccessChain 151(buf) 156
|
|
159:53(bf16vec2) Load 158
|
|
Store 55(b2) 159
|
|
164: 163(ptr) AccessChain 151(buf) 162
|
|
165:148(bf16vec3) Load 164
|
|
Store 161(b3) 165
|
|
166:53(bf16vec2) Load 55(b2)
|
|
167:53(bf16vec2) Load 55(b2)
|
|
168:6(bfloat16_t) Dot 166 167
|
|
Store 174(cmA) 176
|
|
180: 172 Load 174(cmA)
|
|
181: 177 FConvert 180
|
|
Store 179(cmAf) 181
|
|
183:6(bfloat16_t) Load 49(b)
|
|
Store 182(param) 183
|
|
184:6(bfloat16_t) FunctionCall 10(funcbf16(bf161;) 182(param)
|
|
185:6(bfloat16_t) Load 49(b)
|
|
186: 12(float) FConvert 185
|
|
Store 187(param) 186
|
|
188:6(bfloat16_t) FunctionCall 16(funcf32(f1;) 187(param)
|
|
189:6(bfloat16_t) Load 49(b)
|
|
190:18(float64_t) FConvert 189
|
|
Store 191(param) 190
|
|
192:6(bfloat16_t) FunctionCall 22(funcf64(d1;) 191(param)
|
|
194:6(bfloat16_t) Load 49(b)
|
|
195: 78(int16_t) Bitcast 194
|
|
Store 193(i16_1) 195
|
|
199:53(bf16vec2) Load 55(b2)
|
|
200:196(i16vec2) Bitcast 199
|
|
Store 198(i16_2) 200
|
|
204:53(bf16vec2) Load 55(b2)
|
|
205:6(bfloat16_t) Load 49(b)
|
|
206:6(bfloat16_t) CompositeExtract 204 0
|
|
207:6(bfloat16_t) CompositeExtract 204 1
|
|
208:148(bf16vec3) CompositeConstruct 206 207 205
|
|
209:201(i16vec3) Bitcast 208
|
|
Store 203(i16_3) 209
|
|
213:53(bf16vec2) Load 55(b2)
|
|
214:6(bfloat16_t) CompositeExtract 213 0
|
|
215:6(bfloat16_t) CompositeExtract 213 1
|
|
216:6(bfloat16_t) CompositeExtract 213 0
|
|
217:6(bfloat16_t) CompositeExtract 213 1
|
|
218:24(bf16vec4) CompositeConstruct 214 215 216 217
|
|
219:210(i16vec4) Bitcast 218
|
|
Store 212(i16_4) 219
|
|
221:6(bfloat16_t) Load 49(b)
|
|
222: 63(int16_t) Bitcast 221
|
|
Store 220(u16_1) 222
|
|
226:53(bf16vec2) Load 55(b2)
|
|
227:223(i16vec2) Bitcast 226
|
|
Store 225(u16_2) 227
|
|
231:53(bf16vec2) Load 55(b2)
|
|
232:6(bfloat16_t) Load 49(b)
|
|
233:6(bfloat16_t) CompositeExtract 231 0
|
|
234:6(bfloat16_t) CompositeExtract 231 1
|
|
235:148(bf16vec3) CompositeConstruct 233 234 232
|
|
236:228(i16vec3) Bitcast 235
|
|
Store 230(u16_3) 236
|
|
240:53(bf16vec2) Load 55(b2)
|
|
241:6(bfloat16_t) CompositeExtract 240 0
|
|
242:6(bfloat16_t) CompositeExtract 240 1
|
|
243:6(bfloat16_t) CompositeExtract 240 0
|
|
244:6(bfloat16_t) CompositeExtract 240 1
|
|
245:24(bf16vec4) CompositeConstruct 241 242 243 244
|
|
246:237(i16vec4) Bitcast 245
|
|
Store 239(u16_4) 246
|
|
248: 78(int16_t) Load 193(i16_1)
|
|
249:6(bfloat16_t) Bitcast 248
|
|
Store 247(b16_1) 249
|
|
251:196(i16vec2) Load 198(i16_2)
|
|
252:53(bf16vec2) Bitcast 251
|
|
Store 250(b16_2) 252
|
|
254:201(i16vec3) Load 203(i16_3)
|
|
255:148(bf16vec3) Bitcast 254
|
|
Store 253(b16_3) 255
|
|
258:210(i16vec4) Load 212(i16_4)
|
|
259:24(bf16vec4) Bitcast 258
|
|
Store 257(b16_4) 259
|
|
260: 63(int16_t) Load 220(u16_1)
|
|
261:6(bfloat16_t) Bitcast 260
|
|
Store 247(b16_1) 261
|
|
262:223(i16vec2) Load 225(u16_2)
|
|
263:53(bf16vec2) Bitcast 262
|
|
Store 250(b16_2) 263
|
|
264:228(i16vec3) Load 230(u16_3)
|
|
265:148(bf16vec3) Bitcast 264
|
|
Store 253(b16_3) 265
|
|
266:237(i16vec4) Load 239(u16_4)
|
|
267:24(bf16vec4) Bitcast 266
|
|
Store 257(b16_4) 267
|
|
Return
|
|
FunctionEnd
|
|
10(funcbf16(bf161;):6(bfloat16_t) Function None 8
|
|
9(x): 7(ptr) FunctionParameter
|
|
11: Label
|
|
36:6(bfloat16_t) Load 9(x)
|
|
ReturnValue 36
|
|
FunctionEnd
|
|
16(funcf32(f1;):6(bfloat16_t) Function None 14
|
|
15(x): 13(ptr) FunctionParameter
|
|
17: Label
|
|
39: 12(float) Load 15(x)
|
|
40:6(bfloat16_t) FConvert 39
|
|
ReturnValue 40
|
|
FunctionEnd
|
|
22(funcf64(d1;):6(bfloat16_t) Function None 20
|
|
21(x): 19(ptr) FunctionParameter
|
|
23: Label
|
|
43:18(float64_t) Load 21(x)
|
|
44:6(bfloat16_t) FConvert 43
|
|
ReturnValue 44
|
|
FunctionEnd
|
|
34(func2(vbf164[2];i1;):6(bfloat16_t) Function None 31
|
|
32(v): 28(ptr) FunctionParameter
|
|
33(i): 30(ptr) FunctionParameter
|
|
35: Label
|
|
268(b): 7(ptr) Variable Function
|
|
291(s): 290(ptr) Variable Function
|
|
269: 256(ptr) AccessChain 32(v) 162
|
|
270:24(bf16vec4) Load 269
|
|
271:6(bfloat16_t) CompositeExtract 270 0
|
|
272:6(bfloat16_t) CompositeExtract 270 1
|
|
273:53(bf16vec2) CompositeConstruct 271 272
|
|
274: 29(int) Load 33(i)
|
|
275:6(bfloat16_t) VectorExtractDynamic 273 274
|
|
Store 268(b) 275
|
|
276: 256(ptr) AccessChain 32(v) 156
|
|
277:24(bf16vec4) Load 276
|
|
278:6(bfloat16_t) CompositeExtract 277 0
|
|
279:6(bfloat16_t) CompositeExtract 277 1
|
|
280:53(bf16vec2) CompositeConstruct 278 279
|
|
282:6(bfloat16_t) CompositeExtract 280 1
|
|
Store 268(b) 282
|
|
283: 29(int) Load 33(i)
|
|
284: 29(int) Load 33(i)
|
|
285: 29(int) Load 33(i)
|
|
286: 7(ptr) AccessChain 32(v) 284 285
|
|
287:6(bfloat16_t) Load 286
|
|
288: 7(ptr) AccessChain 32(v) 283 26
|
|
Store 288 287
|
|
292:6(bfloat16_t) Load 268(b)
|
|
293: 7(ptr) AccessChain 291(s) 162
|
|
Store 293 292
|
|
294: 29(int) Load 33(i)
|
|
296: 295(bool) INotEqual 294 162
|
|
297:6(bfloat16_t) Load 268(b)
|
|
299:6(bfloat16_t) Select 296 297 298
|
|
Store 268(b) 299
|
|
300: 29(int) Load 33(i)
|
|
301: 295(bool) IEqual 300 152
|
|
SelectionMerge 303 None
|
|
BranchConditional 301 302 306
|
|
302: Label
|
|
304: 7(ptr) AccessChain 32(v) 162 171
|
|
305:6(bfloat16_t) Load 304
|
|
Store 268(b) 305
|
|
Branch 303
|
|
306: Label
|
|
307: 7(ptr) AccessChain 32(v) 156 281
|
|
308:6(bfloat16_t) Load 307
|
|
Store 268(b) 308
|
|
Branch 303
|
|
303: Label
|
|
309:6(bfloat16_t) Load 268(b)
|
|
ReturnValue 309
|
|
FunctionEnd
|