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