1 | /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ |
2 | |* *| |
3 | |* Machine Code Emitter *| |
4 | |* *| |
5 | |* Automatically generated file, do not edit! *| |
6 | |* *| |
7 | \*===----------------------------------------------------------------------===*/ |
8 | |
9 | uint64_t SPIRVMCCodeEmitter::getBinaryCodeForInstr(const MCInst &MI, |
10 | SmallVectorImpl<MCFixup> &Fixups, |
11 | const MCSubtargetInfo &STI) const { |
12 | static const uint64_t InstBits[] = { |
13 | UINT64_C(0), |
14 | UINT64_C(0), |
15 | UINT64_C(0), |
16 | UINT64_C(0), |
17 | UINT64_C(0), |
18 | UINT64_C(0), |
19 | UINT64_C(0), |
20 | UINT64_C(0), |
21 | UINT64_C(0), |
22 | UINT64_C(0), |
23 | UINT64_C(0), |
24 | UINT64_C(0), |
25 | UINT64_C(0), |
26 | UINT64_C(0), |
27 | UINT64_C(0), |
28 | UINT64_C(0), |
29 | UINT64_C(0), |
30 | UINT64_C(0), |
31 | UINT64_C(0), |
32 | UINT64_C(0), |
33 | UINT64_C(0), |
34 | UINT64_C(0), |
35 | UINT64_C(0), |
36 | UINT64_C(0), |
37 | UINT64_C(0), |
38 | UINT64_C(0), |
39 | UINT64_C(0), |
40 | UINT64_C(0), |
41 | UINT64_C(0), |
42 | UINT64_C(0), |
43 | UINT64_C(0), |
44 | UINT64_C(0), |
45 | UINT64_C(0), |
46 | UINT64_C(0), |
47 | UINT64_C(0), |
48 | UINT64_C(0), |
49 | UINT64_C(0), |
50 | UINT64_C(0), |
51 | UINT64_C(0), |
52 | UINT64_C(0), |
53 | UINT64_C(0), |
54 | UINT64_C(0), |
55 | UINT64_C(0), |
56 | UINT64_C(0), |
57 | UINT64_C(0), |
58 | UINT64_C(0), |
59 | UINT64_C(0), |
60 | UINT64_C(0), |
61 | UINT64_C(0), |
62 | UINT64_C(0), |
63 | UINT64_C(0), |
64 | UINT64_C(0), |
65 | UINT64_C(0), |
66 | UINT64_C(0), |
67 | UINT64_C(0), |
68 | UINT64_C(0), |
69 | UINT64_C(0), |
70 | UINT64_C(0), |
71 | UINT64_C(0), |
72 | UINT64_C(0), |
73 | UINT64_C(0), |
74 | UINT64_C(0), |
75 | UINT64_C(0), |
76 | UINT64_C(0), |
77 | UINT64_C(0), |
78 | UINT64_C(0), |
79 | UINT64_C(0), |
80 | UINT64_C(0), |
81 | UINT64_C(0), |
82 | UINT64_C(0), |
83 | UINT64_C(0), |
84 | UINT64_C(0), |
85 | UINT64_C(0), |
86 | UINT64_C(0), |
87 | UINT64_C(0), |
88 | UINT64_C(0), |
89 | UINT64_C(0), |
90 | UINT64_C(0), |
91 | UINT64_C(0), |
92 | UINT64_C(0), |
93 | UINT64_C(0), |
94 | UINT64_C(0), |
95 | UINT64_C(0), |
96 | UINT64_C(0), |
97 | UINT64_C(0), |
98 | UINT64_C(0), |
99 | UINT64_C(0), |
100 | UINT64_C(0), |
101 | UINT64_C(0), |
102 | UINT64_C(0), |
103 | UINT64_C(0), |
104 | UINT64_C(0), |
105 | UINT64_C(0), |
106 | UINT64_C(0), |
107 | UINT64_C(0), |
108 | UINT64_C(0), |
109 | UINT64_C(0), |
110 | UINT64_C(0), |
111 | UINT64_C(0), |
112 | UINT64_C(0), |
113 | UINT64_C(0), |
114 | UINT64_C(0), |
115 | UINT64_C(0), |
116 | UINT64_C(0), |
117 | UINT64_C(0), |
118 | UINT64_C(0), |
119 | UINT64_C(0), |
120 | UINT64_C(0), |
121 | UINT64_C(0), |
122 | UINT64_C(0), |
123 | UINT64_C(0), |
124 | UINT64_C(0), |
125 | UINT64_C(0), |
126 | UINT64_C(0), |
127 | UINT64_C(0), |
128 | UINT64_C(0), |
129 | UINT64_C(0), |
130 | UINT64_C(0), |
131 | UINT64_C(0), |
132 | UINT64_C(0), |
133 | UINT64_C(0), |
134 | UINT64_C(0), |
135 | UINT64_C(0), |
136 | UINT64_C(0), |
137 | UINT64_C(0), |
138 | UINT64_C(0), |
139 | UINT64_C(0), |
140 | UINT64_C(0), |
141 | UINT64_C(0), |
142 | UINT64_C(0), |
143 | UINT64_C(0), |
144 | UINT64_C(0), |
145 | UINT64_C(0), |
146 | UINT64_C(0), |
147 | UINT64_C(0), |
148 | UINT64_C(0), |
149 | UINT64_C(0), |
150 | UINT64_C(0), |
151 | UINT64_C(0), |
152 | UINT64_C(0), |
153 | UINT64_C(0), |
154 | UINT64_C(0), |
155 | UINT64_C(0), |
156 | UINT64_C(0), |
157 | UINT64_C(0), |
158 | UINT64_C(0), |
159 | UINT64_C(0), |
160 | UINT64_C(0), |
161 | UINT64_C(0), |
162 | UINT64_C(0), |
163 | UINT64_C(0), |
164 | UINT64_C(0), |
165 | UINT64_C(0), |
166 | UINT64_C(0), |
167 | UINT64_C(0), |
168 | UINT64_C(0), |
169 | UINT64_C(0), |
170 | UINT64_C(0), |
171 | UINT64_C(0), |
172 | UINT64_C(0), |
173 | UINT64_C(0), |
174 | UINT64_C(0), |
175 | UINT64_C(0), |
176 | UINT64_C(0), |
177 | UINT64_C(0), |
178 | UINT64_C(0), |
179 | UINT64_C(0), |
180 | UINT64_C(0), |
181 | UINT64_C(0), |
182 | UINT64_C(0), |
183 | UINT64_C(0), |
184 | UINT64_C(0), |
185 | UINT64_C(0), |
186 | UINT64_C(0), |
187 | UINT64_C(0), |
188 | UINT64_C(0), |
189 | UINT64_C(0), |
190 | UINT64_C(0), |
191 | UINT64_C(0), |
192 | UINT64_C(0), |
193 | UINT64_C(0), |
194 | UINT64_C(0), |
195 | UINT64_C(0), |
196 | UINT64_C(0), |
197 | UINT64_C(0), |
198 | UINT64_C(0), |
199 | UINT64_C(0), |
200 | UINT64_C(0), |
201 | UINT64_C(0), |
202 | UINT64_C(0), |
203 | UINT64_C(0), |
204 | UINT64_C(0), |
205 | UINT64_C(0), |
206 | UINT64_C(0), |
207 | UINT64_C(0), |
208 | UINT64_C(0), |
209 | UINT64_C(0), |
210 | UINT64_C(0), |
211 | UINT64_C(0), |
212 | UINT64_C(0), |
213 | UINT64_C(0), |
214 | UINT64_C(0), |
215 | UINT64_C(0), |
216 | UINT64_C(0), |
217 | UINT64_C(0), |
218 | UINT64_C(0), |
219 | UINT64_C(0), |
220 | UINT64_C(0), |
221 | UINT64_C(0), |
222 | UINT64_C(0), |
223 | UINT64_C(0), |
224 | UINT64_C(0), |
225 | UINT64_C(0), |
226 | UINT64_C(0), |
227 | UINT64_C(0), |
228 | UINT64_C(0), |
229 | UINT64_C(0), |
230 | UINT64_C(0), |
231 | UINT64_C(0), |
232 | UINT64_C(0), |
233 | UINT64_C(0), |
234 | UINT64_C(0), |
235 | UINT64_C(0), |
236 | UINT64_C(0), |
237 | UINT64_C(0), |
238 | UINT64_C(0), |
239 | UINT64_C(0), |
240 | UINT64_C(0), |
241 | UINT64_C(0), |
242 | UINT64_C(0), |
243 | UINT64_C(0), |
244 | UINT64_C(0), |
245 | UINT64_C(0), |
246 | UINT64_C(0), |
247 | UINT64_C(0), |
248 | UINT64_C(0), |
249 | UINT64_C(0), |
250 | UINT64_C(0), |
251 | UINT64_C(0), |
252 | UINT64_C(0), |
253 | UINT64_C(0), |
254 | UINT64_C(0), |
255 | UINT64_C(0), |
256 | UINT64_C(0), |
257 | UINT64_C(0), |
258 | UINT64_C(0), |
259 | UINT64_C(0), |
260 | UINT64_C(0), |
261 | UINT64_C(0), |
262 | UINT64_C(0), |
263 | UINT64_C(0), |
264 | UINT64_C(0), |
265 | UINT64_C(0), |
266 | UINT64_C(0), |
267 | UINT64_C(0), |
268 | UINT64_C(0), |
269 | UINT64_C(0), |
270 | UINT64_C(0), |
271 | UINT64_C(0), |
272 | UINT64_C(0), |
273 | UINT64_C(0), |
274 | UINT64_C(0), |
275 | UINT64_C(0), |
276 | UINT64_C(0), |
277 | UINT64_C(0), |
278 | UINT64_C(0), |
279 | UINT64_C(0), |
280 | UINT64_C(0), |
281 | UINT64_C(0), |
282 | UINT64_C(0), |
283 | UINT64_C(0), |
284 | UINT64_C(0), |
285 | UINT64_C(0), |
286 | UINT64_C(0), |
287 | UINT64_C(0), |
288 | UINT64_C(0), |
289 | UINT64_C(0), |
290 | UINT64_C(0), |
291 | UINT64_C(0), |
292 | UINT64_C(0), |
293 | UINT64_C(0), |
294 | UINT64_C(0), |
295 | UINT64_C(0), |
296 | UINT64_C(0), |
297 | UINT64_C(0), |
298 | UINT64_C(0), |
299 | UINT64_C(0), |
300 | UINT64_C(0), |
301 | UINT64_C(0), |
302 | UINT64_C(0), |
303 | UINT64_C(0), |
304 | UINT64_C(0), |
305 | UINT64_C(0), |
306 | UINT64_C(0), |
307 | UINT64_C(0), |
308 | UINT64_C(0), |
309 | UINT64_C(0), |
310 | UINT64_C(0), |
311 | UINT64_C(0), |
312 | UINT64_C(0), |
313 | UINT64_C(0), |
314 | UINT64_C(0), |
315 | UINT64_C(0), |
316 | UINT64_C(0), |
317 | UINT64_C(0), |
318 | UINT64_C(0), |
319 | UINT64_C(0), |
320 | UINT64_C(0), |
321 | UINT64_C(0), |
322 | UINT64_C(0), |
323 | UINT64_C(0), |
324 | UINT64_C(0), |
325 | UINT64_C(65), // OpAccessChain |
326 | UINT64_C(5911), // OpAliasDomainDeclINTEL |
327 | UINT64_C(5912), // OpAliasScopeDeclINTEL |
328 | UINT64_C(5913), // OpAliasScopeListDeclINTEL |
329 | UINT64_C(155), // OpAll |
330 | UINT64_C(154), // OpAny |
331 | UINT64_C(6145), // OpArithmeticFenceEXT |
332 | UINT64_C(68), // OpArrayLength |
333 | UINT64_C(5611), // OpAsmCallINTEL |
334 | UINT64_C(5610), // OpAsmINTEL |
335 | UINT64_C(5609), // OpAsmTargetINTEL |
336 | UINT64_C(5630), // OpAssumeTrueKHR |
337 | UINT64_C(240), // OpAtomicAnd |
338 | UINT64_C(230), // OpAtomicCompareExchange |
339 | UINT64_C(231), // OpAtomicCompareExchangeWeak |
340 | UINT64_C(229), // OpAtomicExchange |
341 | UINT64_C(6035), // OpAtomicFAddEXT |
342 | UINT64_C(5615), // OpAtomicFMaxEXT |
343 | UINT64_C(5614), // OpAtomicFMinEXT |
344 | UINT64_C(319), // OpAtomicFlagClear |
345 | UINT64_C(318), // OpAtomicFlagTestAndSet |
346 | UINT64_C(234), // OpAtomicIAdd |
347 | UINT64_C(233), // OpAtomicIDecrement |
348 | UINT64_C(232), // OpAtomicIIncrement |
349 | UINT64_C(235), // OpAtomicISub |
350 | UINT64_C(227), // OpAtomicLoad |
351 | UINT64_C(241), // OpAtomicOr |
352 | UINT64_C(238), // OpAtomicSMax |
353 | UINT64_C(236), // OpAtomicSMin |
354 | UINT64_C(228), // OpAtomicStore |
355 | UINT64_C(239), // OpAtomicUMax |
356 | UINT64_C(237), // OpAtomicUMin |
357 | UINT64_C(242), // OpAtomicXor |
358 | UINT64_C(205), // OpBitCount |
359 | UINT64_C(201), // OpBitFieldInsert |
360 | UINT64_C(202), // OpBitFieldSExtract |
361 | UINT64_C(203), // OpBitFieldUExtract |
362 | UINT64_C(204), // OpBitReverse |
363 | UINT64_C(124), // OpBitcast |
364 | UINT64_C(199), // OpBitwiseAndS |
365 | UINT64_C(199), // OpBitwiseAndV |
366 | UINT64_C(6242), // OpBitwiseFunctionINTEL |
367 | UINT64_C(197), // OpBitwiseOrS |
368 | UINT64_C(197), // OpBitwiseOrV |
369 | UINT64_C(198), // OpBitwiseXorS |
370 | UINT64_C(198), // OpBitwiseXorV |
371 | UINT64_C(249), // OpBranch |
372 | UINT64_C(250), // OpBranchConditional |
373 | UINT64_C(304), // OpBuildNDRange |
374 | UINT64_C(17), // OpCapability |
375 | UINT64_C(302), // OpCaptureEventProfilingInfo |
376 | UINT64_C(80), // OpCompositeConstruct |
377 | UINT64_C(6096), // OpCompositeConstructContinuedINTEL |
378 | UINT64_C(81), // OpCompositeExtract |
379 | UINT64_C(82), // OpCompositeInsert |
380 | UINT64_C(44), // OpConstantComposite |
381 | UINT64_C(6091), // OpConstantCompositeContinuedINTEL |
382 | UINT64_C(43), // OpConstantF |
383 | UINT64_C(42), // OpConstantFalse |
384 | UINT64_C(5600), // OpConstantFunctionPointerINTEL |
385 | UINT64_C(43), // OpConstantI |
386 | UINT64_C(46), // OpConstantNull |
387 | UINT64_C(45), // OpConstantSampler |
388 | UINT64_C(41), // OpConstantTrue |
389 | UINT64_C(224), // OpControlBarrier |
390 | UINT64_C(6142), // OpControlBarrierArriveINTEL |
391 | UINT64_C(6143), // OpControlBarrierWaitINTEL |
392 | UINT64_C(6117), // OpConvertBF16ToFINTEL |
393 | UINT64_C(6116), // OpConvertFToBF16INTEL |
394 | UINT64_C(110), // OpConvertFToS |
395 | UINT64_C(109), // OpConvertFToU |
396 | UINT64_C(6529), // OpConvertHandleToImageINTEL |
397 | UINT64_C(6531), // OpConvertHandleToSampledImageINTEL |
398 | UINT64_C(6530), // OpConvertHandleToSamplerINTEL |
399 | UINT64_C(117), // OpConvertPtrToU |
400 | UINT64_C(111), // OpConvertSToF |
401 | UINT64_C(112), // OpConvertUToF |
402 | UINT64_C(120), // OpConvertUToPtr |
403 | UINT64_C(6195), // OpCooperativeMatrixConstructCheckedINTEL |
404 | UINT64_C(6440), // OpCooperativeMatrixGetElementCoordINTEL |
405 | UINT64_C(4460), // OpCooperativeMatrixLengthKHR |
406 | UINT64_C(6193), // OpCooperativeMatrixLoadCheckedINTEL |
407 | UINT64_C(4457), // OpCooperativeMatrixLoadKHR |
408 | UINT64_C(4459), // OpCooperativeMatrixMulAddKHR |
409 | UINT64_C(6449), // OpCooperativeMatrixPrefetchINTEL |
410 | UINT64_C(6194), // OpCooperativeMatrixStoreCheckedINTEL |
411 | UINT64_C(4458), // OpCooperativeMatrixStoreKHR |
412 | UINT64_C(400), // OpCopyLogical |
413 | UINT64_C(63), // OpCopyMemory |
414 | UINT64_C(64), // OpCopyMemorySized |
415 | UINT64_C(83), // OpCopyObject |
416 | UINT64_C(299), // OpCreateUserEvent |
417 | UINT64_C(5938), // OpCrossWorkgroupCastToPtrINTEL |
418 | UINT64_C(207), // OpDPdx |
419 | UINT64_C(213), // OpDPdxCoarse |
420 | UINT64_C(210), // OpDPdxFine |
421 | UINT64_C(208), // OpDPdy |
422 | UINT64_C(214), // OpDPdyCoarse |
423 | UINT64_C(211), // OpDPdyFine |
424 | UINT64_C(71), // OpDecorate |
425 | UINT64_C(332), // OpDecorateId |
426 | UINT64_C(5632), // OpDecorateString |
427 | UINT64_C(5380), // OpDemoteToHelperInvocation |
428 | UINT64_C(148), // OpDot |
429 | UINT64_C(220), // OpEmitStreamVertex |
430 | UINT64_C(218), // OpEmitVertex |
431 | UINT64_C(219), // OpEndPrimitive |
432 | UINT64_C(221), // OpEndStreamPrimitive |
433 | UINT64_C(292), // OpEnqueueKernel |
434 | UINT64_C(15), // OpEntryPoint |
435 | UINT64_C(16), // OpExecutionMode |
436 | UINT64_C(331), // OpExecutionModeId |
437 | UINT64_C(5631), // OpExpectKHR |
438 | UINT64_C(12), // OpExtInst |
439 | UINT64_C(11), // OpExtInstImport |
440 | UINT64_C(10), // OpExtension |
441 | UINT64_C(129), // OpFAddS |
442 | UINT64_C(129), // OpFAddV |
443 | UINT64_C(115), // OpFConvert |
444 | UINT64_C(136), // OpFDivS |
445 | UINT64_C(136), // OpFDivV |
446 | UINT64_C(141), // OpFMod |
447 | UINT64_C(133), // OpFMulS |
448 | UINT64_C(133), // OpFMulV |
449 | UINT64_C(127), // OpFNegate |
450 | UINT64_C(127), // OpFNegateV |
451 | UINT64_C(180), // OpFOrdEqual |
452 | UINT64_C(186), // OpFOrdGreaterThan |
453 | UINT64_C(190), // OpFOrdGreaterThanEqual |
454 | UINT64_C(184), // OpFOrdLessThan |
455 | UINT64_C(188), // OpFOrdLessThanEqual |
456 | UINT64_C(182), // OpFOrdNotEqual |
457 | UINT64_C(140), // OpFRemS |
458 | UINT64_C(140), // OpFRemV |
459 | UINT64_C(131), // OpFSubS |
460 | UINT64_C(131), // OpFSubV |
461 | UINT64_C(181), // OpFUnordEqual |
462 | UINT64_C(187), // OpFUnordGreaterThan |
463 | UINT64_C(191), // OpFUnordGreaterThanEqual |
464 | UINT64_C(185), // OpFUnordLessThan |
465 | UINT64_C(189), // OpFUnordLessThanEqual |
466 | UINT64_C(183), // OpFUnordNotEqual |
467 | UINT64_C(54), // OpFunction |
468 | UINT64_C(57), // OpFunctionCall |
469 | UINT64_C(56), // OpFunctionEnd |
470 | UINT64_C(55), // OpFunctionParameter |
471 | UINT64_C(5601), // OpFunctionPointerCallINTEL |
472 | UINT64_C(209), // OpFwidth |
473 | UINT64_C(215), // OpFwidthCoarse |
474 | UINT64_C(212), // OpFwidthFine |
475 | UINT64_C(122), // OpGenericCastToPtr |
476 | UINT64_C(123), // OpGenericCastToPtrExplicit |
477 | UINT64_C(69), // OpGenericPtrMemSemantics |
478 | UINT64_C(303), // OpGetDefaultQueue |
479 | UINT64_C(261), // OpGroupAll |
480 | UINT64_C(262), // OpGroupAny |
481 | UINT64_C(259), // OpGroupAsyncCopy |
482 | UINT64_C(6403), // OpGroupBitwiseAndKHR |
483 | UINT64_C(6404), // OpGroupBitwiseOrKHR |
484 | UINT64_C(6405), // OpGroupBitwiseXorKHR |
485 | UINT64_C(263), // OpGroupBroadcast |
486 | UINT64_C(265), // OpGroupFAdd |
487 | UINT64_C(269), // OpGroupFMax |
488 | UINT64_C(266), // OpGroupFMin |
489 | UINT64_C(6402), // OpGroupFMulKHR |
490 | UINT64_C(264), // OpGroupIAdd |
491 | UINT64_C(6401), // OpGroupIMulKHR |
492 | UINT64_C(6406), // OpGroupLogicalAndKHR |
493 | UINT64_C(6407), // OpGroupLogicalOrKHR |
494 | UINT64_C(6408), // OpGroupLogicalXorKHR |
495 | UINT64_C(334), // OpGroupNonUniformAll |
496 | UINT64_C(336), // OpGroupNonUniformAllEqual |
497 | UINT64_C(335), // OpGroupNonUniformAny |
498 | UINT64_C(339), // OpGroupNonUniformBallot |
499 | UINT64_C(342), // OpGroupNonUniformBallotBitCount |
500 | UINT64_C(341), // OpGroupNonUniformBallotBitExtract |
501 | UINT64_C(343), // OpGroupNonUniformBallotFindLSB |
502 | UINT64_C(344), // OpGroupNonUniformBallotFindMSB |
503 | UINT64_C(359), // OpGroupNonUniformBitwiseAnd |
504 | UINT64_C(360), // OpGroupNonUniformBitwiseOr |
505 | UINT64_C(361), // OpGroupNonUniformBitwiseXor |
506 | UINT64_C(337), // OpGroupNonUniformBroadcast |
507 | UINT64_C(338), // OpGroupNonUniformBroadcastFirst |
508 | UINT64_C(333), // OpGroupNonUniformElect |
509 | UINT64_C(350), // OpGroupNonUniformFAdd |
510 | UINT64_C(358), // OpGroupNonUniformFMax |
511 | UINT64_C(355), // OpGroupNonUniformFMin |
512 | UINT64_C(352), // OpGroupNonUniformFMul |
513 | UINT64_C(349), // OpGroupNonUniformIAdd |
514 | UINT64_C(351), // OpGroupNonUniformIMul |
515 | UINT64_C(340), // OpGroupNonUniformInverseBallot |
516 | UINT64_C(362), // OpGroupNonUniformLogicalAnd |
517 | UINT64_C(363), // OpGroupNonUniformLogicalOr |
518 | UINT64_C(364), // OpGroupNonUniformLogicalXor |
519 | UINT64_C(4431), // OpGroupNonUniformRotateKHR |
520 | UINT64_C(356), // OpGroupNonUniformSMax |
521 | UINT64_C(353), // OpGroupNonUniformSMin |
522 | UINT64_C(345), // OpGroupNonUniformShuffle |
523 | UINT64_C(348), // OpGroupNonUniformShuffleDown |
524 | UINT64_C(347), // OpGroupNonUniformShuffleUp |
525 | UINT64_C(346), // OpGroupNonUniformShuffleXor |
526 | UINT64_C(357), // OpGroupNonUniformUMax |
527 | UINT64_C(354), // OpGroupNonUniformUMin |
528 | UINT64_C(271), // OpGroupSMax |
529 | UINT64_C(268), // OpGroupSMin |
530 | UINT64_C(270), // OpGroupUMax |
531 | UINT64_C(267), // OpGroupUMin |
532 | UINT64_C(260), // OpGroupWaitEvents |
533 | UINT64_C(149), // OpIAddCarryS |
534 | UINT64_C(149), // OpIAddCarryV |
535 | UINT64_C(128), // OpIAddS |
536 | UINT64_C(128), // OpIAddV |
537 | UINT64_C(170), // OpIEqual |
538 | UINT64_C(132), // OpIMulS |
539 | UINT64_C(132), // OpIMulV |
540 | UINT64_C(171), // OpINotEqual |
541 | UINT64_C(150), // OpISubBorrowS |
542 | UINT64_C(150), // OpISubBorrowV |
543 | UINT64_C(130), // OpISubS |
544 | UINT64_C(130), // OpISubV |
545 | UINT64_C(100), // OpImage |
546 | UINT64_C(97), // OpImageDrefGather |
547 | UINT64_C(95), // OpImageFetch |
548 | UINT64_C(96), // OpImageGather |
549 | UINT64_C(101), // OpImageQueryFormat |
550 | UINT64_C(106), // OpImageQueryLevels |
551 | UINT64_C(105), // OpImageQueryLod |
552 | UINT64_C(102), // OpImageQueryOrder |
553 | UINT64_C(107), // OpImageQuerySamples |
554 | UINT64_C(104), // OpImageQuerySize |
555 | UINT64_C(103), // OpImageQuerySizeLod |
556 | UINT64_C(98), // OpImageRead |
557 | UINT64_C(90), // OpImageSampleDrefExplicitLod |
558 | UINT64_C(89), // OpImageSampleDrefImplicitLod |
559 | UINT64_C(88), // OpImageSampleExplicitLod |
560 | UINT64_C(5283), // OpImageSampleFootprintNV |
561 | UINT64_C(87), // OpImageSampleImplicitLod |
562 | UINT64_C(94), // OpImageSampleProjDrefExplicitLod |
563 | UINT64_C(93), // OpImageSampleProjDrefImplicitLod |
564 | UINT64_C(92), // OpImageSampleProjExplicitLod |
565 | UINT64_C(91), // OpImageSampleProjImplicitLod |
566 | UINT64_C(315), // OpImageSparseDrefGather |
567 | UINT64_C(313), // OpImageSparseFetch |
568 | UINT64_C(314), // OpImageSparseGather |
569 | UINT64_C(320), // OpImageSparseRead |
570 | UINT64_C(308), // OpImageSparseSampleDrefExplicitLod |
571 | UINT64_C(307), // OpImageSparseSampleDrefImplicitLod |
572 | UINT64_C(306), // OpImageSparseSampleExplicitLod |
573 | UINT64_C(305), // OpImageSparseSampleImplicitLod |
574 | UINT64_C(312), // OpImageSparseSampleProjDrefExplicitLod |
575 | UINT64_C(311), // OpImageSparseSampleProjDrefImplicitLod |
576 | UINT64_C(310), // OpImageSparseSampleProjExplicitLod |
577 | UINT64_C(309), // OpImageSparseSampleProjImplicitLod |
578 | UINT64_C(316), // OpImageSparseTexelsResident |
579 | UINT64_C(60), // OpImageTexelPointer |
580 | UINT64_C(99), // OpImageWrite |
581 | UINT64_C(66), // OpInBoundsAccessChain |
582 | UINT64_C(70), // OpInBoundsPtrAccessChain |
583 | UINT64_C(158), // OpIsFinite |
584 | UINT64_C(157), // OpIsInf |
585 | UINT64_C(156), // OpIsNan |
586 | UINT64_C(159), // OpIsNormal |
587 | UINT64_C(300), // OpIsValidEvent |
588 | UINT64_C(252), // OpKill |
589 | UINT64_C(248), // OpLabel |
590 | UINT64_C(161), // OpLessOrGreater |
591 | UINT64_C(256), // OpLifetimeStart |
592 | UINT64_C(257), // OpLifetimeStop |
593 | UINT64_C(8), // OpLine |
594 | UINT64_C(61), // OpLoad |
595 | UINT64_C(167), // OpLogicalAnd |
596 | UINT64_C(164), // OpLogicalEqual |
597 | UINT64_C(168), // OpLogicalNot |
598 | UINT64_C(165), // OpLogicalNotEqual |
599 | UINT64_C(166), // OpLogicalOr |
600 | UINT64_C(246), // OpLoopMerge |
601 | UINT64_C(146), // OpMatrixTimesMatrix |
602 | UINT64_C(143), // OpMatrixTimesScalar |
603 | UINT64_C(145), // OpMatrixTimesVector |
604 | UINT64_C(72), // OpMemberDecorate |
605 | UINT64_C(5633), // OpMemberDecorateString |
606 | UINT64_C(6), // OpMemberName |
607 | UINT64_C(225), // OpMemoryBarrier |
608 | UINT64_C(14), // OpMemoryModel |
609 | UINT64_C(329), // OpMemoryNamedBarrier |
610 | UINT64_C(330), // OpModuleProcessed |
611 | UINT64_C(5), // OpName |
612 | UINT64_C(328), // OpNamedBarrierInitialize |
613 | UINT64_C(317), // OpNoLine |
614 | UINT64_C(0), // OpNop |
615 | UINT64_C(200), // OpNot |
616 | UINT64_C(162), // OpOrdered |
617 | UINT64_C(147), // OpOuterProduct |
618 | UINT64_C(245), // OpPhi |
619 | UINT64_C(67), // OpPtrAccessChain |
620 | UINT64_C(5934), // OpPtrCastToCrossWorkgroupINTEL |
621 | UINT64_C(121), // OpPtrCastToGeneric |
622 | UINT64_C(403), // OpPtrDiff |
623 | UINT64_C(401), // OpPtrEqual |
624 | UINT64_C(402), // OpPtrNotEqual |
625 | UINT64_C(116), // OpQuantizeToF16 |
626 | UINT64_C(5056), // OpReadClockKHR |
627 | UINT64_C(298), // OpReleaseEvent |
628 | UINT64_C(5820), // OpRestoreMemoryINTEL |
629 | UINT64_C(297), // OpRetainEvent |
630 | UINT64_C(253), // OpReturn |
631 | UINT64_C(254), // OpReturnValue |
632 | UINT64_C(114), // OpSConvert |
633 | UINT64_C(135), // OpSDivS |
634 | UINT64_C(135), // OpSDivV |
635 | UINT64_C(4450), // OpSDot |
636 | UINT64_C(4453), // OpSDotAccSat |
637 | UINT64_C(173), // OpSGreaterThan |
638 | UINT64_C(175), // OpSGreaterThanEqual |
639 | UINT64_C(177), // OpSLessThan |
640 | UINT64_C(179), // OpSLessThanEqual |
641 | UINT64_C(139), // OpSMod |
642 | UINT64_C(152), // OpSMulExtended |
643 | UINT64_C(126), // OpSNegate |
644 | UINT64_C(138), // OpSRemS |
645 | UINT64_C(138), // OpSRemV |
646 | UINT64_C(4452), // OpSUDot |
647 | UINT64_C(4455), // OpSUDotAccSat |
648 | UINT64_C(86), // OpSampledImage |
649 | UINT64_C(118), // OpSatConvertSToU |
650 | UINT64_C(119), // OpSatConvertUToS |
651 | UINT64_C(5819), // OpSaveMemoryINTEL |
652 | UINT64_C(169), // OpSelectSFSCond |
653 | UINT64_C(169), // OpSelectSFVCond |
654 | UINT64_C(169), // OpSelectSISCond |
655 | UINT64_C(169), // OpSelectSIVCond |
656 | UINT64_C(169), // OpSelectSPSCond |
657 | UINT64_C(169), // OpSelectSPVCond |
658 | UINT64_C(169), // OpSelectVFSCond |
659 | UINT64_C(169), // OpSelectVFVCond |
660 | UINT64_C(169), // OpSelectVISCond |
661 | UINT64_C(169), // OpSelectVIVCond |
662 | UINT64_C(169), // OpSelectVPSCond |
663 | UINT64_C(169), // OpSelectVPVCond |
664 | UINT64_C(247), // OpSelectionMerge |
665 | UINT64_C(301), // OpSetUserEventStatus |
666 | UINT64_C(196), // OpShiftLeftLogicalS |
667 | UINT64_C(196), // OpShiftLeftLogicalV |
668 | UINT64_C(195), // OpShiftRightArithmeticS |
669 | UINT64_C(195), // OpShiftRightArithmeticV |
670 | UINT64_C(194), // OpShiftRightLogicalS |
671 | UINT64_C(194), // OpShiftRightLogicalV |
672 | UINT64_C(160), // OpSignBitSet |
673 | UINT64_C(321), // OpSizeOf |
674 | UINT64_C(3), // OpSource |
675 | UINT64_C(2), // OpSourceContinued |
676 | UINT64_C(4), // OpSourceExtension |
677 | UINT64_C(50), // OpSpecConstant |
678 | UINT64_C(51), // OpSpecConstantComposite |
679 | UINT64_C(6092), // OpSpecConstantCompositeContinuedINTEL |
680 | UINT64_C(49), // OpSpecConstantFalse |
681 | UINT64_C(52), // OpSpecConstantOp |
682 | UINT64_C(48), // OpSpecConstantTrue |
683 | UINT64_C(62), // OpStore |
684 | UINT64_C(129), // OpStrictFAddS |
685 | UINT64_C(129), // OpStrictFAddV |
686 | UINT64_C(136), // OpStrictFDivS |
687 | UINT64_C(136), // OpStrictFDivV |
688 | UINT64_C(133), // OpStrictFMulS |
689 | UINT64_C(133), // OpStrictFMulV |
690 | UINT64_C(140), // OpStrictFRemS |
691 | UINT64_C(140), // OpStrictFRemV |
692 | UINT64_C(131), // OpStrictFSubS |
693 | UINT64_C(131), // OpStrictFSubV |
694 | UINT64_C(7), // OpString |
695 | UINT64_C(6231), // OpSubgroup2DBlockLoadINTEL |
696 | UINT64_C(6232), // OpSubgroup2DBlockLoadTransformINTEL |
697 | UINT64_C(6233), // OpSubgroup2DBlockLoadTransposeINTEL |
698 | UINT64_C(6234), // OpSubgroup2DBlockPrefetchINTEL |
699 | UINT64_C(6235), // OpSubgroup2DBlockStoreINTEL |
700 | UINT64_C(5575), // OpSubgroupBlockReadINTEL |
701 | UINT64_C(5576), // OpSubgroupBlockWriteINTEL |
702 | UINT64_C(5577), // OpSubgroupImageBlockReadINTEL |
703 | UINT64_C(5578), // OpSubgroupImageBlockWriteINTEL |
704 | UINT64_C(5580), // OpSubgroupImageMediaBlockReadINTEL |
705 | UINT64_C(5581), // OpSubgroupImageMediaBlockWriteINTEL |
706 | UINT64_C(6237), // OpSubgroupMatrixMultiplyAccumulateINTEL |
707 | UINT64_C(5572), // OpSubgroupShuffleDownINTEL |
708 | UINT64_C(5571), // OpSubgroupShuffleINTEL |
709 | UINT64_C(5573), // OpSubgroupShuffleUpINTEL |
710 | UINT64_C(5574), // OpSubgroupShuffleXorINTEL |
711 | UINT64_C(251), // OpSwitch |
712 | UINT64_C(84), // OpTranspose |
713 | UINT64_C(5341), // OpTypeAccelerationStructureNV |
714 | UINT64_C(28), // OpTypeArray |
715 | UINT64_C(20), // OpTypeBool |
716 | UINT64_C(4456), // OpTypeCooperativeMatrixKHR |
717 | UINT64_C(5358), // OpTypeCooperativeMatrixNV |
718 | UINT64_C(35), // OpTypeDeviceEvent |
719 | UINT64_C(34), // OpTypeEvent |
720 | UINT64_C(22), // OpTypeFloat |
721 | UINT64_C(39), // OpTypeForwardPointer |
722 | UINT64_C(33), // OpTypeFunction |
723 | UINT64_C(25), // OpTypeImage |
724 | UINT64_C(21), // OpTypeInt |
725 | UINT64_C(24), // OpTypeMatrix |
726 | UINT64_C(327), // OpTypeNamedBarrier |
727 | UINT64_C(31), // OpTypeOpaque |
728 | UINT64_C(38), // OpTypePipe |
729 | UINT64_C(322), // OpTypePipeStorage |
730 | UINT64_C(32), // OpTypePointer |
731 | UINT64_C(37), // OpTypeQueue |
732 | UINT64_C(36), // OpTypeReserveId |
733 | UINT64_C(29), // OpTypeRuntimeArray |
734 | UINT64_C(27), // OpTypeSampledImage |
735 | UINT64_C(26), // OpTypeSampler |
736 | UINT64_C(30), // OpTypeStruct |
737 | UINT64_C(6090), // OpTypeStructContinuedINTEL |
738 | UINT64_C(23), // OpTypeVector |
739 | UINT64_C(19), // OpTypeVoid |
740 | UINT64_C(113), // OpUConvert |
741 | UINT64_C(134), // OpUDivS |
742 | UINT64_C(134), // OpUDivV |
743 | UINT64_C(4451), // OpUDot |
744 | UINT64_C(4454), // OpUDotAccSat |
745 | UINT64_C(172), // OpUGreaterThan |
746 | UINT64_C(174), // OpUGreaterThanEqual |
747 | UINT64_C(176), // OpULessThan |
748 | UINT64_C(178), // OpULessThanEqual |
749 | UINT64_C(137), // OpUModS |
750 | UINT64_C(137), // OpUModV |
751 | UINT64_C(151), // OpUMulExtended |
752 | UINT64_C(1), // OpUndef |
753 | UINT64_C(163), // OpUnordered |
754 | UINT64_C(255), // OpUnreachable |
755 | UINT64_C(59), // OpVariable |
756 | UINT64_C(5818), // OpVariableLengthArrayINTEL |
757 | UINT64_C(77), // OpVectorExtractDynamic |
758 | UINT64_C(78), // OpVectorInsertDynamic |
759 | UINT64_C(79), // OpVectorShuffle |
760 | UINT64_C(144), // OpVectorTimesMatrix |
761 | UINT64_C(142), // OpVectorTimesScalar |
762 | UINT64_C(0) |
763 | }; |
764 | const unsigned opcode = MI.getOpcode(); |
765 | uint64_t Value = InstBits[opcode]; |
766 | uint64_t op = 0; |
767 | (void)op; // suppress warning |
768 | switch (opcode) { |
769 | case SPIRV::OpAccessChain: |
770 | case SPIRV::OpAliasDomainDeclINTEL: |
771 | case SPIRV::OpAliasScopeDeclINTEL: |
772 | case SPIRV::OpAliasScopeListDeclINTEL: |
773 | case SPIRV::OpAll: |
774 | case SPIRV::OpAny: |
775 | case SPIRV::OpArithmeticFenceEXT: |
776 | case SPIRV::OpArrayLength: |
777 | case SPIRV::OpAsmCallINTEL: |
778 | case SPIRV::OpAsmINTEL: |
779 | case SPIRV::OpAsmTargetINTEL: |
780 | case SPIRV::OpAssumeTrueKHR: |
781 | case SPIRV::OpAtomicAnd: |
782 | case SPIRV::OpAtomicCompareExchange: |
783 | case SPIRV::OpAtomicCompareExchangeWeak: |
784 | case SPIRV::OpAtomicExchange: |
785 | case SPIRV::OpAtomicFAddEXT: |
786 | case SPIRV::OpAtomicFMaxEXT: |
787 | case SPIRV::OpAtomicFMinEXT: |
788 | case SPIRV::OpAtomicFlagClear: |
789 | case SPIRV::OpAtomicFlagTestAndSet: |
790 | case SPIRV::OpAtomicIAdd: |
791 | case SPIRV::OpAtomicIDecrement: |
792 | case SPIRV::OpAtomicIIncrement: |
793 | case SPIRV::OpAtomicISub: |
794 | case SPIRV::OpAtomicLoad: |
795 | case SPIRV::OpAtomicOr: |
796 | case SPIRV::OpAtomicSMax: |
797 | case SPIRV::OpAtomicSMin: |
798 | case SPIRV::OpAtomicStore: |
799 | case SPIRV::OpAtomicUMax: |
800 | case SPIRV::OpAtomicUMin: |
801 | case SPIRV::OpAtomicXor: |
802 | case SPIRV::OpBitCount: |
803 | case SPIRV::OpBitFieldInsert: |
804 | case SPIRV::OpBitFieldSExtract: |
805 | case SPIRV::OpBitFieldUExtract: |
806 | case SPIRV::OpBitReverse: |
807 | case SPIRV::OpBitcast: |
808 | case SPIRV::OpBitwiseAndS: |
809 | case SPIRV::OpBitwiseAndV: |
810 | case SPIRV::OpBitwiseFunctionINTEL: |
811 | case SPIRV::OpBitwiseOrS: |
812 | case SPIRV::OpBitwiseOrV: |
813 | case SPIRV::OpBitwiseXorS: |
814 | case SPIRV::OpBitwiseXorV: |
815 | case SPIRV::OpBranch: |
816 | case SPIRV::OpBranchConditional: |
817 | case SPIRV::OpBuildNDRange: |
818 | case SPIRV::OpCapability: |
819 | case SPIRV::OpCaptureEventProfilingInfo: |
820 | case SPIRV::OpCompositeConstruct: |
821 | case SPIRV::OpCompositeConstructContinuedINTEL: |
822 | case SPIRV::OpCompositeExtract: |
823 | case SPIRV::OpCompositeInsert: |
824 | case SPIRV::OpConstantComposite: |
825 | case SPIRV::OpConstantCompositeContinuedINTEL: |
826 | case SPIRV::OpConstantF: |
827 | case SPIRV::OpConstantFalse: |
828 | case SPIRV::OpConstantFunctionPointerINTEL: |
829 | case SPIRV::OpConstantI: |
830 | case SPIRV::OpConstantNull: |
831 | case SPIRV::OpConstantSampler: |
832 | case SPIRV::OpConstantTrue: |
833 | case SPIRV::OpControlBarrier: |
834 | case SPIRV::OpControlBarrierArriveINTEL: |
835 | case SPIRV::OpControlBarrierWaitINTEL: |
836 | case SPIRV::OpConvertBF16ToFINTEL: |
837 | case SPIRV::OpConvertFToBF16INTEL: |
838 | case SPIRV::OpConvertFToS: |
839 | case SPIRV::OpConvertFToU: |
840 | case SPIRV::OpConvertHandleToImageINTEL: |
841 | case SPIRV::OpConvertHandleToSampledImageINTEL: |
842 | case SPIRV::OpConvertHandleToSamplerINTEL: |
843 | case SPIRV::OpConvertPtrToU: |
844 | case SPIRV::OpConvertSToF: |
845 | case SPIRV::OpConvertUToF: |
846 | case SPIRV::OpConvertUToPtr: |
847 | case SPIRV::OpCooperativeMatrixConstructCheckedINTEL: |
848 | case SPIRV::OpCooperativeMatrixGetElementCoordINTEL: |
849 | case SPIRV::OpCooperativeMatrixLengthKHR: |
850 | case SPIRV::OpCooperativeMatrixLoadCheckedINTEL: |
851 | case SPIRV::OpCooperativeMatrixLoadKHR: |
852 | case SPIRV::OpCooperativeMatrixMulAddKHR: |
853 | case SPIRV::OpCooperativeMatrixPrefetchINTEL: |
854 | case SPIRV::OpCooperativeMatrixStoreCheckedINTEL: |
855 | case SPIRV::OpCooperativeMatrixStoreKHR: |
856 | case SPIRV::OpCopyLogical: |
857 | case SPIRV::OpCopyMemory: |
858 | case SPIRV::OpCopyMemorySized: |
859 | case SPIRV::OpCopyObject: |
860 | case SPIRV::OpCreateUserEvent: |
861 | case SPIRV::OpCrossWorkgroupCastToPtrINTEL: |
862 | case SPIRV::OpDPdx: |
863 | case SPIRV::OpDPdxCoarse: |
864 | case SPIRV::OpDPdxFine: |
865 | case SPIRV::OpDPdy: |
866 | case SPIRV::OpDPdyCoarse: |
867 | case SPIRV::OpDPdyFine: |
868 | case SPIRV::OpDecorate: |
869 | case SPIRV::OpDecorateId: |
870 | case SPIRV::OpDecorateString: |
871 | case SPIRV::OpDemoteToHelperInvocation: |
872 | case SPIRV::OpDot: |
873 | case SPIRV::OpEmitStreamVertex: |
874 | case SPIRV::OpEmitVertex: |
875 | case SPIRV::OpEndPrimitive: |
876 | case SPIRV::OpEndStreamPrimitive: |
877 | case SPIRV::OpEnqueueKernel: |
878 | case SPIRV::OpEntryPoint: |
879 | case SPIRV::OpExecutionMode: |
880 | case SPIRV::OpExecutionModeId: |
881 | case SPIRV::OpExpectKHR: |
882 | case SPIRV::OpExtInst: |
883 | case SPIRV::OpExtInstImport: |
884 | case SPIRV::OpExtension: |
885 | case SPIRV::OpFAddS: |
886 | case SPIRV::OpFAddV: |
887 | case SPIRV::OpFConvert: |
888 | case SPIRV::OpFDivS: |
889 | case SPIRV::OpFDivV: |
890 | case SPIRV::OpFMod: |
891 | case SPIRV::OpFMulS: |
892 | case SPIRV::OpFMulV: |
893 | case SPIRV::OpFNegate: |
894 | case SPIRV::OpFNegateV: |
895 | case SPIRV::OpFOrdEqual: |
896 | case SPIRV::OpFOrdGreaterThan: |
897 | case SPIRV::OpFOrdGreaterThanEqual: |
898 | case SPIRV::OpFOrdLessThan: |
899 | case SPIRV::OpFOrdLessThanEqual: |
900 | case SPIRV::OpFOrdNotEqual: |
901 | case SPIRV::OpFRemS: |
902 | case SPIRV::OpFRemV: |
903 | case SPIRV::OpFSubS: |
904 | case SPIRV::OpFSubV: |
905 | case SPIRV::OpFUnordEqual: |
906 | case SPIRV::OpFUnordGreaterThan: |
907 | case SPIRV::OpFUnordGreaterThanEqual: |
908 | case SPIRV::OpFUnordLessThan: |
909 | case SPIRV::OpFUnordLessThanEqual: |
910 | case SPIRV::OpFUnordNotEqual: |
911 | case SPIRV::OpFunction: |
912 | case SPIRV::OpFunctionCall: |
913 | case SPIRV::OpFunctionEnd: |
914 | case SPIRV::OpFunctionParameter: |
915 | case SPIRV::OpFunctionPointerCallINTEL: |
916 | case SPIRV::OpFwidth: |
917 | case SPIRV::OpFwidthCoarse: |
918 | case SPIRV::OpFwidthFine: |
919 | case SPIRV::OpGenericCastToPtr: |
920 | case SPIRV::OpGenericCastToPtrExplicit: |
921 | case SPIRV::OpGenericPtrMemSemantics: |
922 | case SPIRV::OpGetDefaultQueue: |
923 | case SPIRV::OpGroupAll: |
924 | case SPIRV::OpGroupAny: |
925 | case SPIRV::OpGroupAsyncCopy: |
926 | case SPIRV::OpGroupBitwiseAndKHR: |
927 | case SPIRV::OpGroupBitwiseOrKHR: |
928 | case SPIRV::OpGroupBitwiseXorKHR: |
929 | case SPIRV::OpGroupBroadcast: |
930 | case SPIRV::OpGroupFAdd: |
931 | case SPIRV::OpGroupFMax: |
932 | case SPIRV::OpGroupFMin: |
933 | case SPIRV::OpGroupFMulKHR: |
934 | case SPIRV::OpGroupIAdd: |
935 | case SPIRV::OpGroupIMulKHR: |
936 | case SPIRV::OpGroupLogicalAndKHR: |
937 | case SPIRV::OpGroupLogicalOrKHR: |
938 | case SPIRV::OpGroupLogicalXorKHR: |
939 | case SPIRV::OpGroupNonUniformAll: |
940 | case SPIRV::OpGroupNonUniformAllEqual: |
941 | case SPIRV::OpGroupNonUniformAny: |
942 | case SPIRV::OpGroupNonUniformBallot: |
943 | case SPIRV::OpGroupNonUniformBallotBitCount: |
944 | case SPIRV::OpGroupNonUniformBallotBitExtract: |
945 | case SPIRV::OpGroupNonUniformBallotFindLSB: |
946 | case SPIRV::OpGroupNonUniformBallotFindMSB: |
947 | case SPIRV::OpGroupNonUniformBitwiseAnd: |
948 | case SPIRV::OpGroupNonUniformBitwiseOr: |
949 | case SPIRV::OpGroupNonUniformBitwiseXor: |
950 | case SPIRV::OpGroupNonUniformBroadcast: |
951 | case SPIRV::OpGroupNonUniformBroadcastFirst: |
952 | case SPIRV::OpGroupNonUniformElect: |
953 | case SPIRV::OpGroupNonUniformFAdd: |
954 | case SPIRV::OpGroupNonUniformFMax: |
955 | case SPIRV::OpGroupNonUniformFMin: |
956 | case SPIRV::OpGroupNonUniformFMul: |
957 | case SPIRV::OpGroupNonUniformIAdd: |
958 | case SPIRV::OpGroupNonUniformIMul: |
959 | case SPIRV::OpGroupNonUniformInverseBallot: |
960 | case SPIRV::OpGroupNonUniformLogicalAnd: |
961 | case SPIRV::OpGroupNonUniformLogicalOr: |
962 | case SPIRV::OpGroupNonUniformLogicalXor: |
963 | case SPIRV::OpGroupNonUniformRotateKHR: |
964 | case SPIRV::OpGroupNonUniformSMax: |
965 | case SPIRV::OpGroupNonUniformSMin: |
966 | case SPIRV::OpGroupNonUniformShuffle: |
967 | case SPIRV::OpGroupNonUniformShuffleDown: |
968 | case SPIRV::OpGroupNonUniformShuffleUp: |
969 | case SPIRV::OpGroupNonUniformShuffleXor: |
970 | case SPIRV::OpGroupNonUniformUMax: |
971 | case SPIRV::OpGroupNonUniformUMin: |
972 | case SPIRV::OpGroupSMax: |
973 | case SPIRV::OpGroupSMin: |
974 | case SPIRV::OpGroupUMax: |
975 | case SPIRV::OpGroupUMin: |
976 | case SPIRV::OpGroupWaitEvents: |
977 | case SPIRV::OpIAddCarryS: |
978 | case SPIRV::OpIAddCarryV: |
979 | case SPIRV::OpIAddS: |
980 | case SPIRV::OpIAddV: |
981 | case SPIRV::OpIEqual: |
982 | case SPIRV::OpIMulS: |
983 | case SPIRV::OpIMulV: |
984 | case SPIRV::OpINotEqual: |
985 | case SPIRV::OpISubBorrowS: |
986 | case SPIRV::OpISubBorrowV: |
987 | case SPIRV::OpISubS: |
988 | case SPIRV::OpISubV: |
989 | case SPIRV::OpImage: |
990 | case SPIRV::OpImageDrefGather: |
991 | case SPIRV::OpImageFetch: |
992 | case SPIRV::OpImageGather: |
993 | case SPIRV::OpImageQueryFormat: |
994 | case SPIRV::OpImageQueryLevels: |
995 | case SPIRV::OpImageQueryLod: |
996 | case SPIRV::OpImageQueryOrder: |
997 | case SPIRV::OpImageQuerySamples: |
998 | case SPIRV::OpImageQuerySize: |
999 | case SPIRV::OpImageQuerySizeLod: |
1000 | case SPIRV::OpImageRead: |
1001 | case SPIRV::OpImageSampleDrefExplicitLod: |
1002 | case SPIRV::OpImageSampleDrefImplicitLod: |
1003 | case SPIRV::OpImageSampleExplicitLod: |
1004 | case SPIRV::OpImageSampleFootprintNV: |
1005 | case SPIRV::OpImageSampleImplicitLod: |
1006 | case SPIRV::OpImageSampleProjDrefExplicitLod: |
1007 | case SPIRV::OpImageSampleProjDrefImplicitLod: |
1008 | case SPIRV::OpImageSampleProjExplicitLod: |
1009 | case SPIRV::OpImageSampleProjImplicitLod: |
1010 | case SPIRV::OpImageSparseDrefGather: |
1011 | case SPIRV::OpImageSparseFetch: |
1012 | case SPIRV::OpImageSparseGather: |
1013 | case SPIRV::OpImageSparseRead: |
1014 | case SPIRV::OpImageSparseSampleDrefExplicitLod: |
1015 | case SPIRV::OpImageSparseSampleDrefImplicitLod: |
1016 | case SPIRV::OpImageSparseSampleExplicitLod: |
1017 | case SPIRV::OpImageSparseSampleImplicitLod: |
1018 | case SPIRV::OpImageSparseSampleProjDrefExplicitLod: |
1019 | case SPIRV::OpImageSparseSampleProjDrefImplicitLod: |
1020 | case SPIRV::OpImageSparseSampleProjExplicitLod: |
1021 | case SPIRV::OpImageSparseSampleProjImplicitLod: |
1022 | case SPIRV::OpImageSparseTexelsResident: |
1023 | case SPIRV::OpImageTexelPointer: |
1024 | case SPIRV::OpImageWrite: |
1025 | case SPIRV::OpInBoundsAccessChain: |
1026 | case SPIRV::OpInBoundsPtrAccessChain: |
1027 | case SPIRV::OpIsFinite: |
1028 | case SPIRV::OpIsInf: |
1029 | case SPIRV::OpIsNan: |
1030 | case SPIRV::OpIsNormal: |
1031 | case SPIRV::OpIsValidEvent: |
1032 | case SPIRV::OpKill: |
1033 | case SPIRV::OpLabel: |
1034 | case SPIRV::OpLessOrGreater: |
1035 | case SPIRV::OpLifetimeStart: |
1036 | case SPIRV::OpLifetimeStop: |
1037 | case SPIRV::OpLine: |
1038 | case SPIRV::OpLoad: |
1039 | case SPIRV::OpLogicalAnd: |
1040 | case SPIRV::OpLogicalEqual: |
1041 | case SPIRV::OpLogicalNot: |
1042 | case SPIRV::OpLogicalNotEqual: |
1043 | case SPIRV::OpLogicalOr: |
1044 | case SPIRV::OpLoopMerge: |
1045 | case SPIRV::OpMatrixTimesMatrix: |
1046 | case SPIRV::OpMatrixTimesScalar: |
1047 | case SPIRV::OpMatrixTimesVector: |
1048 | case SPIRV::OpMemberDecorate: |
1049 | case SPIRV::OpMemberDecorateString: |
1050 | case SPIRV::OpMemberName: |
1051 | case SPIRV::OpMemoryBarrier: |
1052 | case SPIRV::OpMemoryModel: |
1053 | case SPIRV::OpMemoryNamedBarrier: |
1054 | case SPIRV::OpModuleProcessed: |
1055 | case SPIRV::OpName: |
1056 | case SPIRV::OpNamedBarrierInitialize: |
1057 | case SPIRV::OpNoLine: |
1058 | case SPIRV::OpNop: |
1059 | case SPIRV::OpNot: |
1060 | case SPIRV::OpOrdered: |
1061 | case SPIRV::OpOuterProduct: |
1062 | case SPIRV::OpPhi: |
1063 | case SPIRV::OpPtrAccessChain: |
1064 | case SPIRV::OpPtrCastToCrossWorkgroupINTEL: |
1065 | case SPIRV::OpPtrCastToGeneric: |
1066 | case SPIRV::OpPtrDiff: |
1067 | case SPIRV::OpPtrEqual: |
1068 | case SPIRV::OpPtrNotEqual: |
1069 | case SPIRV::OpQuantizeToF16: |
1070 | case SPIRV::OpReadClockKHR: |
1071 | case SPIRV::OpReleaseEvent: |
1072 | case SPIRV::OpRestoreMemoryINTEL: |
1073 | case SPIRV::OpRetainEvent: |
1074 | case SPIRV::OpReturn: |
1075 | case SPIRV::OpReturnValue: |
1076 | case SPIRV::OpSConvert: |
1077 | case SPIRV::OpSDivS: |
1078 | case SPIRV::OpSDivV: |
1079 | case SPIRV::OpSDot: |
1080 | case SPIRV::OpSDotAccSat: |
1081 | case SPIRV::OpSGreaterThan: |
1082 | case SPIRV::OpSGreaterThanEqual: |
1083 | case SPIRV::OpSLessThan: |
1084 | case SPIRV::OpSLessThanEqual: |
1085 | case SPIRV::OpSMod: |
1086 | case SPIRV::OpSMulExtended: |
1087 | case SPIRV::OpSNegate: |
1088 | case SPIRV::OpSRemS: |
1089 | case SPIRV::OpSRemV: |
1090 | case SPIRV::OpSUDot: |
1091 | case SPIRV::OpSUDotAccSat: |
1092 | case SPIRV::OpSampledImage: |
1093 | case SPIRV::OpSatConvertSToU: |
1094 | case SPIRV::OpSatConvertUToS: |
1095 | case SPIRV::OpSaveMemoryINTEL: |
1096 | case SPIRV::OpSelectSFSCond: |
1097 | case SPIRV::OpSelectSFVCond: |
1098 | case SPIRV::OpSelectSISCond: |
1099 | case SPIRV::OpSelectSIVCond: |
1100 | case SPIRV::OpSelectSPSCond: |
1101 | case SPIRV::OpSelectSPVCond: |
1102 | case SPIRV::OpSelectVFSCond: |
1103 | case SPIRV::OpSelectVFVCond: |
1104 | case SPIRV::OpSelectVISCond: |
1105 | case SPIRV::OpSelectVIVCond: |
1106 | case SPIRV::OpSelectVPSCond: |
1107 | case SPIRV::OpSelectVPVCond: |
1108 | case SPIRV::OpSelectionMerge: |
1109 | case SPIRV::OpSetUserEventStatus: |
1110 | case SPIRV::OpShiftLeftLogicalS: |
1111 | case SPIRV::OpShiftLeftLogicalV: |
1112 | case SPIRV::OpShiftRightArithmeticS: |
1113 | case SPIRV::OpShiftRightArithmeticV: |
1114 | case SPIRV::OpShiftRightLogicalS: |
1115 | case SPIRV::OpShiftRightLogicalV: |
1116 | case SPIRV::OpSignBitSet: |
1117 | case SPIRV::OpSizeOf: |
1118 | case SPIRV::OpSource: |
1119 | case SPIRV::OpSourceContinued: |
1120 | case SPIRV::OpSourceExtension: |
1121 | case SPIRV::OpSpecConstant: |
1122 | case SPIRV::OpSpecConstantComposite: |
1123 | case SPIRV::OpSpecConstantCompositeContinuedINTEL: |
1124 | case SPIRV::OpSpecConstantFalse: |
1125 | case SPIRV::OpSpecConstantOp: |
1126 | case SPIRV::OpSpecConstantTrue: |
1127 | case SPIRV::OpStore: |
1128 | case SPIRV::OpStrictFAddS: |
1129 | case SPIRV::OpStrictFAddV: |
1130 | case SPIRV::OpStrictFDivS: |
1131 | case SPIRV::OpStrictFDivV: |
1132 | case SPIRV::OpStrictFMulS: |
1133 | case SPIRV::OpStrictFMulV: |
1134 | case SPIRV::OpStrictFRemS: |
1135 | case SPIRV::OpStrictFRemV: |
1136 | case SPIRV::OpStrictFSubS: |
1137 | case SPIRV::OpStrictFSubV: |
1138 | case SPIRV::OpString: |
1139 | case SPIRV::OpSubgroup2DBlockLoadINTEL: |
1140 | case SPIRV::OpSubgroup2DBlockLoadTransformINTEL: |
1141 | case SPIRV::OpSubgroup2DBlockLoadTransposeINTEL: |
1142 | case SPIRV::OpSubgroup2DBlockPrefetchINTEL: |
1143 | case SPIRV::OpSubgroup2DBlockStoreINTEL: |
1144 | case SPIRV::OpSubgroupBlockReadINTEL: |
1145 | case SPIRV::OpSubgroupBlockWriteINTEL: |
1146 | case SPIRV::OpSubgroupImageBlockReadINTEL: |
1147 | case SPIRV::OpSubgroupImageBlockWriteINTEL: |
1148 | case SPIRV::OpSubgroupImageMediaBlockReadINTEL: |
1149 | case SPIRV::OpSubgroupImageMediaBlockWriteINTEL: |
1150 | case SPIRV::OpSubgroupMatrixMultiplyAccumulateINTEL: |
1151 | case SPIRV::OpSubgroupShuffleDownINTEL: |
1152 | case SPIRV::OpSubgroupShuffleINTEL: |
1153 | case SPIRV::OpSubgroupShuffleUpINTEL: |
1154 | case SPIRV::OpSubgroupShuffleXorINTEL: |
1155 | case SPIRV::OpSwitch: |
1156 | case SPIRV::OpTranspose: |
1157 | case SPIRV::OpTypeAccelerationStructureNV: |
1158 | case SPIRV::OpTypeArray: |
1159 | case SPIRV::OpTypeBool: |
1160 | case SPIRV::OpTypeCooperativeMatrixKHR: |
1161 | case SPIRV::OpTypeCooperativeMatrixNV: |
1162 | case SPIRV::OpTypeDeviceEvent: |
1163 | case SPIRV::OpTypeEvent: |
1164 | case SPIRV::OpTypeFloat: |
1165 | case SPIRV::OpTypeForwardPointer: |
1166 | case SPIRV::OpTypeFunction: |
1167 | case SPIRV::OpTypeImage: |
1168 | case SPIRV::OpTypeInt: |
1169 | case SPIRV::OpTypeMatrix: |
1170 | case SPIRV::OpTypeNamedBarrier: |
1171 | case SPIRV::OpTypeOpaque: |
1172 | case SPIRV::OpTypePipe: |
1173 | case SPIRV::OpTypePipeStorage: |
1174 | case SPIRV::OpTypePointer: |
1175 | case SPIRV::OpTypeQueue: |
1176 | case SPIRV::OpTypeReserveId: |
1177 | case SPIRV::OpTypeRuntimeArray: |
1178 | case SPIRV::OpTypeSampledImage: |
1179 | case SPIRV::OpTypeSampler: |
1180 | case SPIRV::OpTypeStruct: |
1181 | case SPIRV::OpTypeStructContinuedINTEL: |
1182 | case SPIRV::OpTypeVector: |
1183 | case SPIRV::OpTypeVoid: |
1184 | case SPIRV::OpUConvert: |
1185 | case SPIRV::OpUDivS: |
1186 | case SPIRV::OpUDivV: |
1187 | case SPIRV::OpUDot: |
1188 | case SPIRV::OpUDotAccSat: |
1189 | case SPIRV::OpUGreaterThan: |
1190 | case SPIRV::OpUGreaterThanEqual: |
1191 | case SPIRV::OpULessThan: |
1192 | case SPIRV::OpULessThanEqual: |
1193 | case SPIRV::OpUModS: |
1194 | case SPIRV::OpUModV: |
1195 | case SPIRV::OpUMulExtended: |
1196 | case SPIRV::OpUndef: |
1197 | case SPIRV::OpUnordered: |
1198 | case SPIRV::OpUnreachable: |
1199 | case SPIRV::OpVariable: |
1200 | case SPIRV::OpVariableLengthArrayINTEL: |
1201 | case SPIRV::OpVectorExtractDynamic: |
1202 | case SPIRV::OpVectorInsertDynamic: |
1203 | case SPIRV::OpVectorShuffle: |
1204 | case SPIRV::OpVectorTimesMatrix: |
1205 | case SPIRV::OpVectorTimesScalar: { |
1206 | break; |
1207 | } |
1208 | default: |
1209 | std::string msg; |
1210 | raw_string_ostream Msg(msg); |
1211 | Msg << "Not supported instr: " << MI; |
1212 | report_fatal_error(reason: Msg.str().c_str()); |
1213 | } |
1214 | return Value; |
1215 | } |
1216 | |
1217 | #ifdef GET_OPERAND_BIT_OFFSET |
1218 | #undef GET_OPERAND_BIT_OFFSET |
1219 | |
1220 | uint32_t SPIRVMCCodeEmitter::getOperandBitOffset(const MCInst &MI, |
1221 | unsigned OpNum, |
1222 | const MCSubtargetInfo &STI) const { |
1223 | switch (MI.getOpcode()) { |
1224 | case SPIRV::OpAccessChain: |
1225 | case SPIRV::OpAliasDomainDeclINTEL: |
1226 | case SPIRV::OpAliasScopeDeclINTEL: |
1227 | case SPIRV::OpAliasScopeListDeclINTEL: |
1228 | case SPIRV::OpAll: |
1229 | case SPIRV::OpAny: |
1230 | case SPIRV::OpArithmeticFenceEXT: |
1231 | case SPIRV::OpArrayLength: |
1232 | case SPIRV::OpAsmCallINTEL: |
1233 | case SPIRV::OpAsmINTEL: |
1234 | case SPIRV::OpAsmTargetINTEL: |
1235 | case SPIRV::OpAssumeTrueKHR: |
1236 | case SPIRV::OpAtomicAnd: |
1237 | case SPIRV::OpAtomicCompareExchange: |
1238 | case SPIRV::OpAtomicCompareExchangeWeak: |
1239 | case SPIRV::OpAtomicExchange: |
1240 | case SPIRV::OpAtomicFAddEXT: |
1241 | case SPIRV::OpAtomicFMaxEXT: |
1242 | case SPIRV::OpAtomicFMinEXT: |
1243 | case SPIRV::OpAtomicFlagClear: |
1244 | case SPIRV::OpAtomicFlagTestAndSet: |
1245 | case SPIRV::OpAtomicIAdd: |
1246 | case SPIRV::OpAtomicIDecrement: |
1247 | case SPIRV::OpAtomicIIncrement: |
1248 | case SPIRV::OpAtomicISub: |
1249 | case SPIRV::OpAtomicLoad: |
1250 | case SPIRV::OpAtomicOr: |
1251 | case SPIRV::OpAtomicSMax: |
1252 | case SPIRV::OpAtomicSMin: |
1253 | case SPIRV::OpAtomicStore: |
1254 | case SPIRV::OpAtomicUMax: |
1255 | case SPIRV::OpAtomicUMin: |
1256 | case SPIRV::OpAtomicXor: |
1257 | case SPIRV::OpBitCount: |
1258 | case SPIRV::OpBitFieldInsert: |
1259 | case SPIRV::OpBitFieldSExtract: |
1260 | case SPIRV::OpBitFieldUExtract: |
1261 | case SPIRV::OpBitReverse: |
1262 | case SPIRV::OpBitcast: |
1263 | case SPIRV::OpBitwiseAndS: |
1264 | case SPIRV::OpBitwiseAndV: |
1265 | case SPIRV::OpBitwiseFunctionINTEL: |
1266 | case SPIRV::OpBitwiseOrS: |
1267 | case SPIRV::OpBitwiseOrV: |
1268 | case SPIRV::OpBitwiseXorS: |
1269 | case SPIRV::OpBitwiseXorV: |
1270 | case SPIRV::OpBranch: |
1271 | case SPIRV::OpBranchConditional: |
1272 | case SPIRV::OpBuildNDRange: |
1273 | case SPIRV::OpCapability: |
1274 | case SPIRV::OpCaptureEventProfilingInfo: |
1275 | case SPIRV::OpCompositeConstruct: |
1276 | case SPIRV::OpCompositeConstructContinuedINTEL: |
1277 | case SPIRV::OpCompositeExtract: |
1278 | case SPIRV::OpCompositeInsert: |
1279 | case SPIRV::OpConstantComposite: |
1280 | case SPIRV::OpConstantCompositeContinuedINTEL: |
1281 | case SPIRV::OpConstantF: |
1282 | case SPIRV::OpConstantFalse: |
1283 | case SPIRV::OpConstantFunctionPointerINTEL: |
1284 | case SPIRV::OpConstantI: |
1285 | case SPIRV::OpConstantNull: |
1286 | case SPIRV::OpConstantSampler: |
1287 | case SPIRV::OpConstantTrue: |
1288 | case SPIRV::OpControlBarrier: |
1289 | case SPIRV::OpControlBarrierArriveINTEL: |
1290 | case SPIRV::OpControlBarrierWaitINTEL: |
1291 | case SPIRV::OpConvertBF16ToFINTEL: |
1292 | case SPIRV::OpConvertFToBF16INTEL: |
1293 | case SPIRV::OpConvertFToS: |
1294 | case SPIRV::OpConvertFToU: |
1295 | case SPIRV::OpConvertHandleToImageINTEL: |
1296 | case SPIRV::OpConvertHandleToSampledImageINTEL: |
1297 | case SPIRV::OpConvertHandleToSamplerINTEL: |
1298 | case SPIRV::OpConvertPtrToU: |
1299 | case SPIRV::OpConvertSToF: |
1300 | case SPIRV::OpConvertUToF: |
1301 | case SPIRV::OpConvertUToPtr: |
1302 | case SPIRV::OpCooperativeMatrixConstructCheckedINTEL: |
1303 | case SPIRV::OpCooperativeMatrixGetElementCoordINTEL: |
1304 | case SPIRV::OpCooperativeMatrixLengthKHR: |
1305 | case SPIRV::OpCooperativeMatrixLoadCheckedINTEL: |
1306 | case SPIRV::OpCooperativeMatrixLoadKHR: |
1307 | case SPIRV::OpCooperativeMatrixMulAddKHR: |
1308 | case SPIRV::OpCooperativeMatrixPrefetchINTEL: |
1309 | case SPIRV::OpCooperativeMatrixStoreCheckedINTEL: |
1310 | case SPIRV::OpCooperativeMatrixStoreKHR: |
1311 | case SPIRV::OpCopyLogical: |
1312 | case SPIRV::OpCopyMemory: |
1313 | case SPIRV::OpCopyMemorySized: |
1314 | case SPIRV::OpCopyObject: |
1315 | case SPIRV::OpCreateUserEvent: |
1316 | case SPIRV::OpCrossWorkgroupCastToPtrINTEL: |
1317 | case SPIRV::OpDPdx: |
1318 | case SPIRV::OpDPdxCoarse: |
1319 | case SPIRV::OpDPdxFine: |
1320 | case SPIRV::OpDPdy: |
1321 | case SPIRV::OpDPdyCoarse: |
1322 | case SPIRV::OpDPdyFine: |
1323 | case SPIRV::OpDecorate: |
1324 | case SPIRV::OpDecorateId: |
1325 | case SPIRV::OpDecorateString: |
1326 | case SPIRV::OpDemoteToHelperInvocation: |
1327 | case SPIRV::OpDot: |
1328 | case SPIRV::OpEmitStreamVertex: |
1329 | case SPIRV::OpEmitVertex: |
1330 | case SPIRV::OpEndPrimitive: |
1331 | case SPIRV::OpEndStreamPrimitive: |
1332 | case SPIRV::OpEnqueueKernel: |
1333 | case SPIRV::OpEntryPoint: |
1334 | case SPIRV::OpExecutionMode: |
1335 | case SPIRV::OpExecutionModeId: |
1336 | case SPIRV::OpExpectKHR: |
1337 | case SPIRV::OpExtInst: |
1338 | case SPIRV::OpExtInstImport: |
1339 | case SPIRV::OpExtension: |
1340 | case SPIRV::OpFAddS: |
1341 | case SPIRV::OpFAddV: |
1342 | case SPIRV::OpFConvert: |
1343 | case SPIRV::OpFDivS: |
1344 | case SPIRV::OpFDivV: |
1345 | case SPIRV::OpFMod: |
1346 | case SPIRV::OpFMulS: |
1347 | case SPIRV::OpFMulV: |
1348 | case SPIRV::OpFNegate: |
1349 | case SPIRV::OpFNegateV: |
1350 | case SPIRV::OpFOrdEqual: |
1351 | case SPIRV::OpFOrdGreaterThan: |
1352 | case SPIRV::OpFOrdGreaterThanEqual: |
1353 | case SPIRV::OpFOrdLessThan: |
1354 | case SPIRV::OpFOrdLessThanEqual: |
1355 | case SPIRV::OpFOrdNotEqual: |
1356 | case SPIRV::OpFRemS: |
1357 | case SPIRV::OpFRemV: |
1358 | case SPIRV::OpFSubS: |
1359 | case SPIRV::OpFSubV: |
1360 | case SPIRV::OpFUnordEqual: |
1361 | case SPIRV::OpFUnordGreaterThan: |
1362 | case SPIRV::OpFUnordGreaterThanEqual: |
1363 | case SPIRV::OpFUnordLessThan: |
1364 | case SPIRV::OpFUnordLessThanEqual: |
1365 | case SPIRV::OpFUnordNotEqual: |
1366 | case SPIRV::OpFunction: |
1367 | case SPIRV::OpFunctionCall: |
1368 | case SPIRV::OpFunctionEnd: |
1369 | case SPIRV::OpFunctionParameter: |
1370 | case SPIRV::OpFunctionPointerCallINTEL: |
1371 | case SPIRV::OpFwidth: |
1372 | case SPIRV::OpFwidthCoarse: |
1373 | case SPIRV::OpFwidthFine: |
1374 | case SPIRV::OpGenericCastToPtr: |
1375 | case SPIRV::OpGenericCastToPtrExplicit: |
1376 | case SPIRV::OpGenericPtrMemSemantics: |
1377 | case SPIRV::OpGetDefaultQueue: |
1378 | case SPIRV::OpGroupAll: |
1379 | case SPIRV::OpGroupAny: |
1380 | case SPIRV::OpGroupAsyncCopy: |
1381 | case SPIRV::OpGroupBitwiseAndKHR: |
1382 | case SPIRV::OpGroupBitwiseOrKHR: |
1383 | case SPIRV::OpGroupBitwiseXorKHR: |
1384 | case SPIRV::OpGroupBroadcast: |
1385 | case SPIRV::OpGroupFAdd: |
1386 | case SPIRV::OpGroupFMax: |
1387 | case SPIRV::OpGroupFMin: |
1388 | case SPIRV::OpGroupFMulKHR: |
1389 | case SPIRV::OpGroupIAdd: |
1390 | case SPIRV::OpGroupIMulKHR: |
1391 | case SPIRV::OpGroupLogicalAndKHR: |
1392 | case SPIRV::OpGroupLogicalOrKHR: |
1393 | case SPIRV::OpGroupLogicalXorKHR: |
1394 | case SPIRV::OpGroupNonUniformAll: |
1395 | case SPIRV::OpGroupNonUniformAllEqual: |
1396 | case SPIRV::OpGroupNonUniformAny: |
1397 | case SPIRV::OpGroupNonUniformBallot: |
1398 | case SPIRV::OpGroupNonUniformBallotBitCount: |
1399 | case SPIRV::OpGroupNonUniformBallotBitExtract: |
1400 | case SPIRV::OpGroupNonUniformBallotFindLSB: |
1401 | case SPIRV::OpGroupNonUniformBallotFindMSB: |
1402 | case SPIRV::OpGroupNonUniformBitwiseAnd: |
1403 | case SPIRV::OpGroupNonUniformBitwiseOr: |
1404 | case SPIRV::OpGroupNonUniformBitwiseXor: |
1405 | case SPIRV::OpGroupNonUniformBroadcast: |
1406 | case SPIRV::OpGroupNonUniformBroadcastFirst: |
1407 | case SPIRV::OpGroupNonUniformElect: |
1408 | case SPIRV::OpGroupNonUniformFAdd: |
1409 | case SPIRV::OpGroupNonUniformFMax: |
1410 | case SPIRV::OpGroupNonUniformFMin: |
1411 | case SPIRV::OpGroupNonUniformFMul: |
1412 | case SPIRV::OpGroupNonUniformIAdd: |
1413 | case SPIRV::OpGroupNonUniformIMul: |
1414 | case SPIRV::OpGroupNonUniformInverseBallot: |
1415 | case SPIRV::OpGroupNonUniformLogicalAnd: |
1416 | case SPIRV::OpGroupNonUniformLogicalOr: |
1417 | case SPIRV::OpGroupNonUniformLogicalXor: |
1418 | case SPIRV::OpGroupNonUniformRotateKHR: |
1419 | case SPIRV::OpGroupNonUniformSMax: |
1420 | case SPIRV::OpGroupNonUniformSMin: |
1421 | case SPIRV::OpGroupNonUniformShuffle: |
1422 | case SPIRV::OpGroupNonUniformShuffleDown: |
1423 | case SPIRV::OpGroupNonUniformShuffleUp: |
1424 | case SPIRV::OpGroupNonUniformShuffleXor: |
1425 | case SPIRV::OpGroupNonUniformUMax: |
1426 | case SPIRV::OpGroupNonUniformUMin: |
1427 | case SPIRV::OpGroupSMax: |
1428 | case SPIRV::OpGroupSMin: |
1429 | case SPIRV::OpGroupUMax: |
1430 | case SPIRV::OpGroupUMin: |
1431 | case SPIRV::OpGroupWaitEvents: |
1432 | case SPIRV::OpIAddCarryS: |
1433 | case SPIRV::OpIAddCarryV: |
1434 | case SPIRV::OpIAddS: |
1435 | case SPIRV::OpIAddV: |
1436 | case SPIRV::OpIEqual: |
1437 | case SPIRV::OpIMulS: |
1438 | case SPIRV::OpIMulV: |
1439 | case SPIRV::OpINotEqual: |
1440 | case SPIRV::OpISubBorrowS: |
1441 | case SPIRV::OpISubBorrowV: |
1442 | case SPIRV::OpISubS: |
1443 | case SPIRV::OpISubV: |
1444 | case SPIRV::OpImage: |
1445 | case SPIRV::OpImageDrefGather: |
1446 | case SPIRV::OpImageFetch: |
1447 | case SPIRV::OpImageGather: |
1448 | case SPIRV::OpImageQueryFormat: |
1449 | case SPIRV::OpImageQueryLevels: |
1450 | case SPIRV::OpImageQueryLod: |
1451 | case SPIRV::OpImageQueryOrder: |
1452 | case SPIRV::OpImageQuerySamples: |
1453 | case SPIRV::OpImageQuerySize: |
1454 | case SPIRV::OpImageQuerySizeLod: |
1455 | case SPIRV::OpImageRead: |
1456 | case SPIRV::OpImageSampleDrefExplicitLod: |
1457 | case SPIRV::OpImageSampleDrefImplicitLod: |
1458 | case SPIRV::OpImageSampleExplicitLod: |
1459 | case SPIRV::OpImageSampleFootprintNV: |
1460 | case SPIRV::OpImageSampleImplicitLod: |
1461 | case SPIRV::OpImageSampleProjDrefExplicitLod: |
1462 | case SPIRV::OpImageSampleProjDrefImplicitLod: |
1463 | case SPIRV::OpImageSampleProjExplicitLod: |
1464 | case SPIRV::OpImageSampleProjImplicitLod: |
1465 | case SPIRV::OpImageSparseDrefGather: |
1466 | case SPIRV::OpImageSparseFetch: |
1467 | case SPIRV::OpImageSparseGather: |
1468 | case SPIRV::OpImageSparseRead: |
1469 | case SPIRV::OpImageSparseSampleDrefExplicitLod: |
1470 | case SPIRV::OpImageSparseSampleDrefImplicitLod: |
1471 | case SPIRV::OpImageSparseSampleExplicitLod: |
1472 | case SPIRV::OpImageSparseSampleImplicitLod: |
1473 | case SPIRV::OpImageSparseSampleProjDrefExplicitLod: |
1474 | case SPIRV::OpImageSparseSampleProjDrefImplicitLod: |
1475 | case SPIRV::OpImageSparseSampleProjExplicitLod: |
1476 | case SPIRV::OpImageSparseSampleProjImplicitLod: |
1477 | case SPIRV::OpImageSparseTexelsResident: |
1478 | case SPIRV::OpImageTexelPointer: |
1479 | case SPIRV::OpImageWrite: |
1480 | case SPIRV::OpInBoundsAccessChain: |
1481 | case SPIRV::OpInBoundsPtrAccessChain: |
1482 | case SPIRV::OpIsFinite: |
1483 | case SPIRV::OpIsInf: |
1484 | case SPIRV::OpIsNan: |
1485 | case SPIRV::OpIsNormal: |
1486 | case SPIRV::OpIsValidEvent: |
1487 | case SPIRV::OpKill: |
1488 | case SPIRV::OpLabel: |
1489 | case SPIRV::OpLessOrGreater: |
1490 | case SPIRV::OpLifetimeStart: |
1491 | case SPIRV::OpLifetimeStop: |
1492 | case SPIRV::OpLine: |
1493 | case SPIRV::OpLoad: |
1494 | case SPIRV::OpLogicalAnd: |
1495 | case SPIRV::OpLogicalEqual: |
1496 | case SPIRV::OpLogicalNot: |
1497 | case SPIRV::OpLogicalNotEqual: |
1498 | case SPIRV::OpLogicalOr: |
1499 | case SPIRV::OpLoopMerge: |
1500 | case SPIRV::OpMatrixTimesMatrix: |
1501 | case SPIRV::OpMatrixTimesScalar: |
1502 | case SPIRV::OpMatrixTimesVector: |
1503 | case SPIRV::OpMemberDecorate: |
1504 | case SPIRV::OpMemberDecorateString: |
1505 | case SPIRV::OpMemberName: |
1506 | case SPIRV::OpMemoryBarrier: |
1507 | case SPIRV::OpMemoryModel: |
1508 | case SPIRV::OpMemoryNamedBarrier: |
1509 | case SPIRV::OpModuleProcessed: |
1510 | case SPIRV::OpName: |
1511 | case SPIRV::OpNamedBarrierInitialize: |
1512 | case SPIRV::OpNoLine: |
1513 | case SPIRV::OpNop: |
1514 | case SPIRV::OpNot: |
1515 | case SPIRV::OpOrdered: |
1516 | case SPIRV::OpOuterProduct: |
1517 | case SPIRV::OpPhi: |
1518 | case SPIRV::OpPtrAccessChain: |
1519 | case SPIRV::OpPtrCastToCrossWorkgroupINTEL: |
1520 | case SPIRV::OpPtrCastToGeneric: |
1521 | case SPIRV::OpPtrDiff: |
1522 | case SPIRV::OpPtrEqual: |
1523 | case SPIRV::OpPtrNotEqual: |
1524 | case SPIRV::OpQuantizeToF16: |
1525 | case SPIRV::OpReadClockKHR: |
1526 | case SPIRV::OpReleaseEvent: |
1527 | case SPIRV::OpRestoreMemoryINTEL: |
1528 | case SPIRV::OpRetainEvent: |
1529 | case SPIRV::OpReturn: |
1530 | case SPIRV::OpReturnValue: |
1531 | case SPIRV::OpSConvert: |
1532 | case SPIRV::OpSDivS: |
1533 | case SPIRV::OpSDivV: |
1534 | case SPIRV::OpSDot: |
1535 | case SPIRV::OpSDotAccSat: |
1536 | case SPIRV::OpSGreaterThan: |
1537 | case SPIRV::OpSGreaterThanEqual: |
1538 | case SPIRV::OpSLessThan: |
1539 | case SPIRV::OpSLessThanEqual: |
1540 | case SPIRV::OpSMod: |
1541 | case SPIRV::OpSMulExtended: |
1542 | case SPIRV::OpSNegate: |
1543 | case SPIRV::OpSRemS: |
1544 | case SPIRV::OpSRemV: |
1545 | case SPIRV::OpSUDot: |
1546 | case SPIRV::OpSUDotAccSat: |
1547 | case SPIRV::OpSampledImage: |
1548 | case SPIRV::OpSatConvertSToU: |
1549 | case SPIRV::OpSatConvertUToS: |
1550 | case SPIRV::OpSaveMemoryINTEL: |
1551 | case SPIRV::OpSelectSFSCond: |
1552 | case SPIRV::OpSelectSFVCond: |
1553 | case SPIRV::OpSelectSISCond: |
1554 | case SPIRV::OpSelectSIVCond: |
1555 | case SPIRV::OpSelectSPSCond: |
1556 | case SPIRV::OpSelectSPVCond: |
1557 | case SPIRV::OpSelectVFSCond: |
1558 | case SPIRV::OpSelectVFVCond: |
1559 | case SPIRV::OpSelectVISCond: |
1560 | case SPIRV::OpSelectVIVCond: |
1561 | case SPIRV::OpSelectVPSCond: |
1562 | case SPIRV::OpSelectVPVCond: |
1563 | case SPIRV::OpSelectionMerge: |
1564 | case SPIRV::OpSetUserEventStatus: |
1565 | case SPIRV::OpShiftLeftLogicalS: |
1566 | case SPIRV::OpShiftLeftLogicalV: |
1567 | case SPIRV::OpShiftRightArithmeticS: |
1568 | case SPIRV::OpShiftRightArithmeticV: |
1569 | case SPIRV::OpShiftRightLogicalS: |
1570 | case SPIRV::OpShiftRightLogicalV: |
1571 | case SPIRV::OpSignBitSet: |
1572 | case SPIRV::OpSizeOf: |
1573 | case SPIRV::OpSource: |
1574 | case SPIRV::OpSourceContinued: |
1575 | case SPIRV::OpSourceExtension: |
1576 | case SPIRV::OpSpecConstant: |
1577 | case SPIRV::OpSpecConstantComposite: |
1578 | case SPIRV::OpSpecConstantCompositeContinuedINTEL: |
1579 | case SPIRV::OpSpecConstantFalse: |
1580 | case SPIRV::OpSpecConstantOp: |
1581 | case SPIRV::OpSpecConstantTrue: |
1582 | case SPIRV::OpStore: |
1583 | case SPIRV::OpStrictFAddS: |
1584 | case SPIRV::OpStrictFAddV: |
1585 | case SPIRV::OpStrictFDivS: |
1586 | case SPIRV::OpStrictFDivV: |
1587 | case SPIRV::OpStrictFMulS: |
1588 | case SPIRV::OpStrictFMulV: |
1589 | case SPIRV::OpStrictFRemS: |
1590 | case SPIRV::OpStrictFRemV: |
1591 | case SPIRV::OpStrictFSubS: |
1592 | case SPIRV::OpStrictFSubV: |
1593 | case SPIRV::OpString: |
1594 | case SPIRV::OpSubgroup2DBlockLoadINTEL: |
1595 | case SPIRV::OpSubgroup2DBlockLoadTransformINTEL: |
1596 | case SPIRV::OpSubgroup2DBlockLoadTransposeINTEL: |
1597 | case SPIRV::OpSubgroup2DBlockPrefetchINTEL: |
1598 | case SPIRV::OpSubgroup2DBlockStoreINTEL: |
1599 | case SPIRV::OpSubgroupBlockReadINTEL: |
1600 | case SPIRV::OpSubgroupBlockWriteINTEL: |
1601 | case SPIRV::OpSubgroupImageBlockReadINTEL: |
1602 | case SPIRV::OpSubgroupImageBlockWriteINTEL: |
1603 | case SPIRV::OpSubgroupImageMediaBlockReadINTEL: |
1604 | case SPIRV::OpSubgroupImageMediaBlockWriteINTEL: |
1605 | case SPIRV::OpSubgroupMatrixMultiplyAccumulateINTEL: |
1606 | case SPIRV::OpSubgroupShuffleDownINTEL: |
1607 | case SPIRV::OpSubgroupShuffleINTEL: |
1608 | case SPIRV::OpSubgroupShuffleUpINTEL: |
1609 | case SPIRV::OpSubgroupShuffleXorINTEL: |
1610 | case SPIRV::OpSwitch: |
1611 | case SPIRV::OpTranspose: |
1612 | case SPIRV::OpTypeAccelerationStructureNV: |
1613 | case SPIRV::OpTypeArray: |
1614 | case SPIRV::OpTypeBool: |
1615 | case SPIRV::OpTypeCooperativeMatrixKHR: |
1616 | case SPIRV::OpTypeCooperativeMatrixNV: |
1617 | case SPIRV::OpTypeDeviceEvent: |
1618 | case SPIRV::OpTypeEvent: |
1619 | case SPIRV::OpTypeFloat: |
1620 | case SPIRV::OpTypeForwardPointer: |
1621 | case SPIRV::OpTypeFunction: |
1622 | case SPIRV::OpTypeImage: |
1623 | case SPIRV::OpTypeInt: |
1624 | case SPIRV::OpTypeMatrix: |
1625 | case SPIRV::OpTypeNamedBarrier: |
1626 | case SPIRV::OpTypeOpaque: |
1627 | case SPIRV::OpTypePipe: |
1628 | case SPIRV::OpTypePipeStorage: |
1629 | case SPIRV::OpTypePointer: |
1630 | case SPIRV::OpTypeQueue: |
1631 | case SPIRV::OpTypeReserveId: |
1632 | case SPIRV::OpTypeRuntimeArray: |
1633 | case SPIRV::OpTypeSampledImage: |
1634 | case SPIRV::OpTypeSampler: |
1635 | case SPIRV::OpTypeStruct: |
1636 | case SPIRV::OpTypeStructContinuedINTEL: |
1637 | case SPIRV::OpTypeVector: |
1638 | case SPIRV::OpTypeVoid: |
1639 | case SPIRV::OpUConvert: |
1640 | case SPIRV::OpUDivS: |
1641 | case SPIRV::OpUDivV: |
1642 | case SPIRV::OpUDot: |
1643 | case SPIRV::OpUDotAccSat: |
1644 | case SPIRV::OpUGreaterThan: |
1645 | case SPIRV::OpUGreaterThanEqual: |
1646 | case SPIRV::OpULessThan: |
1647 | case SPIRV::OpULessThanEqual: |
1648 | case SPIRV::OpUModS: |
1649 | case SPIRV::OpUModV: |
1650 | case SPIRV::OpUMulExtended: |
1651 | case SPIRV::OpUndef: |
1652 | case SPIRV::OpUnordered: |
1653 | case SPIRV::OpUnreachable: |
1654 | case SPIRV::OpVariable: |
1655 | case SPIRV::OpVariableLengthArrayINTEL: |
1656 | case SPIRV::OpVectorExtractDynamic: |
1657 | case SPIRV::OpVectorInsertDynamic: |
1658 | case SPIRV::OpVectorShuffle: |
1659 | case SPIRV::OpVectorTimesMatrix: |
1660 | case SPIRV::OpVectorTimesScalar: { |
1661 | break; |
1662 | } |
1663 | } |
1664 | std::string msg; |
1665 | raw_string_ostream Msg(msg); |
1666 | Msg << "Not supported instr[opcode]: " << MI << "[" << OpNum << "]" ; |
1667 | report_fatal_error(Msg.str().c_str()); |
1668 | } |
1669 | |
1670 | #endif // GET_OPERAND_BIT_OFFSET |
1671 | |
1672 | |