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