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