1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|* *|
3|* Global Instruction Selector for the ARM target *|
4|* *|
5|* Automatically generated file, do not edit! *|
6|* *|
7\*===----------------------------------------------------------------------===*/
8
9#ifdef GET_GLOBALISEL_PREDICATE_BITSET
10const unsigned MAX_SUBTARGET_PREDICATES = 87;
11using PredicateBitset = llvm::Bitset<MAX_SUBTARGET_PREDICATES>;
12#endif // ifdef GET_GLOBALISEL_PREDICATE_BITSET
13
14#ifdef GET_GLOBALISEL_TEMPORARIES_DECL
15 mutable MatcherState State;
16 typedef ComplexRendererFns(ARMInstructionSelector::*ComplexMatcherMemFn)(MachineOperand &) const;
17 typedef void(ARMInstructionSelector::*CustomRendererFn)(MachineInstrBuilder &, const MachineInstr &, int) const;
18 const ExecInfoTy<PredicateBitset, ComplexMatcherMemFn, CustomRendererFn> ExecInfo;
19 static ARMInstructionSelector::ComplexMatcherMemFn ComplexPredicateFns[];
20 static ARMInstructionSelector::CustomRendererFn CustomRenderers[];
21 bool testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const override;
22 bool testImmPredicate_APInt(unsigned PredicateID, const APInt &Imm) const override;
23 bool testImmPredicate_APFloat(unsigned PredicateID, const APFloat &Imm) const override;
24 const uint8_t *getMatchTable() const override;
25 bool testMIPredicate_MI(unsigned PredicateID, const MachineInstr &MI, const MatcherState &State) const override;
26 bool testSimplePredicate(unsigned PredicateID) const override;
27 bool runCustomAction(unsigned FnID, const MatcherState &State, NewMIVector &OutMIs) const override;
28#endif // ifdef GET_GLOBALISEL_TEMPORARIES_DECL
29
30#ifdef GET_GLOBALISEL_TEMPORARIES_INIT
31, State(0),
32ExecInfo(TypeObjects, NumTypeObjects, FeatureBitsets, ComplexPredicateFns, CustomRenderers)
33#endif // ifdef GET_GLOBALISEL_TEMPORARIES_INIT
34
35#ifdef GET_GLOBALISEL_IMPL
36// LLT Objects.
37enum {
38 GILLT_s16,
39 GILLT_s32,
40 GILLT_s64,
41 GILLT_v2s1,
42 GILLT_v2s32,
43 GILLT_v2s64,
44 GILLT_v4s1,
45 GILLT_v4s16,
46 GILLT_v4s32,
47 GILLT_v4s64,
48 GILLT_v8s1,
49 GILLT_v8s8,
50 GILLT_v8s16,
51 GILLT_v8s64,
52 GILLT_v16s1,
53 GILLT_v16s8,
54};
55const static size_t NumTypeObjects = 16;
56const static LLT TypeObjects[] = {
57 LLT::scalar(16),
58 LLT::scalar(32),
59 LLT::scalar(64),
60 LLT::vector(ElementCount::getFixed(2), 1),
61 LLT::vector(ElementCount::getFixed(2), 32),
62 LLT::vector(ElementCount::getFixed(2), 64),
63 LLT::vector(ElementCount::getFixed(4), 1),
64 LLT::vector(ElementCount::getFixed(4), 16),
65 LLT::vector(ElementCount::getFixed(4), 32),
66 LLT::vector(ElementCount::getFixed(4), 64),
67 LLT::vector(ElementCount::getFixed(8), 1),
68 LLT::vector(ElementCount::getFixed(8), 8),
69 LLT::vector(ElementCount::getFixed(8), 16),
70 LLT::vector(ElementCount::getFixed(8), 64),
71 LLT::vector(ElementCount::getFixed(16), 1),
72 LLT::vector(ElementCount::getFixed(16), 8),
73};
74
75// Bits for subtarget features that participate in instruction matching.
76enum SubtargetFeatureBits : uint8_t {
77 Feature_NoHonorSignDependentRoundingBit = 78,
78 Feature_HasV4TBit = 6,
79 Feature_NoV4TBit = 7,
80 Feature_HasV5TBit = 13,
81 Feature_NoV5TBit = 67,
82 Feature_HasV5TEBit = 11,
83 Feature_HasV6Bit = 0,
84 Feature_NoV6Bit = 9,
85 Feature_HasV6MBit = 28,
86 Feature_HasV8MBaselineBit = 35,
87 Feature_HasV8_1MMainlineBit = 41,
88 Feature_HasMVEIntBit = 65,
89 Feature_HasMVEFloatBit = 66,
90 Feature_HasCDEBit = 86,
91 Feature_HasFPRegsBit = 42,
92 Feature_HasFPRegs16Bit = 43,
93 Feature_HasNoFPRegs16Bit = 77,
94 Feature_HasFPRegs64Bit = 52,
95 Feature_HasV6T2Bit = 8,
96 Feature_HasV6KBit = 18,
97 Feature_HasV7Bit = 3,
98 Feature_HasV8Bit = 56,
99 Feature_PreV8Bit = 19,
100 Feature_HasV8_1aBit = 80,
101 Feature_HasV8_3aBit = 81,
102 Feature_NoVFPBit = 22,
103 Feature_HasVFP2Bit = 21,
104 Feature_HasVFP3Bit = 53,
105 Feature_HasVFP4Bit = 50,
106 Feature_HasDPVFPBit = 44,
107 Feature_HasFPARMv8Bit = 47,
108 Feature_HasNEONBit = 54,
109 Feature_HasSHA2Bit = 63,
110 Feature_HasAESBit = 55,
111 Feature_HasDotProdBit = 57,
112 Feature_HasCRCBit = 14,
113 Feature_HasLOBBit = 40,
114 Feature_HasFP16Bit = 62,
115 Feature_HasFullFP16Bit = 46,
116 Feature_HasBF16Bit = 64,
117 Feature_HasMatMulInt8Bit = 58,
118 Feature_HasDivideInThumbBit = 37,
119 Feature_HasDivideInARMBit = 12,
120 Feature_HasDSPBit = 36,
121 Feature_HasDBBit = 15,
122 Feature_HasV7ClrexBit = 17,
123 Feature_HasAcquireReleaseBit = 16,
124 Feature_HasMPBit = 2,
125 Feature_Has8MSecExtBit = 29,
126 Feature_HasZCZBit = 59,
127 Feature_UseNEONForFPBit = 84,
128 Feature_DontUseNEONForFPBit = 45,
129 Feature_IsThumbBit = 26,
130 Feature_IsThumb1OnlyBit = 27,
131 Feature_IsThumb2Bit = 34,
132 Feature_IsNotMClassBit = 38,
133 Feature_IsARMBit = 1,
134 Feature_IsWindowsBit = 30,
135 Feature_IsNotWindowsBit = 31,
136 Feature_IsReadTPTPIDRURWBit = 70,
137 Feature_IsReadTPTPIDRUROBit = 71,
138 Feature_IsReadTPTPIDRPRWBit = 72,
139 Feature_IsReadTPSoftBit = 20,
140 Feature_UseNaClTrapBit = 4,
141 Feature_DontUseNaClTrapBit = 5,
142 Feature_UseMovtBit = 39,
143 Feature_DontUseMovtBit = 23,
144 Feature_UseMovtInPicBit = 24,
145 Feature_DontUseMovtInPicBit = 25,
146 Feature_UseFPVMLxBit = 49,
147 Feature_SLSBLRMitigationBit = 69,
148 Feature_NoSLSBLRMitigationBit = 68,
149 Feature_UseMulOpsBit = 10,
150 Feature_UseFusedMACBit = 51,
151 Feature_HasFastVGETLNi32Bit = 60,
152 Feature_HasSlowVGETLNi32Bit = 82,
153 Feature_HasFastVDUP32Bit = 61,
154 Feature_HasSlowVDUP32Bit = 83,
155 Feature_UseVMOVSRBit = 48,
156 Feature_DontUseVMOVSRBit = 85,
157 Feature_IsLEBit = 76,
158 Feature_IsBEBit = 79,
159 Feature_GenExecuteOnlyBit = 33,
160 Feature_DontGenExecuteOnlyBit = 32,
161 Feature_GenT1ExecuteOnlyBit = 75,
162 Feature_SignRetAddrBit = 74,
163 Feature_NoSignRetAddrBit = 73,
164};
165
166PredicateBitset ARMInstructionSelector::
167computeAvailableModuleFeatures(const ARMSubtarget *Subtarget) const {
168 PredicateBitset Features{};
169 if (!TM.Options.HonorSignDependentRoundingFPMath())
170 Features.set(Feature_NoHonorSignDependentRoundingBit);
171 if (Subtarget->hasV4TOps())
172 Features.set(Feature_HasV4TBit);
173 if (!Subtarget->hasV4TOps())
174 Features.set(Feature_NoV4TBit);
175 if (Subtarget->hasV5TOps())
176 Features.set(Feature_HasV5TBit);
177 if (!Subtarget->hasV5TOps())
178 Features.set(Feature_NoV5TBit);
179 if (Subtarget->hasV5TEOps())
180 Features.set(Feature_HasV5TEBit);
181 if (Subtarget->hasV6Ops())
182 Features.set(Feature_HasV6Bit);
183 if (!Subtarget->hasV6Ops())
184 Features.set(Feature_NoV6Bit);
185 if (Subtarget->hasV6MOps())
186 Features.set(Feature_HasV6MBit);
187 if (Subtarget->hasV8MBaselineOps())
188 Features.set(Feature_HasV8MBaselineBit);
189 if (Subtarget->hasV8_1MMainlineOps())
190 Features.set(Feature_HasV8_1MMainlineBit);
191 if (Subtarget->hasMVEIntegerOps())
192 Features.set(Feature_HasMVEIntBit);
193 if (Subtarget->hasMVEFloatOps())
194 Features.set(Feature_HasMVEFloatBit);
195 if (Subtarget->hasCDEOps())
196 Features.set(Feature_HasCDEBit);
197 if (Subtarget->hasFPRegs())
198 Features.set(Feature_HasFPRegsBit);
199 if (Subtarget->hasFPRegs16())
200 Features.set(Feature_HasFPRegs16Bit);
201 if (!Subtarget->hasFPRegs16())
202 Features.set(Feature_HasNoFPRegs16Bit);
203 if (Subtarget->hasFPRegs64())
204 Features.set(Feature_HasFPRegs64Bit);
205 if (Subtarget->hasV6T2Ops())
206 Features.set(Feature_HasV6T2Bit);
207 if (Subtarget->hasV6KOps())
208 Features.set(Feature_HasV6KBit);
209 if (Subtarget->hasV7Ops())
210 Features.set(Feature_HasV7Bit);
211 if (Subtarget->hasV8Ops())
212 Features.set(Feature_HasV8Bit);
213 if (!Subtarget->hasV8Ops())
214 Features.set(Feature_PreV8Bit);
215 if (Subtarget->hasV8_1aOps())
216 Features.set(Feature_HasV8_1aBit);
217 if (Subtarget->hasV8_3aOps())
218 Features.set(Feature_HasV8_3aBit);
219 if (!Subtarget->hasVFP2Base())
220 Features.set(Feature_NoVFPBit);
221 if (Subtarget->hasVFP2Base())
222 Features.set(Feature_HasVFP2Bit);
223 if (Subtarget->hasVFP3Base())
224 Features.set(Feature_HasVFP3Bit);
225 if (Subtarget->hasVFP4Base())
226 Features.set(Feature_HasVFP4Bit);
227 if (Subtarget->hasFP64())
228 Features.set(Feature_HasDPVFPBit);
229 if (Subtarget->hasFPARMv8Base())
230 Features.set(Feature_HasFPARMv8Bit);
231 if (Subtarget->hasNEON())
232 Features.set(Feature_HasNEONBit);
233 if (Subtarget->hasSHA2())
234 Features.set(Feature_HasSHA2Bit);
235 if (Subtarget->hasAES())
236 Features.set(Feature_HasAESBit);
237 if (Subtarget->hasDotProd())
238 Features.set(Feature_HasDotProdBit);
239 if (Subtarget->hasCRC())
240 Features.set(Feature_HasCRCBit);
241 if (Subtarget->hasLOB())
242 Features.set(Feature_HasLOBBit);
243 if (Subtarget->hasFP16())
244 Features.set(Feature_HasFP16Bit);
245 if (Subtarget->hasFullFP16())
246 Features.set(Feature_HasFullFP16Bit);
247 if (Subtarget->hasBF16())
248 Features.set(Feature_HasBF16Bit);
249 if (Subtarget->hasMatMulInt8())
250 Features.set(Feature_HasMatMulInt8Bit);
251 if (Subtarget->hasDivideInThumbMode())
252 Features.set(Feature_HasDivideInThumbBit);
253 if (Subtarget->hasDivideInARMMode())
254 Features.set(Feature_HasDivideInARMBit);
255 if (Subtarget->hasDSP())
256 Features.set(Feature_HasDSPBit);
257 if (Subtarget->hasDataBarrier())
258 Features.set(Feature_HasDBBit);
259 if (Subtarget->hasV7Clrex())
260 Features.set(Feature_HasV7ClrexBit);
261 if (Subtarget->hasAcquireRelease())
262 Features.set(Feature_HasAcquireReleaseBit);
263 if (Subtarget->hasMPExtension())
264 Features.set(Feature_HasMPBit);
265 if (Subtarget->has8MSecExt())
266 Features.set(Feature_Has8MSecExtBit);
267 if (Subtarget->hasZeroCycleZeroing())
268 Features.set(Feature_HasZCZBit);
269 if (Subtarget->useNEONForSinglePrecisionFP())
270 Features.set(Feature_UseNEONForFPBit);
271 if (!Subtarget->useNEONForSinglePrecisionFP())
272 Features.set(Feature_DontUseNEONForFPBit);
273 if (Subtarget->isThumb())
274 Features.set(Feature_IsThumbBit);
275 if (Subtarget->isThumb1Only())
276 Features.set(Feature_IsThumb1OnlyBit);
277 if (Subtarget->isThumb2())
278 Features.set(Feature_IsThumb2Bit);
279 if (!Subtarget->isMClass())
280 Features.set(Feature_IsNotMClassBit);
281 if (!Subtarget->isThumb())
282 Features.set(Feature_IsARMBit);
283 if (Subtarget->isTargetWindows())
284 Features.set(Feature_IsWindowsBit);
285 if (!Subtarget->isTargetWindows())
286 Features.set(Feature_IsNotWindowsBit);
287 if (Subtarget->isReadTPTPIDRURW())
288 Features.set(Feature_IsReadTPTPIDRURWBit);
289 if (Subtarget->isReadTPTPIDRURO())
290 Features.set(Feature_IsReadTPTPIDRUROBit);
291 if (Subtarget->isReadTPTPIDRPRW())
292 Features.set(Feature_IsReadTPTPIDRPRWBit);
293 if (Subtarget->isReadTPSoft())
294 Features.set(Feature_IsReadTPSoftBit);
295 if (Subtarget->useNaClTrap())
296 Features.set(Feature_UseNaClTrapBit);
297 if (!Subtarget->useNaClTrap())
298 Features.set(Feature_DontUseNaClTrapBit);
299 if (Subtarget->useMulOps())
300 Features.set(Feature_UseMulOpsBit);
301 if (TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->useFPVFMx())
302 Features.set(Feature_UseFusedMACBit);
303 if (!Subtarget->hasSlowVGETLNi32())
304 Features.set(Feature_HasFastVGETLNi32Bit);
305 if (Subtarget->hasSlowVGETLNi32())
306 Features.set(Feature_HasSlowVGETLNi32Bit);
307 if (!Subtarget->hasSlowVDUP32())
308 Features.set(Feature_HasFastVDUP32Bit);
309 if (Subtarget->hasSlowVDUP32())
310 Features.set(Feature_HasSlowVDUP32Bit);
311 if (Subtarget->preferVMOVSR() ||!Subtarget->useNEONForSinglePrecisionFP())
312 Features.set(Feature_UseVMOVSRBit);
313 if (!Subtarget->preferVMOVSR() &&Subtarget->useNEONForSinglePrecisionFP())
314 Features.set(Feature_DontUseVMOVSRBit);
315 if (Subtarget->genExecuteOnly())
316 Features.set(Feature_GenExecuteOnlyBit);
317 if (!Subtarget->genExecuteOnly())
318 Features.set(Feature_DontGenExecuteOnlyBit);
319 if (Subtarget->genExecuteOnly() && Subtarget->isThumb1Only() && !Subtarget->hasV8MBaselineOps())
320 Features.set(Feature_GenT1ExecuteOnlyBit);
321 return Features;
322}
323
324void ARMInstructionSelector::setupGeneratedPerFunctionState(MachineFunction &MF) {
325 AvailableFunctionFeatures = computeAvailableFunctionFeatures((const ARMSubtarget *)&MF.getSubtarget(), &MF);
326}
327PredicateBitset ARMInstructionSelector::
328computeAvailableFunctionFeatures(const ARMSubtarget *Subtarget, const MachineFunction *MF) const {
329 PredicateBitset Features{};
330 if (Subtarget->useMovt())
331 Features.set(Feature_UseMovtBit);
332 if (!Subtarget->useMovt())
333 Features.set(Feature_DontUseMovtBit);
334 if (Subtarget->useMovt() && Subtarget->allowPositionIndependentMovt())
335 Features.set(Feature_UseMovtInPicBit);
336 if (!Subtarget->useMovt() || !Subtarget->allowPositionIndependentMovt())
337 Features.set(Feature_DontUseMovtInPicBit);
338 if (((Subtarget->useFPVMLx() && TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
339 Features.set(Feature_UseFPVMLxBit);
340 if ( MF->getSubtarget<ARMSubtarget>().hardenSlsBlr() )
341 Features.set(Feature_SLSBLRMitigationBit);
342 if ( !MF->getSubtarget<ARMSubtarget>().hardenSlsBlr() )
343 Features.set(Feature_NoSLSBLRMitigationBit);
344 if (MF->getDataLayout().isLittleEndian())
345 Features.set(Feature_IsLEBit);
346 if (MF->getDataLayout().isBigEndian())
347 Features.set(Feature_IsBEBit);
348 if ( MF->getInfo<ARMFunctionInfo>()->shouldSignReturnAddress(true) )
349 Features.set(Feature_SignRetAddrBit);
350 if ( !MF->getInfo<ARMFunctionInfo>()->shouldSignReturnAddress(true) )
351 Features.set(Feature_NoSignRetAddrBit);
352 return Features;
353}
354
355// Feature bitsets.
356enum {
357 GIFBS_Invalid,
358 GIFBS_HasDotProd,
359 GIFBS_HasFP16,
360 GIFBS_HasFPARMv8,
361 GIFBS_HasFPRegs,
362 GIFBS_HasFullFP16,
363 GIFBS_HasMVEFloat,
364 GIFBS_HasMVEInt,
365 GIFBS_HasMatMulInt8,
366 GIFBS_HasNEON,
367 GIFBS_HasVFP2,
368 GIFBS_HasVFP3,
369 GIFBS_HasVFP4,
370 GIFBS_IsARM,
371 GIFBS_IsThumb,
372 GIFBS_IsThumb2,
373 GIFBS_NoHonorSignDependentRounding,
374 GIFBS_DontUseNEONForFP_HasVFP2,
375 GIFBS_DontUseNaClTrap_IsARM,
376 GIFBS_DontUseVMOVSR_HasNEON,
377 GIFBS_Has8MSecExt_IsThumb,
378 GIFBS_HasAES_HasV8,
379 GIFBS_HasBF16_HasNEON,
380 GIFBS_HasCRC_IsARM,
381 GIFBS_HasCRC_IsThumb2,
382 GIFBS_HasDB_IsARM,
383 GIFBS_HasDB_IsThumb,
384 GIFBS_HasDPVFP_HasFPARMv8,
385 GIFBS_HasDPVFP_HasVFP2,
386 GIFBS_HasDPVFP_HasVFP3,
387 GIFBS_HasDPVFP_HasVFP4,
388 GIFBS_HasDPVFP_NoHonorSignDependentRounding,
389 GIFBS_HasDSP_IsThumb2,
390 GIFBS_HasDivideInARM_IsARM,
391 GIFBS_HasFP16_HasNEON,
392 GIFBS_HasFPARMv8_HasNEON,
393 GIFBS_HasFPRegs_HasFastVGETLNi32,
394 GIFBS_HasFPRegs_UseVMOVSR,
395 GIFBS_HasFullFP16_HasNEON,
396 GIFBS_HasMVEInt_HasV8_1MMainline,
397 GIFBS_HasMVEInt_IsBE,
398 GIFBS_HasMVEInt_IsLE,
399 GIFBS_HasNEON_HasV8,
400 GIFBS_HasNEON_HasV8_1a,
401 GIFBS_HasNEON_HasV8_3a,
402 GIFBS_HasNEON_HasVFP4,
403 GIFBS_HasNEON_IsBE,
404 GIFBS_HasNEON_IsLE,
405 GIFBS_HasNEON_UseNEONForFP,
406 GIFBS_HasSHA2_HasV8,
407 GIFBS_HasV5T_IsARM,
408 GIFBS_HasV5T_IsThumb,
409 GIFBS_HasV5TE_IsARM,
410 GIFBS_HasV6_IsARM,
411 GIFBS_HasV6K_IsARM,
412 GIFBS_HasV6M_IsThumb,
413 GIFBS_HasV6T2_IsARM,
414 GIFBS_HasV7_IsARM,
415 GIFBS_HasV7Clrex_IsThumb,
416 GIFBS_HasV8MBaseline_IsThumb,
417 GIFBS_IsARM_NoV5T,
418 GIFBS_IsARM_NoV6,
419 GIFBS_IsARM_PreV8,
420 GIFBS_IsARM_UseNaClTrap,
421 GIFBS_IsThumb_IsThumb1Only,
422 GIFBS_IsThumb_IsWindows,
423 GIFBS_IsThumb_NoV5T,
424 GIFBS_IsThumb_UseMovt,
425 GIFBS_IsThumb2_PreV8,
426 GIFBS_IsThumb2_UseMulOps,
427 GIFBS_DontUseMovt_GenExecuteOnly_IsThumb1Only,
428 GIFBS_HasDSP_IsThumb2_UseMulOps,
429 GIFBS_HasDivideInThumb_HasV8MBaseline_IsThumb,
430 GIFBS_HasFPARMv8_HasFullFP16_HasNEON,
431 GIFBS_HasFullFP16_HasNEON_HasV8,
432 GIFBS_HasFullFP16_HasNEON_HasV8_3a,
433 GIFBS_HasFullFP16_HasNEON_UseFPVMLx,
434 GIFBS_HasFullFP16_HasNEON_UseFusedMAC,
435 GIFBS_HasLOB_HasV8_1MMainline_IsThumb2,
436 GIFBS_HasNEON_UseFPVMLx_UseNEONForFP,
437 GIFBS_HasV5TE_IsARM_UseMulOps,
438 GIFBS_HasV6_IsARM_UseMulOps,
439 GIFBS_HasV6_IsThumb_IsThumb1Only,
440 GIFBS_HasV6T2_IsARM_UseMulOps,
441 GIFBS_HasVFP4_UseFusedMAC_UseNEONForFP,
442 GIFBS_IsARM_NoV6_UseMulOps,
443};
444constexpr static PredicateBitset FeatureBitsets[] {
445 {}, // GIFBS_Invalid
446 {Feature_HasDotProdBit, },
447 {Feature_HasFP16Bit, },
448 {Feature_HasFPARMv8Bit, },
449 {Feature_HasFPRegsBit, },
450 {Feature_HasFullFP16Bit, },
451 {Feature_HasMVEFloatBit, },
452 {Feature_HasMVEIntBit, },
453 {Feature_HasMatMulInt8Bit, },
454 {Feature_HasNEONBit, },
455 {Feature_HasVFP2Bit, },
456 {Feature_HasVFP3Bit, },
457 {Feature_HasVFP4Bit, },
458 {Feature_IsARMBit, },
459 {Feature_IsThumbBit, },
460 {Feature_IsThumb2Bit, },
461 {Feature_NoHonorSignDependentRoundingBit, },
462 {Feature_DontUseNEONForFPBit, Feature_HasVFP2Bit, },
463 {Feature_DontUseNaClTrapBit, Feature_IsARMBit, },
464 {Feature_DontUseVMOVSRBit, Feature_HasNEONBit, },
465 {Feature_Has8MSecExtBit, Feature_IsThumbBit, },
466 {Feature_HasAESBit, Feature_HasV8Bit, },
467 {Feature_HasBF16Bit, Feature_HasNEONBit, },
468 {Feature_HasCRCBit, Feature_IsARMBit, },
469 {Feature_HasCRCBit, Feature_IsThumb2Bit, },
470 {Feature_HasDBBit, Feature_IsARMBit, },
471 {Feature_HasDBBit, Feature_IsThumbBit, },
472 {Feature_HasDPVFPBit, Feature_HasFPARMv8Bit, },
473 {Feature_HasDPVFPBit, Feature_HasVFP2Bit, },
474 {Feature_HasDPVFPBit, Feature_HasVFP3Bit, },
475 {Feature_HasDPVFPBit, Feature_HasVFP4Bit, },
476 {Feature_HasDPVFPBit, Feature_NoHonorSignDependentRoundingBit, },
477 {Feature_HasDSPBit, Feature_IsThumb2Bit, },
478 {Feature_HasDivideInARMBit, Feature_IsARMBit, },
479 {Feature_HasFP16Bit, Feature_HasNEONBit, },
480 {Feature_HasFPARMv8Bit, Feature_HasNEONBit, },
481 {Feature_HasFPRegsBit, Feature_HasFastVGETLNi32Bit, },
482 {Feature_HasFPRegsBit, Feature_UseVMOVSRBit, },
483 {Feature_HasFullFP16Bit, Feature_HasNEONBit, },
484 {Feature_HasMVEIntBit, Feature_HasV8_1MMainlineBit, },
485 {Feature_HasMVEIntBit, Feature_IsBEBit, },
486 {Feature_HasMVEIntBit, Feature_IsLEBit, },
487 {Feature_HasNEONBit, Feature_HasV8Bit, },
488 {Feature_HasNEONBit, Feature_HasV8_1aBit, },
489 {Feature_HasNEONBit, Feature_HasV8_3aBit, },
490 {Feature_HasNEONBit, Feature_HasVFP4Bit, },
491 {Feature_HasNEONBit, Feature_IsBEBit, },
492 {Feature_HasNEONBit, Feature_IsLEBit, },
493 {Feature_HasNEONBit, Feature_UseNEONForFPBit, },
494 {Feature_HasSHA2Bit, Feature_HasV8Bit, },
495 {Feature_HasV5TBit, Feature_IsARMBit, },
496 {Feature_HasV5TBit, Feature_IsThumbBit, },
497 {Feature_HasV5TEBit, Feature_IsARMBit, },
498 {Feature_HasV6Bit, Feature_IsARMBit, },
499 {Feature_HasV6KBit, Feature_IsARMBit, },
500 {Feature_HasV6MBit, Feature_IsThumbBit, },
501 {Feature_HasV6T2Bit, Feature_IsARMBit, },
502 {Feature_HasV7Bit, Feature_IsARMBit, },
503 {Feature_HasV7ClrexBit, Feature_IsThumbBit, },
504 {Feature_HasV8MBaselineBit, Feature_IsThumbBit, },
505 {Feature_IsARMBit, Feature_NoV5TBit, },
506 {Feature_IsARMBit, Feature_NoV6Bit, },
507 {Feature_IsARMBit, Feature_PreV8Bit, },
508 {Feature_IsARMBit, Feature_UseNaClTrapBit, },
509 {Feature_IsThumbBit, Feature_IsThumb1OnlyBit, },
510 {Feature_IsThumbBit, Feature_IsWindowsBit, },
511 {Feature_IsThumbBit, Feature_NoV5TBit, },
512 {Feature_IsThumbBit, Feature_UseMovtBit, },
513 {Feature_IsThumb2Bit, Feature_PreV8Bit, },
514 {Feature_IsThumb2Bit, Feature_UseMulOpsBit, },
515 {Feature_DontUseMovtBit, Feature_GenExecuteOnlyBit, Feature_IsThumb1OnlyBit, },
516 {Feature_HasDSPBit, Feature_IsThumb2Bit, Feature_UseMulOpsBit, },
517 {Feature_HasDivideInThumbBit, Feature_HasV8MBaselineBit, Feature_IsThumbBit, },
518 {Feature_HasFPARMv8Bit, Feature_HasFullFP16Bit, Feature_HasNEONBit, },
519 {Feature_HasFullFP16Bit, Feature_HasNEONBit, Feature_HasV8Bit, },
520 {Feature_HasFullFP16Bit, Feature_HasNEONBit, Feature_HasV8_3aBit, },
521 {Feature_HasFullFP16Bit, Feature_HasNEONBit, Feature_UseFPVMLxBit, },
522 {Feature_HasFullFP16Bit, Feature_HasNEONBit, Feature_UseFusedMACBit, },
523 {Feature_HasLOBBit, Feature_HasV8_1MMainlineBit, Feature_IsThumb2Bit, },
524 {Feature_HasNEONBit, Feature_UseFPVMLxBit, Feature_UseNEONForFPBit, },
525 {Feature_HasV5TEBit, Feature_IsARMBit, Feature_UseMulOpsBit, },
526 {Feature_HasV6Bit, Feature_IsARMBit, Feature_UseMulOpsBit, },
527 {Feature_HasV6Bit, Feature_IsThumbBit, Feature_IsThumb1OnlyBit, },
528 {Feature_HasV6T2Bit, Feature_IsARMBit, Feature_UseMulOpsBit, },
529 {Feature_HasVFP4Bit, Feature_UseFusedMACBit, Feature_UseNEONForFPBit, },
530 {Feature_IsARMBit, Feature_NoV6Bit, Feature_UseMulOpsBit, },
531};
532
533// ComplexPattern predicates.
534enum {
535 GICP_Invalid,
536};
537// See constructor for table contents
538
539ARMInstructionSelector::ComplexMatcherMemFn
540ARMInstructionSelector::ComplexPredicateFns[] = {
541 nullptr, // GICP_Invalid
542};
543
544// PatFrag predicates.
545enum {
546 GICXXPred_MI_Predicate_bf_inv_mask_imm = GICXXPred_Invalid + 1,
547 GICXXPred_MI_Predicate_vfp_f32imm,
548 GICXXPred_MI_Predicate_vfp_f64imm,
549};
550bool ARMInstructionSelector::testMIPredicate_MI(unsigned PredicateID, const MachineInstr & MI, const MatcherState &State) const {
551 const MachineFunction &MF = *MI.getParent()->getParent();
552 const MachineRegisterInfo &MRI = MF.getRegInfo();
553 const auto &Operands = State.RecordedOperands;
554 (void)Operands;
555 (void)MRI;
556 switch (PredicateID) {
557 case GICXXPred_MI_Predicate_bf_inv_mask_imm: {
558
559 // There's better methods of implementing this check. IntImmLeaf<> would be
560 // equivalent and have less boilerplate but we need a test for C++
561 // predicates and this one causes new rules to be imported into GlobalISel
562 // without requiring additional features first.
563 const auto &MO = MI.getOperand(1);
564 if (!MO.isCImm())
565 return false;
566 return ARM::isBitFieldInvertedMask(MO.getCImm()->getZExtValue());
567
568 llvm_unreachable("bf_inv_mask_imm should have returned");
569 }
570 case GICXXPred_MI_Predicate_vfp_f32imm: {
571
572 const auto &MO = MI.getOperand(1);
573 if (!MO.isFPImm())
574 return false;
575 return ARM_AM::getFP32Imm(MO.getFPImm()->getValueAPF()) != -1;
576
577 llvm_unreachable("vfp_f32imm should have returned");
578 }
579 case GICXXPred_MI_Predicate_vfp_f64imm: {
580
581 const auto &MO = MI.getOperand(1);
582 if (!MO.isFPImm())
583 return false;
584 return ARM_AM::getFP64Imm(MO.getFPImm()->getValueAPF()) != -1;
585
586 llvm_unreachable("vfp_f64imm should have returned");
587 }
588 }
589 llvm_unreachable("Unknown predicate");
590 return false;
591}
592// PatFrag predicates.
593enum {
594 GICXXPred_I64_Predicate_VectorIndex8 = GICXXPred_Invalid + 1,
595 GICXXPred_I64_Predicate_VectorIndex16,
596 GICXXPred_I64_Predicate_VectorIndex32,
597 GICXXPred_I64_Predicate_VectorIndex64,
598 GICXXPred_I64_Predicate_asr_imm,
599 GICXXPred_I64_Predicate_imm0_7,
600 GICXXPred_I64_Predicate_imm0_15,
601 GICXXPred_I64_Predicate_imm0_31,
602 GICXXPred_I64_Predicate_imm0_32,
603 GICXXPred_I64_Predicate_imm0_63,
604 GICXXPred_I64_Predicate_imm0_239,
605 GICXXPred_I64_Predicate_imm0_255,
606 GICXXPred_I64_Predicate_imm0_255_expr,
607 GICXXPred_I64_Predicate_imm0_4095,
608 GICXXPred_I64_Predicate_imm0_65535,
609 GICXXPred_I64_Predicate_imm0_65535_expr,
610 GICXXPred_I64_Predicate_imm0_65535_neg,
611 GICXXPred_I64_Predicate_imm1_7,
612 GICXXPred_I64_Predicate_imm1_15,
613 GICXXPred_I64_Predicate_imm1_16,
614 GICXXPred_I64_Predicate_imm1_31,
615 GICXXPred_I64_Predicate_imm8,
616 GICXXPred_I64_Predicate_imm8_255,
617 GICXXPred_I64_Predicate_imm8_or_16,
618 GICXXPred_I64_Predicate_imm16,
619 GICXXPred_I64_Predicate_imm16_31,
620 GICXXPred_I64_Predicate_imm24b,
621 GICXXPred_I64_Predicate_imm32,
622 GICXXPred_I64_Predicate_imm256_510,
623 GICXXPred_I64_Predicate_imm_3b,
624 GICXXPred_I64_Predicate_imm_4b,
625 GICXXPred_I64_Predicate_imm_6b,
626 GICXXPred_I64_Predicate_imm_7b,
627 GICXXPred_I64_Predicate_imm_9b,
628 GICXXPred_I64_Predicate_imm_11b,
629 GICXXPred_I64_Predicate_imm_12b,
630 GICXXPred_I64_Predicate_imm_13b,
631 GICXXPred_I64_Predicate_imm_even,
632 GICXXPred_I64_Predicate_imm_odd,
633 GICXXPred_I64_Predicate_long_shift,
634 GICXXPred_I64_Predicate_mod_imm,
635 GICXXPred_I64_Predicate_mod_imm_not,
636 GICXXPred_I64_Predicate_pkh_asr_amt,
637 GICXXPred_I64_Predicate_pkh_lsl_amt,
638 GICXXPred_I64_Predicate_shr_imm8,
639 GICXXPred_I64_Predicate_shr_imm16,
640 GICXXPred_I64_Predicate_shr_imm32,
641 GICXXPred_I64_Predicate_shr_imm64,
642 GICXXPred_I64_Predicate_t2_so_imm,
643 GICXXPred_I64_Predicate_t2_so_imm_neg,
644};
645bool ARMInstructionSelector::testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const {
646 switch (PredicateID) {
647 case GICXXPred_I64_Predicate_VectorIndex8: {
648
649 return ((uint64_t)Imm) < 8;
650
651 }
652 case GICXXPred_I64_Predicate_VectorIndex16: {
653
654 return ((uint64_t)Imm) < 4;
655
656 }
657 case GICXXPred_I64_Predicate_VectorIndex32: {
658
659 return ((uint64_t)Imm) < 2;
660
661 }
662 case GICXXPred_I64_Predicate_VectorIndex64: {
663
664 return ((uint64_t)Imm) < 1;
665
666 }
667 case GICXXPred_I64_Predicate_asr_imm: {
668 return Imm > 0 && Imm <= 32;
669 }
670 case GICXXPred_I64_Predicate_imm0_7: {
671
672 return Imm >= 0 && Imm < 8;
673
674 }
675 case GICXXPred_I64_Predicate_imm0_15: {
676
677 return Imm >= 0 && Imm < 16;
678
679 }
680 case GICXXPred_I64_Predicate_imm0_31: {
681
682 return Imm >= 0 && Imm < 32;
683
684 }
685 case GICXXPred_I64_Predicate_imm0_32: {
686
687 return Imm >= 0 && Imm < 33;
688
689 }
690 case GICXXPred_I64_Predicate_imm0_63: {
691
692 return Imm >= 0 && Imm < 64;
693
694 }
695 case GICXXPred_I64_Predicate_imm0_239: {
696 return Imm >= 0 && Imm < 240;
697 }
698 case GICXXPred_I64_Predicate_imm0_255: {
699 return Imm >= 0 && Imm < 256;
700 }
701 case GICXXPred_I64_Predicate_imm0_255_expr: {
702 return Imm >= 0 && Imm < 256;
703 }
704 case GICXXPred_I64_Predicate_imm0_4095: {
705
706 return Imm >= 0 && Imm < 4096;
707
708 }
709 case GICXXPred_I64_Predicate_imm0_65535: {
710
711 return Imm >= 0 && Imm < 65536;
712
713 }
714 case GICXXPred_I64_Predicate_imm0_65535_expr: {
715
716 return Imm >= 0 && Imm < 65536;
717
718 }
719 case GICXXPred_I64_Predicate_imm0_65535_neg: {
720
721 return -Imm >= 0 && -Imm < 65536;
722
723 }
724 case GICXXPred_I64_Predicate_imm1_7: {
725 return Imm > 0 && Imm < 8;
726 }
727 case GICXXPred_I64_Predicate_imm1_15: {
728 return Imm > 0 && Imm < 16;
729 }
730 case GICXXPred_I64_Predicate_imm1_16: {
731
732 return Imm > 0 && Imm <= 16;
733
734 }
735 case GICXXPred_I64_Predicate_imm1_31: {
736 return Imm > 0 && Imm < 32;
737 }
738 case GICXXPred_I64_Predicate_imm8: {
739 return Imm == 8;
740 }
741 case GICXXPred_I64_Predicate_imm8_255: {
742
743 return Imm >= 8 && Imm < 256;
744
745 }
746 case GICXXPred_I64_Predicate_imm8_or_16: {
747 return Imm == 8 || Imm == 16;
748 }
749 case GICXXPred_I64_Predicate_imm16: {
750 return Imm == 16;
751 }
752 case GICXXPred_I64_Predicate_imm16_31: {
753
754 return (int32_t)Imm >= 16 && (int32_t)Imm < 32;
755
756 }
757 case GICXXPred_I64_Predicate_imm24b: {
758
759 return Imm >= 0 && Imm <= 0xffffff;
760
761 }
762 case GICXXPred_I64_Predicate_imm32: {
763 return Imm == 32;
764 }
765 case GICXXPred_I64_Predicate_imm256_510: {
766
767 return Imm >= 256 && Imm < 511;
768
769 }
770 case GICXXPred_I64_Predicate_imm_3b: {
771 { return Imm >= 0 && Imm < (1 << 3); }
772 llvm_unreachable("imm_3b should have returned");
773 }
774 case GICXXPred_I64_Predicate_imm_4b: {
775 { return Imm >= 0 && Imm < (1 << 4); }
776 llvm_unreachable("imm_4b should have returned");
777 }
778 case GICXXPred_I64_Predicate_imm_6b: {
779 { return Imm >= 0 && Imm < (1 << 6); }
780 llvm_unreachable("imm_6b should have returned");
781 }
782 case GICXXPred_I64_Predicate_imm_7b: {
783 { return Imm >= 0 && Imm < (1 << 7); }
784 llvm_unreachable("imm_7b should have returned");
785 }
786 case GICXXPred_I64_Predicate_imm_9b: {
787 { return Imm >= 0 && Imm < (1 << 9); }
788 llvm_unreachable("imm_9b should have returned");
789 }
790 case GICXXPred_I64_Predicate_imm_11b: {
791 { return Imm >= 0 && Imm < (1 << 11); }
792 llvm_unreachable("imm_11b should have returned");
793 }
794 case GICXXPred_I64_Predicate_imm_12b: {
795 { return Imm >= 0 && Imm < (1 << 12); }
796 llvm_unreachable("imm_12b should have returned");
797 }
798 case GICXXPred_I64_Predicate_imm_13b: {
799 { return Imm >= 0 && Imm < (1 << 13); }
800 llvm_unreachable("imm_13b should have returned");
801 }
802 case GICXXPred_I64_Predicate_imm_even: {
803 return (Imm & 1) == 0;
804 }
805 case GICXXPred_I64_Predicate_imm_odd: {
806 return (Imm & 1) == 1;
807 }
808 case GICXXPred_I64_Predicate_long_shift: {
809 return Imm > 0 && Imm <= 32;
810 }
811 case GICXXPred_I64_Predicate_mod_imm: {
812
813 return ARM_AM::getSOImmVal(Imm) != -1;
814
815 }
816 case GICXXPred_I64_Predicate_mod_imm_not: {
817
818 return ARM_AM::getSOImmVal(~(uint32_t)Imm) != -1;
819
820 }
821 case GICXXPred_I64_Predicate_pkh_asr_amt: {
822 return Imm > 0 && Imm <= 32;
823 }
824 case GICXXPred_I64_Predicate_pkh_lsl_amt: {
825 return Imm >= 0 && Imm < 32;
826 }
827 case GICXXPred_I64_Predicate_shr_imm8: {
828 return Imm > 0 && Imm <= 8;
829 }
830 case GICXXPred_I64_Predicate_shr_imm16: {
831 return Imm > 0 && Imm <= 16;
832 }
833 case GICXXPred_I64_Predicate_shr_imm32: {
834 return Imm > 0 && Imm <= 32;
835 }
836 case GICXXPred_I64_Predicate_shr_imm64: {
837 return Imm > 0 && Imm <= 64;
838 }
839 case GICXXPred_I64_Predicate_t2_so_imm: {
840
841 return ARM_AM::getT2SOImmVal(Imm) != -1;
842
843 }
844 case GICXXPred_I64_Predicate_t2_so_imm_neg: {
845
846 return Imm && ARM_AM::getT2SOImmVal(-(uint32_t)Imm) != -1;
847
848 }
849 }
850 llvm_unreachable("Unknown predicate");
851 return false;
852}
853// PatFrag predicates.
854bool ARMInstructionSelector::testImmPredicate_APFloat(unsigned PredicateID, const APFloat & Imm) const {
855 llvm_unreachable("Unknown predicate");
856 return false;
857}
858// PatFrag predicates.
859enum {
860 GICXXPred_APInt_Predicate_arm_i32imm = GICXXPred_Invalid + 1,
861};
862bool ARMInstructionSelector::testImmPredicate_APInt(unsigned PredicateID, const APInt & Imm) const {
863 switch (PredicateID) {
864 case GICXXPred_APInt_Predicate_arm_i32imm: {
865
866 if (Subtarget->useMovt())
867 return true;
868 if (ARM_AM::isSOImmTwoPartVal(Imm.getZExtValue()))
869 return true;
870 return ARM_AM::isSOImmTwoPartValNeg(Imm.getZExtValue());
871
872 llvm_unreachable("arm_i32imm should have returned");
873 }
874 }
875 llvm_unreachable("Unknown predicate");
876 return false;
877}
878bool ARMInstructionSelector::testSimplePredicate(unsigned) const {
879 llvm_unreachable("ARMInstructionSelector does not support simple predicates!");
880 return false;
881}
882// Custom renderers.
883enum {
884 GICR_Invalid,
885 GICR_renderInvertedImm,
886 GICR_renderVFPF32Imm,
887 GICR_renderVFPF64Imm,
888};
889ARMInstructionSelector::CustomRendererFn
890ARMInstructionSelector::CustomRenderers[] = {
891 nullptr, // GICR_Invalid
892 &ARMInstructionSelector::renderInvertedImm,
893 &ARMInstructionSelector::renderVFPF32Imm,
894 &ARMInstructionSelector::renderVFPF64Imm,
895};
896
897bool ARMInstructionSelector::selectImpl(MachineInstr &I, CodeGenCoverage &CoverageInfo) const {
898 const PredicateBitset AvailableFeatures = getAvailableFeatures();
899 MachineIRBuilder B(I);
900 State.MIs.clear();
901 State.MIs.push_back(&I);
902
903 if (executeMatchTable(*this, State, ExecInfo, B, getMatchTable(), TII, MF->getRegInfo(), TRI, RBI, AvailableFeatures, &CoverageInfo)) {
904 return true;
905 }
906
907 return false;
908}
909
910bool ARMInstructionSelector::runCustomAction(unsigned, const MatcherState&, NewMIVector &) const {
911 llvm_unreachable("ARMInstructionSelector does not support custom C++ actions!");
912}
913#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
914#define GIMT_Encode2(Val) uint8_t(Val), uint8_t((uint16_t)Val >> 8)
915#define GIMT_Encode4(Val) uint8_t(Val), uint8_t((uint32_t)Val >> 8), uint8_t((uint32_t)Val >> 16), uint8_t((uint32_t)Val >> 24)
916#define GIMT_Encode8(Val) uint8_t(Val), uint8_t((uint64_t)Val >> 8), uint8_t((uint64_t)Val >> 16), uint8_t((uint64_t)Val >> 24), uint8_t((uint64_t)Val >> 32), uint8_t((uint64_t)Val >> 40), uint8_t((uint64_t)Val >> 48), uint8_t((uint64_t)Val >> 56)
917#else
918#define GIMT_Encode2(Val) uint8_t((uint16_t)Val >> 8), uint8_t(Val)
919#define GIMT_Encode4(Val) uint8_t((uint32_t)Val >> 24), uint8_t((uint32_t)Val >> 16), uint8_t((uint32_t)Val >> 8), uint8_t(Val)
920#define GIMT_Encode8(Val) uint8_t((uint64_t)Val >> 56), uint8_t((uint64_t)Val >> 48), uint8_t((uint64_t)Val >> 40), uint8_t((uint64_t)Val >> 32), uint8_t((uint64_t)Val >> 24), uint8_t((uint64_t)Val >> 16), uint8_t((uint64_t)Val >> 8), uint8_t(Val)
921#endif
922const uint8_t *ARMInstructionSelector::getMatchTable() const {
923 constexpr static uint8_t MatchTable0[] = {
924 GIM_SwitchOpcode, /*MI*/0, /*[*/GIMT_Encode2(51), GIMT_Encode2(293), /*)*//*default:*//*Label 76*/ GIMT_Encode4(126069),
925 /*TargetOpcode::G_ADD*//*Label 0*/ GIMT_Encode4(978),
926 /*TargetOpcode::G_SUB*//*Label 1*/ GIMT_Encode4(6603),
927 /*TargetOpcode::G_MUL*//*Label 2*/ GIMT_Encode4(9751),
928 /*TargetOpcode::G_SDIV*//*Label 3*/ GIMT_Encode4(10621),
929 /*TargetOpcode::G_UDIV*//*Label 4*/ GIMT_Encode4(10717), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
930 /*TargetOpcode::G_AND*//*Label 5*/ GIMT_Encode4(10813),
931 /*TargetOpcode::G_OR*//*Label 6*/ GIMT_Encode4(13773),
932 /*TargetOpcode::G_XOR*//*Label 7*/ GIMT_Encode4(19504), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
933 /*TargetOpcode::G_CONCAT_VECTORS*//*Label 8*/ GIMT_Encode4(21077), GIMT_Encode4(0), GIMT_Encode4(0),
934 /*TargetOpcode::G_BITCAST*//*Label 9*/ GIMT_Encode4(21503), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
935 /*TargetOpcode::G_INTRINSIC_TRUNC*//*Label 10*/ GIMT_Encode4(31951),
936 /*TargetOpcode::G_INTRINSIC_ROUND*//*Label 11*/ GIMT_Encode4(32243), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
937 /*TargetOpcode::G_FENCE*//*Label 12*/ GIMT_Encode4(32502), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
938 /*TargetOpcode::G_INTRINSIC*//*Label 13*/ GIMT_Encode4(32523),
939 /*TargetOpcode::G_INTRINSIC_W_SIDE_EFFECTS*//*Label 14*/ GIMT_Encode4(88245), GIMT_Encode4(0), GIMT_Encode4(0),
940 /*TargetOpcode::G_ANYEXT*//*Label 15*/ GIMT_Encode4(95907),
941 /*TargetOpcode::G_TRUNC*//*Label 16*/ GIMT_Encode4(96065),
942 /*TargetOpcode::G_CONSTANT*//*Label 17*/ GIMT_Encode4(96223),
943 /*TargetOpcode::G_FCONSTANT*//*Label 18*/ GIMT_Encode4(96503), GIMT_Encode4(0), GIMT_Encode4(0),
944 /*TargetOpcode::G_SEXT*//*Label 19*/ GIMT_Encode4(96599), GIMT_Encode4(0),
945 /*TargetOpcode::G_ZEXT*//*Label 20*/ GIMT_Encode4(96757),
946 /*TargetOpcode::G_SHL*//*Label 21*/ GIMT_Encode4(96915),
947 /*TargetOpcode::G_LSHR*//*Label 22*/ GIMT_Encode4(97026),
948 /*TargetOpcode::G_ASHR*//*Label 23*/ GIMT_Encode4(97082), GIMT_Encode4(0), GIMT_Encode4(0),
949 /*TargetOpcode::G_ROTR*//*Label 24*/ GIMT_Encode4(97311), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
950 /*TargetOpcode::G_UMULH*//*Label 25*/ GIMT_Encode4(97593),
951 /*TargetOpcode::G_SMULH*//*Label 26*/ GIMT_Encode4(97835),
952 /*TargetOpcode::G_UADDSAT*//*Label 27*/ GIMT_Encode4(98198),
953 /*TargetOpcode::G_SADDSAT*//*Label 28*/ GIMT_Encode4(98837),
954 /*TargetOpcode::G_USUBSAT*//*Label 29*/ GIMT_Encode4(100131),
955 /*TargetOpcode::G_SSUBSAT*//*Label 30*/ GIMT_Encode4(100770), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
956 /*TargetOpcode::G_FADD*//*Label 31*/ GIMT_Encode4(101784),
957 /*TargetOpcode::G_FSUB*//*Label 32*/ GIMT_Encode4(104096),
958 /*TargetOpcode::G_FMUL*//*Label 33*/ GIMT_Encode4(105760),
959 /*TargetOpcode::G_FMA*//*Label 34*/ GIMT_Encode4(106740), GIMT_Encode4(0),
960 /*TargetOpcode::G_FDIV*//*Label 35*/ GIMT_Encode4(108555), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
961 /*TargetOpcode::G_FNEG*//*Label 36*/ GIMT_Encode4(108720),
962 /*TargetOpcode::G_FPEXT*//*Label 37*/ GIMT_Encode4(110261),
963 /*TargetOpcode::G_FPTRUNC*//*Label 38*/ GIMT_Encode4(110491),
964 /*TargetOpcode::G_FPTOSI*//*Label 39*/ GIMT_Encode4(110763),
965 /*TargetOpcode::G_FPTOUI*//*Label 40*/ GIMT_Encode4(112093),
966 /*TargetOpcode::G_SITOFP*//*Label 41*/ GIMT_Encode4(113423),
967 /*TargetOpcode::G_UITOFP*//*Label 42*/ GIMT_Encode4(114067),
968 /*TargetOpcode::G_FABS*//*Label 43*/ GIMT_Encode4(114711), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
969 /*TargetOpcode::G_FMINNUM*//*Label 44*/ GIMT_Encode4(115481),
970 /*TargetOpcode::G_FMAXNUM*//*Label 45*/ GIMT_Encode4(116069), GIMT_Encode4(0), GIMT_Encode4(0),
971 /*TargetOpcode::G_FMINIMUM*//*Label 46*/ GIMT_Encode4(116657),
972 /*TargetOpcode::G_FMAXIMUM*//*Label 47*/ GIMT_Encode4(117373),
973 /*TargetOpcode::G_GET_FPENV*//*Label 48*/ GIMT_Encode4(118089),
974 /*TargetOpcode::G_SET_FPENV*//*Label 49*/ GIMT_Encode4(118122),
975 /*TargetOpcode::G_RESET_FPENV*//*Label 50*/ GIMT_Encode4(118158),
976 /*TargetOpcode::G_GET_FPMODE*//*Label 51*/ GIMT_Encode4(118223), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
977 /*TargetOpcode::G_SMIN*//*Label 52*/ GIMT_Encode4(118256),
978 /*TargetOpcode::G_SMAX*//*Label 53*/ GIMT_Encode4(118793),
979 /*TargetOpcode::G_UMIN*//*Label 54*/ GIMT_Encode4(119330),
980 /*TargetOpcode::G_UMAX*//*Label 55*/ GIMT_Encode4(120245),
981 /*TargetOpcode::G_ABS*//*Label 56*/ GIMT_Encode4(121160), GIMT_Encode4(0), GIMT_Encode4(0),
982 /*TargetOpcode::G_BR*//*Label 57*/ GIMT_Encode4(121625), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
983 /*TargetOpcode::G_INSERT_VECTOR_ELT*//*Label 58*/ GIMT_Encode4(121698),
984 /*TargetOpcode::G_EXTRACT_VECTOR_ELT*//*Label 59*/ GIMT_Encode4(121998), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
985 /*TargetOpcode::G_CTLZ*//*Label 60*/ GIMT_Encode4(122153), GIMT_Encode4(0),
986 /*TargetOpcode::G_CTPOP*//*Label 61*/ GIMT_Encode4(122708),
987 /*TargetOpcode::G_BSWAP*//*Label 62*/ GIMT_Encode4(122816),
988 /*TargetOpcode::G_BITREVERSE*//*Label 63*/ GIMT_Encode4(123102),
989 /*TargetOpcode::G_FCEIL*//*Label 64*/ GIMT_Encode4(123528), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
990 /*TargetOpcode::G_FSQRT*//*Label 65*/ GIMT_Encode4(123787),
991 /*TargetOpcode::G_FFLOOR*//*Label 66*/ GIMT_Encode4(123925),
992 /*TargetOpcode::G_FRINT*//*Label 67*/ GIMT_Encode4(124184),
993 /*TargetOpcode::G_FNEARBYINT*//*Label 68*/ GIMT_Encode4(124476), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
994 /*TargetOpcode::G_TRAP*//*Label 69*/ GIMT_Encode4(124614),
995 /*TargetOpcode::G_DEBUGTRAP*//*Label 70*/ GIMT_Encode4(124660), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
996 /*TargetOpcode::G_VECREDUCE_ADD*//*Label 71*/ GIMT_Encode4(124747), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
997 /*TargetOpcode::G_VECREDUCE_SMAX*//*Label 72*/ GIMT_Encode4(124923),
998 /*TargetOpcode::G_VECREDUCE_SMIN*//*Label 73*/ GIMT_Encode4(125203),
999 /*TargetOpcode::G_VECREDUCE_UMAX*//*Label 74*/ GIMT_Encode4(125492),
1000 /*TargetOpcode::G_VECREDUCE_UMIN*//*Label 75*/ GIMT_Encode4(125773),
1001 // Label 0: @978
1002 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(1), GIMT_Encode2(16), /*)*//*default:*//*Label 86*/ GIMT_Encode4(6602),
1003 /*GILLT_s32*//*Label 77*/ GIMT_Encode4(1049),
1004 /*GILLT_s64*//*Label 78*/ GIMT_Encode4(3129), GIMT_Encode4(0),
1005 /*GILLT_v2s32*//*Label 79*/ GIMT_Encode4(3176),
1006 /*GILLT_v2s64*//*Label 80*/ GIMT_Encode4(3361), GIMT_Encode4(0),
1007 /*GILLT_v4s16*//*Label 81*/ GIMT_Encode4(4072),
1008 /*GILLT_v4s32*//*Label 82*/ GIMT_Encode4(4257), GIMT_Encode4(0), GIMT_Encode4(0),
1009 /*GILLT_v8s8*//*Label 83*/ GIMT_Encode4(5211),
1010 /*GILLT_v8s16*//*Label 84*/ GIMT_Encode4(5396), GIMT_Encode4(0), GIMT_Encode4(0),
1011 /*GILLT_v16s8*//*Label 85*/ GIMT_Encode4(6350),
1012 // Label 77: @1049
1013 GIM_Try, /*On fail goto*//*Label 87*/ GIMT_Encode4(3128),
1014 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
1015 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
1016 GIM_Try, /*On fail goto*//*Label 88*/ GIMT_Encode4(1135), // Rule ID 5787 //
1017 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
1018 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
1019 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1020 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
1021 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
1022 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
1023 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
1024 GIM_CheckConstantInt, /*MI*/1, /*Op*/2, GIMT_Encode8(255),
1025 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
1026 GIM_CheckIsSafeToFold, /*NumInsns*/1,
1027 // (add:{ *:[i32] } (and:{ *:[i32] } GPR:{ *:[i32] }:$Rm, 255:{ *:[i32] }), GPR:{ *:[i32] }:$Rn) => (UXTAB:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
1028 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::UXTAB),
1029 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
1030 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
1031 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
1032 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
1033 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
1034 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1035 GIR_RootConstrainSelectedInstOperands,
1036 // GIR_Coverage, 5787,
1037 GIR_EraseRootFromParent_Done,
1038 // Label 88: @1135
1039 GIM_Try, /*On fail goto*//*Label 89*/ GIMT_Encode4(1210), // Rule ID 5788 //
1040 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
1041 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
1042 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1043 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
1044 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
1045 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
1046 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
1047 GIM_CheckConstantInt, /*MI*/1, /*Op*/2, GIMT_Encode8(65535),
1048 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
1049 GIM_CheckIsSafeToFold, /*NumInsns*/1,
1050 // (add:{ *:[i32] } (and:{ *:[i32] } GPR:{ *:[i32] }:$Rm, 65535:{ *:[i32] }), GPR:{ *:[i32] }:$Rn) => (UXTAH:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
1051 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::UXTAH),
1052 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
1053 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
1054 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
1055 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
1056 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
1057 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1058 GIR_RootConstrainSelectedInstOperands,
1059 // GIR_Coverage, 5788,
1060 GIR_EraseRootFromParent_Done,
1061 // Label 89: @1210
1062 GIM_Try, /*On fail goto*//*Label 90*/ GIMT_Encode4(1285), // Rule ID 5822 //
1063 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
1064 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
1065 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1066 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
1067 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
1068 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
1069 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
1070 GIM_CheckConstantInt, /*MI*/1, /*Op*/2, GIMT_Encode8(255),
1071 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
1072 GIM_CheckIsSafeToFold, /*NumInsns*/1,
1073 // (add:{ *:[i32] } (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 255:{ *:[i32] }), rGPR:{ *:[i32] }:$Rn) => (t2UXTAB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
1074 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2UXTAB),
1075 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
1076 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
1077 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
1078 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
1079 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
1080 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1081 GIR_RootConstrainSelectedInstOperands,
1082 // GIR_Coverage, 5822,
1083 GIR_EraseRootFromParent_Done,
1084 // Label 90: @1285
1085 GIM_Try, /*On fail goto*//*Label 91*/ GIMT_Encode4(1360), // Rule ID 5823 //
1086 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
1087 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
1088 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1089 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
1090 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
1091 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
1092 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
1093 GIM_CheckConstantInt, /*MI*/1, /*Op*/2, GIMT_Encode8(65535),
1094 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
1095 GIM_CheckIsSafeToFold, /*NumInsns*/1,
1096 // (add:{ *:[i32] } (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 65535:{ *:[i32] }), rGPR:{ *:[i32] }:$Rn) => (t2UXTAH:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
1097 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2UXTAH),
1098 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
1099 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
1100 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
1101 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
1102 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
1103 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1104 GIR_RootConstrainSelectedInstOperands,
1105 // GIR_Coverage, 5823,
1106 GIR_EraseRootFromParent_Done,
1107 // Label 91: @1360
1108 GIM_Try, /*On fail goto*//*Label 92*/ GIMT_Encode4(1435), // Rule ID 2015 //
1109 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
1110 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
1111 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
1112 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1113 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
1114 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
1115 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
1116 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
1117 GIM_CheckConstantInt, /*MI*/1, /*Op*/2, GIMT_Encode8(255),
1118 GIM_CheckIsSafeToFold, /*NumInsns*/1,
1119 // (add:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (and:{ *:[i32] } GPR:{ *:[i32] }:$Rm, 255:{ *:[i32] })) => (UXTAB:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
1120 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::UXTAB),
1121 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
1122 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
1123 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
1124 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
1125 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
1126 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1127 GIR_RootConstrainSelectedInstOperands,
1128 // GIR_Coverage, 2015,
1129 GIR_EraseRootFromParent_Done,
1130 // Label 92: @1435
1131 GIM_Try, /*On fail goto*//*Label 93*/ GIMT_Encode4(1510), // Rule ID 2016 //
1132 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
1133 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
1134 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
1135 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1136 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
1137 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
1138 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
1139 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
1140 GIM_CheckConstantInt, /*MI*/1, /*Op*/2, GIMT_Encode8(65535),
1141 GIM_CheckIsSafeToFold, /*NumInsns*/1,
1142 // (add:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (and:{ *:[i32] } GPR:{ *:[i32] }:$Rm, 65535:{ *:[i32] })) => (UXTAH:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
1143 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::UXTAH),
1144 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
1145 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
1146 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
1147 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
1148 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
1149 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1150 GIR_RootConstrainSelectedInstOperands,
1151 // GIR_Coverage, 2016,
1152 GIR_EraseRootFromParent_Done,
1153 // Label 93: @1510
1154 GIM_Try, /*On fail goto*//*Label 94*/ GIMT_Encode4(1585), // Rule ID 2237 //
1155 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
1156 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
1157 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
1158 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1159 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
1160 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
1161 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
1162 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
1163 GIM_CheckConstantInt, /*MI*/1, /*Op*/2, GIMT_Encode8(255),
1164 GIM_CheckIsSafeToFold, /*NumInsns*/1,
1165 // (add:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 255:{ *:[i32] })) => (t2UXTAB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
1166 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2UXTAB),
1167 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
1168 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
1169 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
1170 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
1171 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
1172 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1173 GIR_RootConstrainSelectedInstOperands,
1174 // GIR_Coverage, 2237,
1175 GIR_EraseRootFromParent_Done,
1176 // Label 94: @1585
1177 GIM_Try, /*On fail goto*//*Label 95*/ GIMT_Encode4(1660), // Rule ID 2238 //
1178 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
1179 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
1180 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
1181 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1182 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
1183 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
1184 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
1185 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
1186 GIM_CheckConstantInt, /*MI*/1, /*Op*/2, GIMT_Encode8(65535),
1187 GIM_CheckIsSafeToFold, /*NumInsns*/1,
1188 // (add:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 65535:{ *:[i32] })) => (t2UXTAH:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
1189 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2UXTAH),
1190 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
1191 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
1192 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
1193 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
1194 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
1195 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1196 GIR_RootConstrainSelectedInstOperands,
1197 // GIR_Coverage, 2238,
1198 GIR_EraseRootFromParent_Done,
1199 // Label 95: @1660
1200 GIM_Try, /*On fail goto*//*Label 96*/ GIMT_Encode4(1770), // Rule ID 5566 //
1201 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV5TE_IsARM_UseMulOps),
1202 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
1203 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1204 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
1205 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
1206 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
1207 GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
1208 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ASHR),
1209 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
1210 GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
1211 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
1212 GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 16,
1213 GIM_RecordInsn, /*DefineMI*/3, /*MI*/1, /*OpIdx*/2, // MIs[3]
1214 GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_ASHR),
1215 GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
1216 GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
1217 GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
1218 GIM_CheckConstantInt8, /*MI*/3, /*Op*/2, 16,
1219 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
1220 GIM_CheckIsSafeToFold, /*NumInsns*/3,
1221 // (add:{ *:[i32] } (mul:{ *:[i32] } (sra:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, 16:{ *:[i32] }), (sra:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, 16:{ *:[i32] })), GPR:{ *:[i32] }:$Ra) => (SMLATT:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra)
1222 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SMLATT),
1223 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
1224 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rn
1225 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // Rm
1226 GIR_RootToRootCopy, /*OpIdx*/2, // Ra
1227 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
1228 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1229 GIR_RootConstrainSelectedInstOperands,
1230 // GIR_Coverage, 5566,
1231 GIR_EraseRootFromParent_Done,
1232 // Label 96: @1770
1233 GIM_Try, /*On fail goto*//*Label 97*/ GIMT_Encode4(1880), // Rule ID 5603 //
1234 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2_UseMulOps),
1235 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
1236 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1237 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
1238 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
1239 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
1240 GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
1241 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ASHR),
1242 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
1243 GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
1244 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
1245 GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 16,
1246 GIM_RecordInsn, /*DefineMI*/3, /*MI*/1, /*OpIdx*/2, // MIs[3]
1247 GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_ASHR),
1248 GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
1249 GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
1250 GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
1251 GIM_CheckConstantInt8, /*MI*/3, /*Op*/2, 16,
1252 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
1253 GIM_CheckIsSafeToFold, /*NumInsns*/3,
1254 // (add:{ *:[i32] } (mul:{ *:[i32] } (sra:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, 16:{ *:[i32] }), (sra:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 16:{ *:[i32] })), rGPR:{ *:[i32] }:$Ra) => (t2SMLATT:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
1255 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SMLATT),
1256 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
1257 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rn
1258 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // Rm
1259 GIR_RootToRootCopy, /*OpIdx*/2, // Ra
1260 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
1261 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1262 GIR_RootConstrainSelectedInstOperands,
1263 // GIR_Coverage, 5603,
1264 GIR_EraseRootFromParent_Done,
1265 // Label 97: @1880
1266 GIM_Try, /*On fail goto*//*Label 98*/ GIMT_Encode4(1990), // Rule ID 192 //
1267 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV5TE_IsARM_UseMulOps),
1268 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
1269 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
1270 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1271 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
1272 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
1273 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
1274 GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
1275 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ASHR),
1276 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
1277 GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
1278 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
1279 GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 16,
1280 GIM_RecordInsn, /*DefineMI*/3, /*MI*/1, /*OpIdx*/2, // MIs[3]
1281 GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_ASHR),
1282 GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
1283 GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
1284 GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
1285 GIM_CheckConstantInt8, /*MI*/3, /*Op*/2, 16,
1286 GIM_CheckIsSafeToFold, /*NumInsns*/3,
1287 // (add:{ *:[i32] } GPR:{ *:[i32] }:$Ra, (mul:{ *:[i32] } (sra:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, 16:{ *:[i32] }), (sra:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, 16:{ *:[i32] }))) => (SMLATT:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra)
1288 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SMLATT),
1289 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
1290 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rn
1291 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // Rm
1292 GIR_RootToRootCopy, /*OpIdx*/1, // Ra
1293 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
1294 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1295 GIR_RootConstrainSelectedInstOperands,
1296 // GIR_Coverage, 192,
1297 GIR_EraseRootFromParent_Done,
1298 // Label 98: @1990
1299 GIM_Try, /*On fail goto*//*Label 99*/ GIMT_Encode4(2100), // Rule ID 529 //
1300 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2_UseMulOps),
1301 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
1302 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
1303 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1304 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
1305 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
1306 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
1307 GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
1308 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ASHR),
1309 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
1310 GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
1311 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
1312 GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 16,
1313 GIM_RecordInsn, /*DefineMI*/3, /*MI*/1, /*OpIdx*/2, // MIs[3]
1314 GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_ASHR),
1315 GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
1316 GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
1317 GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
1318 GIM_CheckConstantInt8, /*MI*/3, /*Op*/2, 16,
1319 GIM_CheckIsSafeToFold, /*NumInsns*/3,
1320 // (add:{ *:[i32] } rGPR:{ *:[i32] }:$Ra, (mul:{ *:[i32] } (sra:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, 16:{ *:[i32] }), (sra:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 16:{ *:[i32] }))) => (t2SMLATT:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
1321 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SMLATT),
1322 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
1323 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rn
1324 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // Rm
1325 GIR_RootToRootCopy, /*OpIdx*/1, // Ra
1326 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
1327 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1328 GIR_RootConstrainSelectedInstOperands,
1329 // GIR_Coverage, 529,
1330 GIR_EraseRootFromParent_Done,
1331 // Label 99: @2100
1332 GIM_Try, /*On fail goto*//*Label 100*/ GIMT_Encode4(2157), // Rule ID 72 //
1333 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
1334 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
1335 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
1336 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1337 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
1338 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_mod_imm),
1339 // MIs[1] Operand 1
1340 // No operand predicates
1341 GIM_CheckIsSafeToFold, /*NumInsns*/1,
1342 // (add:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm) => (ADDri:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
1343 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::ADDri),
1344 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
1345 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
1346 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
1347 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
1348 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1349 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1350 GIR_RootConstrainSelectedInstOperands,
1351 // GIR_Coverage, 72,
1352 GIR_EraseRootFromParent_Done,
1353 // Label 100: @2157
1354 GIM_Try, /*On fail goto*//*Label 101*/ GIMT_Encode4(2214), // Rule ID 415 //
1355 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
1356 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
1357 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
1358 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1359 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
1360 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_t2_so_imm),
1361 // MIs[1] Operand 1
1362 // No operand predicates
1363 GIM_CheckIsSafeToFold, /*NumInsns*/1,
1364 // (add:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm) => (t2ADDri:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
1365 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2ADDri),
1366 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
1367 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
1368 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
1369 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
1370 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1371 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1372 GIR_RootConstrainSelectedInstOperands,
1373 // GIR_Coverage, 415,
1374 GIR_EraseRootFromParent_Done,
1375 // Label 101: @2214
1376 GIM_Try, /*On fail goto*//*Label 102*/ GIMT_Encode4(2265), // Rule ID 416 //
1377 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
1378 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
1379 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
1380 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1381 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
1382 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm0_4095),
1383 // MIs[1] Operand 1
1384 // No operand predicates
1385 GIM_CheckIsSafeToFold, /*NumInsns*/1,
1386 // (add:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_imm0_4095>>:$imm) => (t2ADDri12:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
1387 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2ADDri12),
1388 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
1389 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
1390 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
1391 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
1392 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1393 GIR_RootConstrainSelectedInstOperands,
1394 // GIR_Coverage, 416,
1395 GIR_EraseRootFromParent_Done,
1396 // Label 102: @2265
1397 GIM_Try, /*On fail goto*//*Label 103*/ GIMT_Encode4(2341), // Rule ID 171 //
1398 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM_UseMulOps),
1399 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
1400 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1401 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
1402 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
1403 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
1404 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
1405 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
1406 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
1407 GIM_CheckIsSafeToFold, /*NumInsns*/1,
1408 // (add:{ *:[i32] } (mul:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm), GPRnopc:{ *:[i32] }:$Ra) => (MLA:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Ra)
1409 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MLA),
1410 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
1411 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
1412 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rm
1413 GIR_RootToRootCopy, /*OpIdx*/2, // Ra
1414 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
1415 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1416 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1417 GIR_RootConstrainSelectedInstOperands,
1418 // GIR_Coverage, 171,
1419 GIR_EraseRootFromParent_Done,
1420 // Label 103: @2341
1421 GIM_Try, /*On fail goto*//*Label 104*/ GIMT_Encode4(2417), // Rule ID 172 //
1422 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM_NoV6),
1423 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
1424 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1425 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
1426 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
1427 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
1428 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
1429 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
1430 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
1431 GIM_CheckIsSafeToFold, /*NumInsns*/1,
1432 // (add:{ *:[i32] } (mul:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm), GPRnopc:{ *:[i32] }:$Ra) => (MLAv5:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Ra)
1433 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MLAv5),
1434 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
1435 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
1436 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rm
1437 GIR_RootToRootCopy, /*OpIdx*/2, // Ra
1438 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
1439 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1440 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1441 GIR_RootConstrainSelectedInstOperands,
1442 // GIR_Coverage, 172,
1443 GIR_EraseRootFromParent_Done,
1444 // Label 104: @2417
1445 GIM_Try, /*On fail goto*//*Label 105*/ GIMT_Encode4(2487), // Rule ID 511 //
1446 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2_UseMulOps),
1447 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
1448 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1449 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
1450 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
1451 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
1452 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
1453 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
1454 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
1455 GIM_CheckIsSafeToFold, /*NumInsns*/1,
1456 // (add:{ *:[i32] } (mul:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm), rGPR:{ *:[i32] }:$Ra) => (t2MLA:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
1457 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2MLA),
1458 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
1459 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
1460 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rm
1461 GIR_RootToRootCopy, /*OpIdx*/2, // Ra
1462 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
1463 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1464 GIR_RootConstrainSelectedInstOperands,
1465 // GIR_Coverage, 511,
1466 GIR_EraseRootFromParent_Done,
1467 // Label 105: @2487
1468 GIM_Try, /*On fail goto*//*Label 106*/ GIMT_Encode4(2557), // Rule ID 180 //
1469 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM_UseMulOps),
1470 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
1471 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1472 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SMULH),
1473 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
1474 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
1475 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
1476 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
1477 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
1478 GIM_CheckIsSafeToFold, /*NumInsns*/1,
1479 // (add:{ *:[i32] } (mulhs:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm), GPR:{ *:[i32] }:$Ra) => (SMMLA:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra)
1480 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SMMLA),
1481 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
1482 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
1483 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rm
1484 GIR_RootToRootCopy, /*OpIdx*/2, // Ra
1485 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
1486 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1487 GIR_RootConstrainSelectedInstOperands,
1488 // GIR_Coverage, 180,
1489 GIR_EraseRootFromParent_Done,
1490 // Label 106: @2557
1491 GIM_Try, /*On fail goto*//*Label 107*/ GIMT_Encode4(2627), // Rule ID 517 //
1492 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2_UseMulOps),
1493 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
1494 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1495 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SMULH),
1496 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
1497 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
1498 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
1499 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
1500 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
1501 GIM_CheckIsSafeToFold, /*NumInsns*/1,
1502 // (add:{ *:[i32] } (mulhs:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn), rGPR:{ *:[i32] }:$Ra) => (t2SMMLA:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
1503 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SMMLA),
1504 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
1505 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rn
1506 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
1507 GIR_RootToRootCopy, /*OpIdx*/2, // Ra
1508 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
1509 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1510 GIR_RootConstrainSelectedInstOperands,
1511 // GIR_Coverage, 517,
1512 GIR_EraseRootFromParent_Done,
1513 // Label 107: @2627
1514 GIM_Try, /*On fail goto*//*Label 108*/ GIMT_Encode4(2703), // Rule ID 5560 //
1515 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM_UseMulOps),
1516 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
1517 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
1518 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1519 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
1520 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
1521 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
1522 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
1523 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
1524 GIM_CheckIsSafeToFold, /*NumInsns*/1,
1525 // (add:{ *:[i32] } GPRnopc:{ *:[i32] }:$Ra, (mul:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)) => (MLA:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Ra)
1526 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MLA),
1527 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
1528 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
1529 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rm
1530 GIR_RootToRootCopy, /*OpIdx*/1, // Ra
1531 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
1532 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1533 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1534 GIR_RootConstrainSelectedInstOperands,
1535 // GIR_Coverage, 5560,
1536 GIR_EraseRootFromParent_Done,
1537 // Label 108: @2703
1538 GIM_Try, /*On fail goto*//*Label 109*/ GIMT_Encode4(2779), // Rule ID 5561 //
1539 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM_NoV6),
1540 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
1541 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
1542 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1543 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
1544 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
1545 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
1546 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
1547 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
1548 GIM_CheckIsSafeToFold, /*NumInsns*/1,
1549 // (add:{ *:[i32] } GPRnopc:{ *:[i32] }:$Ra, (mul:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)) => (MLAv5:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Ra)
1550 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MLAv5),
1551 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
1552 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
1553 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rm
1554 GIR_RootToRootCopy, /*OpIdx*/1, // Ra
1555 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
1556 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1557 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1558 GIR_RootConstrainSelectedInstOperands,
1559 // GIR_Coverage, 5561,
1560 GIR_EraseRootFromParent_Done,
1561 // Label 109: @2779
1562 GIM_Try, /*On fail goto*//*Label 110*/ GIMT_Encode4(2849), // Rule ID 5598 //
1563 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2_UseMulOps),
1564 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
1565 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
1566 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1567 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
1568 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
1569 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
1570 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
1571 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
1572 GIM_CheckIsSafeToFold, /*NumInsns*/1,
1573 // (add:{ *:[i32] } rGPR:{ *:[i32] }:$Ra, (mul:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)) => (t2MLA:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
1574 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2MLA),
1575 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
1576 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
1577 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rm
1578 GIR_RootToRootCopy, /*OpIdx*/1, // Ra
1579 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
1580 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1581 GIR_RootConstrainSelectedInstOperands,
1582 // GIR_Coverage, 5598,
1583 GIR_EraseRootFromParent_Done,
1584 // Label 110: @2849
1585 GIM_Try, /*On fail goto*//*Label 111*/ GIMT_Encode4(2919), // Rule ID 5562 //
1586 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM_UseMulOps),
1587 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
1588 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
1589 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1590 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SMULH),
1591 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
1592 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
1593 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
1594 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
1595 GIM_CheckIsSafeToFold, /*NumInsns*/1,
1596 // (add:{ *:[i32] } GPR:{ *:[i32] }:$Ra, (mulhs:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)) => (SMMLA:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra)
1597 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SMMLA),
1598 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
1599 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
1600 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rm
1601 GIR_RootToRootCopy, /*OpIdx*/1, // Ra
1602 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
1603 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1604 GIR_RootConstrainSelectedInstOperands,
1605 // GIR_Coverage, 5562,
1606 GIR_EraseRootFromParent_Done,
1607 // Label 111: @2919
1608 GIM_Try, /*On fail goto*//*Label 112*/ GIMT_Encode4(2989), // Rule ID 5599 //
1609 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2_UseMulOps),
1610 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
1611 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
1612 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1613 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SMULH),
1614 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
1615 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
1616 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
1617 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
1618 GIM_CheckIsSafeToFold, /*NumInsns*/1,
1619 // (add:{ *:[i32] } rGPR:{ *:[i32] }:$Ra, (mulhs:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)) => (t2SMMLA:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
1620 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SMMLA),
1621 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
1622 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rn
1623 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
1624 GIR_RootToRootCopy, /*OpIdx*/1, // Ra
1625 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
1626 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1627 GIR_RootConstrainSelectedInstOperands,
1628 // GIR_Coverage, 5599,
1629 GIR_EraseRootFromParent_Done,
1630 // Label 112: @2989
1631 GIM_Try, /*On fail goto*//*Label 113*/ GIMT_Encode4(3035), // Rule ID 73 //
1632 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
1633 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
1634 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
1635 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
1636 // (add:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) => (ADDrr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
1637 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::ADDrr),
1638 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
1639 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
1640 GIR_RootToRootCopy, /*OpIdx*/2, // Rm
1641 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
1642 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1643 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1644 GIR_RootConstrainSelectedInstOperands,
1645 // GIR_Coverage, 73,
1646 GIR_EraseRootFromParent_Done,
1647 // Label 113: @3035
1648 GIM_Try, /*On fail goto*//*Label 114*/ GIMT_Encode4(3081), // Rule ID 417 //
1649 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
1650 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
1651 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
1652 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
1653 // (add:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2ADDrr:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
1654 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2ADDrr),
1655 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
1656 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
1657 GIR_RootToRootCopy, /*OpIdx*/2, // Rm
1658 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
1659 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1660 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1661 GIR_RootConstrainSelectedInstOperands,
1662 // GIR_Coverage, 417,
1663 GIR_EraseRootFromParent_Done,
1664 // Label 114: @3081
1665 GIM_Try, /*On fail goto*//*Label 115*/ GIMT_Encode4(3127), // Rule ID 5580 //
1666 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
1667 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
1668 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
1669 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
1670 // (add:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rn) => (t2ADDrr:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
1671 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2ADDrr),
1672 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
1673 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
1674 GIR_RootToRootCopy, /*OpIdx*/1, // Rm
1675 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
1676 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1677 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1678 GIR_RootConstrainSelectedInstOperands,
1679 // GIR_Coverage, 5580,
1680 GIR_EraseRootFromParent_Done,
1681 // Label 115: @3127
1682 GIM_Reject,
1683 // Label 87: @3128
1684 GIM_Reject,
1685 // Label 78: @3129
1686 GIM_Try, /*On fail goto*//*Label 116*/ GIMT_Encode4(3175), // Rule ID 779 //
1687 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
1688 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
1689 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
1690 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
1691 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
1692 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
1693 // (add:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm) => (VADDv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
1694 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDv1i64),
1695 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
1696 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
1697 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
1698 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
1699 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1700 GIR_RootConstrainSelectedInstOperands,
1701 // GIR_Coverage, 779,
1702 GIR_EraseRootFromParent_Done,
1703 // Label 116: @3175
1704 GIM_Reject,
1705 // Label 79: @3176
1706 GIM_Try, /*On fail goto*//*Label 117*/ GIMT_Encode4(3360),
1707 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
1708 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
1709 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
1710 GIM_Try, /*On fail goto*//*Label 118*/ GIMT_Encode4(3257), // Rule ID 5649 //
1711 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
1712 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1713 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
1714 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
1715 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s32,
1716 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
1717 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
1718 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
1719 GIM_CheckIsSafeToFold, /*NumInsns*/1,
1720 // (add:{ *:[v2i32] } (mul:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm), DPR:{ *:[v2i32] }:$src1) => (VMLAv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
1721 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMLAv2i32),
1722 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
1723 GIR_RootToRootCopy, /*OpIdx*/2, // src1
1724 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
1725 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
1726 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
1727 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1728 GIR_RootConstrainSelectedInstOperands,
1729 // GIR_Coverage, 5649,
1730 GIR_EraseRootFromParent_Done,
1731 // Label 118: @3257
1732 GIM_Try, /*On fail goto*//*Label 119*/ GIMT_Encode4(3323), // Rule ID 906 //
1733 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
1734 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
1735 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1736 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
1737 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
1738 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s32,
1739 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
1740 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
1741 GIM_CheckIsSafeToFold, /*NumInsns*/1,
1742 // (add:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, (mul:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)) => (VMLAv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
1743 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMLAv2i32),
1744 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
1745 GIR_RootToRootCopy, /*OpIdx*/1, // src1
1746 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
1747 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
1748 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
1749 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1750 GIR_RootConstrainSelectedInstOperands,
1751 // GIR_Coverage, 906,
1752 GIR_EraseRootFromParent_Done,
1753 // Label 119: @3323
1754 GIM_Try, /*On fail goto*//*Label 120*/ GIMT_Encode4(3359), // Rule ID 775 //
1755 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
1756 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
1757 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
1758 // (add:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VADDv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
1759 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDv2i32),
1760 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
1761 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
1762 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
1763 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
1764 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1765 GIR_RootConstrainSelectedInstOperands,
1766 // GIR_Coverage, 775,
1767 GIR_EraseRootFromParent_Done,
1768 // Label 120: @3359
1769 GIM_Reject,
1770 // Label 117: @3360
1771 GIM_Reject,
1772 // Label 80: @3361
1773 GIM_Try, /*On fail goto*//*Label 121*/ GIMT_Encode4(4071),
1774 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
1775 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s64,
1776 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
1777 GIM_Try, /*On fail goto*//*Label 122*/ GIMT_Encode4(3444), // Rule ID 799 //
1778 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
1779 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1780 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
1781 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
1782 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
1783 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
1784 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ANYEXT),
1785 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v2s32,
1786 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
1787 GIM_CheckIsSafeToFold, /*NumInsns*/2,
1788 // (add:{ *:[v2i64] } (anyext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn), (anyext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) => (VADDLuv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
1789 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDLuv2i64),
1790 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
1791 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
1792 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
1793 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
1794 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1795 GIR_RootConstrainSelectedInstOperands,
1796 // GIR_Coverage, 799,
1797 GIR_EraseRootFromParent_Done,
1798 // Label 122: @3444
1799 GIM_Try, /*On fail goto*//*Label 123*/ GIMT_Encode4(3512), // Rule ID 798 //
1800 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
1801 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1802 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
1803 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
1804 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
1805 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
1806 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ZEXT),
1807 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v2s32,
1808 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
1809 GIM_CheckIsSafeToFold, /*NumInsns*/2,
1810 // (add:{ *:[v2i64] } (anyext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn), (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) => (VADDLuv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
1811 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDLuv2i64),
1812 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
1813 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
1814 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
1815 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
1816 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1817 GIR_RootConstrainSelectedInstOperands,
1818 // GIR_Coverage, 798,
1819 GIR_EraseRootFromParent_Done,
1820 // Label 123: @3512
1821 GIM_Try, /*On fail goto*//*Label 124*/ GIMT_Encode4(3580), // Rule ID 787 //
1822 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
1823 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1824 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
1825 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
1826 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
1827 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
1828 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SEXT),
1829 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v2s32,
1830 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
1831 GIM_CheckIsSafeToFold, /*NumInsns*/2,
1832 // (add:{ *:[v2i64] } (sext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn), (sext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) => (VADDLsv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
1833 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDLsv2i64),
1834 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
1835 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
1836 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
1837 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
1838 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1839 GIR_RootConstrainSelectedInstOperands,
1840 // GIR_Coverage, 787,
1841 GIR_EraseRootFromParent_Done,
1842 // Label 124: @3580
1843 GIM_Try, /*On fail goto*//*Label 125*/ GIMT_Encode4(3648), // Rule ID 797 //
1844 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
1845 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1846 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
1847 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
1848 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
1849 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
1850 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ANYEXT),
1851 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v2s32,
1852 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
1853 GIM_CheckIsSafeToFold, /*NumInsns*/2,
1854 // (add:{ *:[v2i64] } (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn), (anyext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) => (VADDLuv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
1855 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDLuv2i64),
1856 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
1857 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
1858 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
1859 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
1860 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1861 GIR_RootConstrainSelectedInstOperands,
1862 // GIR_Coverage, 797,
1863 GIR_EraseRootFromParent_Done,
1864 // Label 125: @3648
1865 GIM_Try, /*On fail goto*//*Label 126*/ GIMT_Encode4(3716), // Rule ID 796 //
1866 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
1867 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1868 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
1869 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
1870 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
1871 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
1872 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ZEXT),
1873 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v2s32,
1874 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
1875 GIM_CheckIsSafeToFold, /*NumInsns*/2,
1876 // (add:{ *:[v2i64] } (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn), (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) => (VADDLuv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
1877 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDLuv2i64),
1878 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
1879 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
1880 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
1881 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
1882 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1883 GIR_RootConstrainSelectedInstOperands,
1884 // GIR_Coverage, 796,
1885 GIR_EraseRootFromParent_Done,
1886 // Label 126: @3716
1887 GIM_Try, /*On fail goto*//*Label 127*/ GIMT_Encode4(3769), // Rule ID 5628 //
1888 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
1889 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1890 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
1891 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
1892 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
1893 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
1894 GIM_CheckIsSafeToFold, /*NumInsns*/1,
1895 // (add:{ *:[v2i64] } (anyext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm), QPR:{ *:[v2i64] }:$Vn) => (VADDWuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
1896 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDWuv2i64),
1897 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
1898 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
1899 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
1900 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
1901 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1902 GIR_RootConstrainSelectedInstOperands,
1903 // GIR_Coverage, 5628,
1904 GIR_EraseRootFromParent_Done,
1905 // Label 127: @3769
1906 GIM_Try, /*On fail goto*//*Label 128*/ GIMT_Encode4(3822), // Rule ID 5622 //
1907 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
1908 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1909 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
1910 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
1911 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
1912 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
1913 GIM_CheckIsSafeToFold, /*NumInsns*/1,
1914 // (add:{ *:[v2i64] } (sext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm), QPR:{ *:[v2i64] }:$Vn) => (VADDWsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
1915 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDWsv2i64),
1916 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
1917 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
1918 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
1919 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
1920 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1921 GIR_RootConstrainSelectedInstOperands,
1922 // GIR_Coverage, 5622,
1923 GIR_EraseRootFromParent_Done,
1924 // Label 128: @3822
1925 GIM_Try, /*On fail goto*//*Label 129*/ GIMT_Encode4(3875), // Rule ID 5627 //
1926 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
1927 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1928 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
1929 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
1930 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
1931 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
1932 GIM_CheckIsSafeToFold, /*NumInsns*/1,
1933 // (add:{ *:[v2i64] } (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm), QPR:{ *:[v2i64] }:$Vn) => (VADDWuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
1934 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDWuv2i64),
1935 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
1936 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
1937 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
1938 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
1939 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1940 GIR_RootConstrainSelectedInstOperands,
1941 // GIR_Coverage, 5627,
1942 GIR_EraseRootFromParent_Done,
1943 // Label 129: @3875
1944 GIM_Try, /*On fail goto*//*Label 130*/ GIMT_Encode4(3928), // Rule ID 808 //
1945 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
1946 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
1947 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1948 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
1949 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
1950 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
1951 GIM_CheckIsSafeToFold, /*NumInsns*/1,
1952 // (add:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, (anyext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) => (VADDWuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
1953 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDWuv2i64),
1954 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
1955 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
1956 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
1957 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
1958 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1959 GIR_RootConstrainSelectedInstOperands,
1960 // GIR_Coverage, 808,
1961 GIR_EraseRootFromParent_Done,
1962 // Label 130: @3928
1963 GIM_Try, /*On fail goto*//*Label 131*/ GIMT_Encode4(3981), // Rule ID 802 //
1964 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
1965 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
1966 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1967 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
1968 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
1969 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
1970 GIM_CheckIsSafeToFold, /*NumInsns*/1,
1971 // (add:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, (sext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) => (VADDWsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
1972 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDWsv2i64),
1973 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
1974 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
1975 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
1976 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
1977 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1978 GIR_RootConstrainSelectedInstOperands,
1979 // GIR_Coverage, 802,
1980 GIR_EraseRootFromParent_Done,
1981 // Label 131: @3981
1982 GIM_Try, /*On fail goto*//*Label 132*/ GIMT_Encode4(4034), // Rule ID 807 //
1983 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
1984 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
1985 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1986 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
1987 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
1988 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
1989 GIM_CheckIsSafeToFold, /*NumInsns*/1,
1990 // (add:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) => (VADDWuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
1991 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDWuv2i64),
1992 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
1993 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
1994 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
1995 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
1996 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
1997 GIR_RootConstrainSelectedInstOperands,
1998 // GIR_Coverage, 807,
1999 GIR_EraseRootFromParent_Done,
2000 // Label 132: @4034
2001 GIM_Try, /*On fail goto*//*Label 133*/ GIMT_Encode4(4070), // Rule ID 780 //
2002 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
2003 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2004 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2005 // (add:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm) => (VADDv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
2006 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDv2i64),
2007 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
2008 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
2009 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
2010 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
2011 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2012 GIR_RootConstrainSelectedInstOperands,
2013 // GIR_Coverage, 780,
2014 GIR_EraseRootFromParent_Done,
2015 // Label 133: @4070
2016 GIM_Reject,
2017 // Label 121: @4071
2018 GIM_Reject,
2019 // Label 81: @4072
2020 GIM_Try, /*On fail goto*//*Label 134*/ GIMT_Encode4(4256),
2021 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
2022 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
2023 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2024 GIM_Try, /*On fail goto*//*Label 135*/ GIMT_Encode4(4153), // Rule ID 5648 //
2025 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
2026 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2027 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
2028 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
2029 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
2030 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2031 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2032 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2033 GIM_CheckIsSafeToFold, /*NumInsns*/1,
2034 // (add:{ *:[v4i16] } (mul:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm), DPR:{ *:[v4i16] }:$src1) => (VMLAv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
2035 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMLAv4i16),
2036 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
2037 GIR_RootToRootCopy, /*OpIdx*/2, // src1
2038 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
2039 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
2040 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
2041 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2042 GIR_RootConstrainSelectedInstOperands,
2043 // GIR_Coverage, 5648,
2044 GIR_EraseRootFromParent_Done,
2045 // Label 135: @4153
2046 GIM_Try, /*On fail goto*//*Label 136*/ GIMT_Encode4(4219), // Rule ID 905 //
2047 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
2048 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2049 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
2050 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
2051 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
2052 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
2053 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2054 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2055 GIM_CheckIsSafeToFold, /*NumInsns*/1,
2056 // (add:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, (mul:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)) => (VMLAv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
2057 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMLAv4i16),
2058 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
2059 GIR_RootToRootCopy, /*OpIdx*/1, // src1
2060 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
2061 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
2062 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
2063 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2064 GIR_RootConstrainSelectedInstOperands,
2065 // GIR_Coverage, 905,
2066 GIR_EraseRootFromParent_Done,
2067 // Label 136: @4219
2068 GIM_Try, /*On fail goto*//*Label 137*/ GIMT_Encode4(4255), // Rule ID 774 //
2069 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
2070 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2071 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2072 // (add:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VADDv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
2073 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDv4i16),
2074 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
2075 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
2076 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
2077 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
2078 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2079 GIR_RootConstrainSelectedInstOperands,
2080 // GIR_Coverage, 774,
2081 GIR_EraseRootFromParent_Done,
2082 // Label 137: @4255
2083 GIM_Reject,
2084 // Label 134: @4256
2085 GIM_Reject,
2086 // Label 82: @4257
2087 GIM_Try, /*On fail goto*//*Label 138*/ GIMT_Encode4(5210),
2088 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
2089 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
2090 GIM_Try, /*On fail goto*//*Label 139*/ GIMT_Encode4(4340), // Rule ID 795 //
2091 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
2092 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2093 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2094 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
2095 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
2096 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2097 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
2098 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ANYEXT),
2099 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v4s16,
2100 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2101 GIM_CheckIsSafeToFold, /*NumInsns*/2,
2102 // (add:{ *:[v4i32] } (anyext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn), (anyext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) => (VADDLuv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
2103 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDLuv4i32),
2104 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
2105 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
2106 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
2107 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
2108 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2109 GIR_RootConstrainSelectedInstOperands,
2110 // GIR_Coverage, 795,
2111 GIR_EraseRootFromParent_Done,
2112 // Label 139: @4340
2113 GIM_Try, /*On fail goto*//*Label 140*/ GIMT_Encode4(4412), // Rule ID 794 //
2114 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
2115 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2116 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2117 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
2118 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
2119 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2120 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
2121 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ZEXT),
2122 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v4s16,
2123 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2124 GIM_CheckIsSafeToFold, /*NumInsns*/2,
2125 // (add:{ *:[v4i32] } (anyext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn), (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) => (VADDLuv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
2126 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDLuv4i32),
2127 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
2128 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
2129 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
2130 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
2131 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2132 GIR_RootConstrainSelectedInstOperands,
2133 // GIR_Coverage, 794,
2134 GIR_EraseRootFromParent_Done,
2135 // Label 140: @4412
2136 GIM_Try, /*On fail goto*//*Label 141*/ GIMT_Encode4(4484), // Rule ID 786 //
2137 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
2138 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2139 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2140 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
2141 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
2142 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2143 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
2144 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SEXT),
2145 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v4s16,
2146 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2147 GIM_CheckIsSafeToFold, /*NumInsns*/2,
2148 // (add:{ *:[v4i32] } (sext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn), (sext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) => (VADDLsv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
2149 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDLsv4i32),
2150 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
2151 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
2152 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
2153 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
2154 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2155 GIR_RootConstrainSelectedInstOperands,
2156 // GIR_Coverage, 786,
2157 GIR_EraseRootFromParent_Done,
2158 // Label 141: @4484
2159 GIM_Try, /*On fail goto*//*Label 142*/ GIMT_Encode4(4556), // Rule ID 793 //
2160 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
2161 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2162 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2163 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
2164 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
2165 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2166 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
2167 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ANYEXT),
2168 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v4s16,
2169 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2170 GIM_CheckIsSafeToFold, /*NumInsns*/2,
2171 // (add:{ *:[v4i32] } (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn), (anyext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) => (VADDLuv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
2172 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDLuv4i32),
2173 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
2174 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
2175 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
2176 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
2177 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2178 GIR_RootConstrainSelectedInstOperands,
2179 // GIR_Coverage, 793,
2180 GIR_EraseRootFromParent_Done,
2181 // Label 142: @4556
2182 GIM_Try, /*On fail goto*//*Label 143*/ GIMT_Encode4(4628), // Rule ID 792 //
2183 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
2184 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2185 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2186 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
2187 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
2188 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2189 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
2190 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ZEXT),
2191 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v4s16,
2192 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2193 GIM_CheckIsSafeToFold, /*NumInsns*/2,
2194 // (add:{ *:[v4i32] } (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn), (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) => (VADDLuv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
2195 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDLuv4i32),
2196 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
2197 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
2198 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
2199 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
2200 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2201 GIR_RootConstrainSelectedInstOperands,
2202 // GIR_Coverage, 792,
2203 GIR_EraseRootFromParent_Done,
2204 // Label 143: @4628
2205 GIM_Try, /*On fail goto*//*Label 144*/ GIMT_Encode4(4698), // Rule ID 5652 //
2206 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
2207 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2208 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2209 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
2210 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s32,
2211 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s32,
2212 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2213 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2214 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2215 GIM_CheckIsSafeToFold, /*NumInsns*/1,
2216 // (add:{ *:[v4i32] } (mul:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm), QPR:{ *:[v4i32] }:$src1) => (VMLAv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
2217 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMLAv4i32),
2218 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
2219 GIR_RootToRootCopy, /*OpIdx*/2, // src1
2220 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
2221 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
2222 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
2223 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2224 GIR_RootConstrainSelectedInstOperands,
2225 // GIR_Coverage, 5652,
2226 GIR_EraseRootFromParent_Done,
2227 // Label 144: @4698
2228 GIM_Try, /*On fail goto*//*Label 145*/ GIMT_Encode4(4755), // Rule ID 5626 //
2229 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
2230 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2231 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2232 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
2233 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
2234 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2235 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2236 GIM_CheckIsSafeToFold, /*NumInsns*/1,
2237 // (add:{ *:[v4i32] } (anyext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm), QPR:{ *:[v4i32] }:$Vn) => (VADDWuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
2238 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDWuv4i32),
2239 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
2240 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
2241 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
2242 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
2243 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2244 GIR_RootConstrainSelectedInstOperands,
2245 // GIR_Coverage, 5626,
2246 GIR_EraseRootFromParent_Done,
2247 // Label 145: @4755
2248 GIM_Try, /*On fail goto*//*Label 146*/ GIMT_Encode4(4812), // Rule ID 5621 //
2249 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
2250 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2251 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2252 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
2253 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
2254 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2255 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2256 GIM_CheckIsSafeToFold, /*NumInsns*/1,
2257 // (add:{ *:[v4i32] } (sext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm), QPR:{ *:[v4i32] }:$Vn) => (VADDWsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
2258 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDWsv4i32),
2259 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
2260 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
2261 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
2262 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
2263 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2264 GIR_RootConstrainSelectedInstOperands,
2265 // GIR_Coverage, 5621,
2266 GIR_EraseRootFromParent_Done,
2267 // Label 146: @4812
2268 GIM_Try, /*On fail goto*//*Label 147*/ GIMT_Encode4(4869), // Rule ID 5625 //
2269 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
2270 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2271 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2272 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
2273 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
2274 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2275 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2276 GIM_CheckIsSafeToFold, /*NumInsns*/1,
2277 // (add:{ *:[v4i32] } (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm), QPR:{ *:[v4i32] }:$Vn) => (VADDWuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
2278 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDWuv4i32),
2279 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
2280 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
2281 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
2282 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
2283 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2284 GIR_RootConstrainSelectedInstOperands,
2285 // GIR_Coverage, 5625,
2286 GIR_EraseRootFromParent_Done,
2287 // Label 147: @4869
2288 GIM_Try, /*On fail goto*//*Label 148*/ GIMT_Encode4(4939), // Rule ID 909 //
2289 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
2290 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2291 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2292 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
2293 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
2294 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s32,
2295 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s32,
2296 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2297 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2298 GIM_CheckIsSafeToFold, /*NumInsns*/1,
2299 // (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (mul:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)) => (VMLAv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
2300 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMLAv4i32),
2301 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
2302 GIR_RootToRootCopy, /*OpIdx*/1, // src1
2303 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
2304 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
2305 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
2306 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2307 GIR_RootConstrainSelectedInstOperands,
2308 // GIR_Coverage, 909,
2309 GIR_EraseRootFromParent_Done,
2310 // Label 148: @4939
2311 GIM_Try, /*On fail goto*//*Label 149*/ GIMT_Encode4(4996), // Rule ID 806 //
2312 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
2313 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2314 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2315 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
2316 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
2317 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
2318 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2319 GIM_CheckIsSafeToFold, /*NumInsns*/1,
2320 // (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, (anyext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) => (VADDWuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
2321 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDWuv4i32),
2322 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
2323 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
2324 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
2325 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
2326 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2327 GIR_RootConstrainSelectedInstOperands,
2328 // GIR_Coverage, 806,
2329 GIR_EraseRootFromParent_Done,
2330 // Label 149: @4996
2331 GIM_Try, /*On fail goto*//*Label 150*/ GIMT_Encode4(5053), // Rule ID 801 //
2332 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
2333 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2334 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2335 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
2336 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
2337 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
2338 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2339 GIM_CheckIsSafeToFold, /*NumInsns*/1,
2340 // (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, (sext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) => (VADDWsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
2341 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDWsv4i32),
2342 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
2343 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
2344 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
2345 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
2346 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2347 GIR_RootConstrainSelectedInstOperands,
2348 // GIR_Coverage, 801,
2349 GIR_EraseRootFromParent_Done,
2350 // Label 150: @5053
2351 GIM_Try, /*On fail goto*//*Label 151*/ GIMT_Encode4(5110), // Rule ID 805 //
2352 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
2353 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2354 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2355 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
2356 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
2357 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
2358 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2359 GIM_CheckIsSafeToFold, /*NumInsns*/1,
2360 // (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) => (VADDWuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
2361 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDWuv4i32),
2362 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
2363 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
2364 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
2365 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
2366 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2367 GIR_RootConstrainSelectedInstOperands,
2368 // GIR_Coverage, 805,
2369 GIR_EraseRootFromParent_Done,
2370 // Label 151: @5110
2371 GIM_Try, /*On fail goto*//*Label 152*/ GIMT_Encode4(5150), // Rule ID 778 //
2372 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
2373 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2374 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2375 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2376 // (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VADDv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
2377 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDv4i32),
2378 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
2379 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
2380 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
2381 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
2382 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2383 GIR_RootConstrainSelectedInstOperands,
2384 // GIR_Coverage, 778,
2385 GIR_EraseRootFromParent_Done,
2386 // Label 152: @5150
2387 GIM_Try, /*On fail goto*//*Label 153*/ GIMT_Encode4(5209), // Rule ID 3593 //
2388 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
2389 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
2390 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
2391 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
2392 // (add:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) => (MVE_VADDi32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
2393 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
2394 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
2395 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
2396 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VADDi32),
2397 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
2398 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
2399 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
2400 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
2401 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2402 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2403 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
2404 GIR_RootConstrainSelectedInstOperands,
2405 // GIR_Coverage, 3593,
2406 GIR_EraseRootFromParent_Done,
2407 // Label 153: @5209
2408 GIM_Reject,
2409 // Label 138: @5210
2410 GIM_Reject,
2411 // Label 83: @5211
2412 GIM_Try, /*On fail goto*//*Label 154*/ GIMT_Encode4(5395),
2413 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s8,
2414 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
2415 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2416 GIM_Try, /*On fail goto*//*Label 155*/ GIMT_Encode4(5292), // Rule ID 5647 //
2417 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
2418 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2419 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
2420 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
2421 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s8,
2422 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2423 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2424 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2425 GIM_CheckIsSafeToFold, /*NumInsns*/1,
2426 // (add:{ *:[v8i8] } (mul:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm), DPR:{ *:[v8i8] }:$src1) => (VMLAv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
2427 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMLAv8i8),
2428 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
2429 GIR_RootToRootCopy, /*OpIdx*/2, // src1
2430 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
2431 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
2432 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
2433 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2434 GIR_RootConstrainSelectedInstOperands,
2435 // GIR_Coverage, 5647,
2436 GIR_EraseRootFromParent_Done,
2437 // Label 155: @5292
2438 GIM_Try, /*On fail goto*//*Label 156*/ GIMT_Encode4(5358), // Rule ID 904 //
2439 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
2440 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2441 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
2442 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
2443 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
2444 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s8,
2445 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2446 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2447 GIM_CheckIsSafeToFold, /*NumInsns*/1,
2448 // (add:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, (mul:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)) => (VMLAv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
2449 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMLAv8i8),
2450 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
2451 GIR_RootToRootCopy, /*OpIdx*/1, // src1
2452 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
2453 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
2454 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
2455 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2456 GIR_RootConstrainSelectedInstOperands,
2457 // GIR_Coverage, 904,
2458 GIR_EraseRootFromParent_Done,
2459 // Label 156: @5358
2460 GIM_Try, /*On fail goto*//*Label 157*/ GIMT_Encode4(5394), // Rule ID 773 //
2461 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
2462 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2463 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2464 // (add:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VADDv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
2465 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDv8i8),
2466 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
2467 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
2468 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
2469 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
2470 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2471 GIR_RootConstrainSelectedInstOperands,
2472 // GIR_Coverage, 773,
2473 GIR_EraseRootFromParent_Done,
2474 // Label 157: @5394
2475 GIM_Reject,
2476 // Label 154: @5395
2477 GIM_Reject,
2478 // Label 84: @5396
2479 GIM_Try, /*On fail goto*//*Label 158*/ GIMT_Encode4(6349),
2480 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
2481 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
2482 GIM_Try, /*On fail goto*//*Label 159*/ GIMT_Encode4(5479), // Rule ID 791 //
2483 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
2484 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2485 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2486 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
2487 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
2488 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2489 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
2490 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ANYEXT),
2491 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v8s8,
2492 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2493 GIM_CheckIsSafeToFold, /*NumInsns*/2,
2494 // (add:{ *:[v8i16] } (anyext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn), (anyext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) => (VADDLuv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
2495 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDLuv8i16),
2496 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
2497 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
2498 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
2499 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
2500 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2501 GIR_RootConstrainSelectedInstOperands,
2502 // GIR_Coverage, 791,
2503 GIR_EraseRootFromParent_Done,
2504 // Label 159: @5479
2505 GIM_Try, /*On fail goto*//*Label 160*/ GIMT_Encode4(5551), // Rule ID 790 //
2506 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
2507 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2508 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2509 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
2510 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
2511 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2512 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
2513 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ZEXT),
2514 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v8s8,
2515 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2516 GIM_CheckIsSafeToFold, /*NumInsns*/2,
2517 // (add:{ *:[v8i16] } (anyext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn), (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) => (VADDLuv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
2518 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDLuv8i16),
2519 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
2520 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
2521 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
2522 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
2523 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2524 GIR_RootConstrainSelectedInstOperands,
2525 // GIR_Coverage, 790,
2526 GIR_EraseRootFromParent_Done,
2527 // Label 160: @5551
2528 GIM_Try, /*On fail goto*//*Label 161*/ GIMT_Encode4(5623), // Rule ID 785 //
2529 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
2530 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2531 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2532 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
2533 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
2534 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2535 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
2536 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SEXT),
2537 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v8s8,
2538 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2539 GIM_CheckIsSafeToFold, /*NumInsns*/2,
2540 // (add:{ *:[v8i16] } (sext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn), (sext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) => (VADDLsv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
2541 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDLsv8i16),
2542 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
2543 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
2544 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
2545 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
2546 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2547 GIR_RootConstrainSelectedInstOperands,
2548 // GIR_Coverage, 785,
2549 GIR_EraseRootFromParent_Done,
2550 // Label 161: @5623
2551 GIM_Try, /*On fail goto*//*Label 162*/ GIMT_Encode4(5695), // Rule ID 789 //
2552 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
2553 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2554 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2555 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
2556 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
2557 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2558 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
2559 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ANYEXT),
2560 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v8s8,
2561 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2562 GIM_CheckIsSafeToFold, /*NumInsns*/2,
2563 // (add:{ *:[v8i16] } (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn), (anyext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) => (VADDLuv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
2564 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDLuv8i16),
2565 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
2566 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
2567 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
2568 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
2569 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2570 GIR_RootConstrainSelectedInstOperands,
2571 // GIR_Coverage, 789,
2572 GIR_EraseRootFromParent_Done,
2573 // Label 162: @5695
2574 GIM_Try, /*On fail goto*//*Label 163*/ GIMT_Encode4(5767), // Rule ID 788 //
2575 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
2576 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2577 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2578 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
2579 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
2580 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2581 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
2582 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ZEXT),
2583 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v8s8,
2584 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2585 GIM_CheckIsSafeToFold, /*NumInsns*/2,
2586 // (add:{ *:[v8i16] } (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn), (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) => (VADDLuv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
2587 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDLuv8i16),
2588 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
2589 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
2590 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
2591 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
2592 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2593 GIR_RootConstrainSelectedInstOperands,
2594 // GIR_Coverage, 788,
2595 GIR_EraseRootFromParent_Done,
2596 // Label 163: @5767
2597 GIM_Try, /*On fail goto*//*Label 164*/ GIMT_Encode4(5837), // Rule ID 5651 //
2598 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
2599 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2600 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2601 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
2602 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s16,
2603 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s16,
2604 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2605 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2606 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2607 GIM_CheckIsSafeToFold, /*NumInsns*/1,
2608 // (add:{ *:[v8i16] } (mul:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm), QPR:{ *:[v8i16] }:$src1) => (VMLAv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
2609 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMLAv8i16),
2610 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
2611 GIR_RootToRootCopy, /*OpIdx*/2, // src1
2612 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
2613 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
2614 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
2615 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2616 GIR_RootConstrainSelectedInstOperands,
2617 // GIR_Coverage, 5651,
2618 GIR_EraseRootFromParent_Done,
2619 // Label 164: @5837
2620 GIM_Try, /*On fail goto*//*Label 165*/ GIMT_Encode4(5894), // Rule ID 5624 //
2621 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
2622 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2623 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2624 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
2625 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
2626 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2627 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2628 GIM_CheckIsSafeToFold, /*NumInsns*/1,
2629 // (add:{ *:[v8i16] } (anyext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm), QPR:{ *:[v8i16] }:$Vn) => (VADDWuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
2630 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDWuv8i16),
2631 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
2632 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
2633 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
2634 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
2635 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2636 GIR_RootConstrainSelectedInstOperands,
2637 // GIR_Coverage, 5624,
2638 GIR_EraseRootFromParent_Done,
2639 // Label 165: @5894
2640 GIM_Try, /*On fail goto*//*Label 166*/ GIMT_Encode4(5951), // Rule ID 5620 //
2641 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
2642 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2643 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2644 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
2645 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
2646 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2647 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2648 GIM_CheckIsSafeToFold, /*NumInsns*/1,
2649 // (add:{ *:[v8i16] } (sext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm), QPR:{ *:[v8i16] }:$Vn) => (VADDWsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
2650 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDWsv8i16),
2651 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
2652 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
2653 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
2654 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
2655 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2656 GIR_RootConstrainSelectedInstOperands,
2657 // GIR_Coverage, 5620,
2658 GIR_EraseRootFromParent_Done,
2659 // Label 166: @5951
2660 GIM_Try, /*On fail goto*//*Label 167*/ GIMT_Encode4(6008), // Rule ID 5623 //
2661 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
2662 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2663 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2664 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
2665 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
2666 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2667 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2668 GIM_CheckIsSafeToFold, /*NumInsns*/1,
2669 // (add:{ *:[v8i16] } (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm), QPR:{ *:[v8i16] }:$Vn) => (VADDWuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
2670 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDWuv8i16),
2671 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
2672 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
2673 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
2674 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
2675 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2676 GIR_RootConstrainSelectedInstOperands,
2677 // GIR_Coverage, 5623,
2678 GIR_EraseRootFromParent_Done,
2679 // Label 167: @6008
2680 GIM_Try, /*On fail goto*//*Label 168*/ GIMT_Encode4(6078), // Rule ID 908 //
2681 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
2682 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2683 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2684 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
2685 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
2686 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s16,
2687 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s16,
2688 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2689 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2690 GIM_CheckIsSafeToFold, /*NumInsns*/1,
2691 // (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (mul:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)) => (VMLAv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
2692 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMLAv8i16),
2693 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
2694 GIR_RootToRootCopy, /*OpIdx*/1, // src1
2695 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
2696 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
2697 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
2698 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2699 GIR_RootConstrainSelectedInstOperands,
2700 // GIR_Coverage, 908,
2701 GIR_EraseRootFromParent_Done,
2702 // Label 168: @6078
2703 GIM_Try, /*On fail goto*//*Label 169*/ GIMT_Encode4(6135), // Rule ID 804 //
2704 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
2705 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2706 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2707 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
2708 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
2709 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
2710 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2711 GIM_CheckIsSafeToFold, /*NumInsns*/1,
2712 // (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, (anyext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) => (VADDWuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
2713 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDWuv8i16),
2714 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
2715 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
2716 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
2717 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
2718 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2719 GIR_RootConstrainSelectedInstOperands,
2720 // GIR_Coverage, 804,
2721 GIR_EraseRootFromParent_Done,
2722 // Label 169: @6135
2723 GIM_Try, /*On fail goto*//*Label 170*/ GIMT_Encode4(6192), // Rule ID 800 //
2724 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
2725 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2726 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2727 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
2728 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
2729 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
2730 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2731 GIM_CheckIsSafeToFold, /*NumInsns*/1,
2732 // (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, (sext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) => (VADDWsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
2733 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDWsv8i16),
2734 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
2735 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
2736 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
2737 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
2738 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2739 GIR_RootConstrainSelectedInstOperands,
2740 // GIR_Coverage, 800,
2741 GIR_EraseRootFromParent_Done,
2742 // Label 170: @6192
2743 GIM_Try, /*On fail goto*//*Label 171*/ GIMT_Encode4(6249), // Rule ID 803 //
2744 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
2745 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2746 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2747 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
2748 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
2749 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
2750 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
2751 GIM_CheckIsSafeToFold, /*NumInsns*/1,
2752 // (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) => (VADDWuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
2753 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDWuv8i16),
2754 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
2755 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
2756 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
2757 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
2758 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2759 GIR_RootConstrainSelectedInstOperands,
2760 // GIR_Coverage, 803,
2761 GIR_EraseRootFromParent_Done,
2762 // Label 171: @6249
2763 GIM_Try, /*On fail goto*//*Label 172*/ GIMT_Encode4(6289), // Rule ID 777 //
2764 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
2765 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2766 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2767 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2768 // (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VADDv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
2769 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDv8i16),
2770 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
2771 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
2772 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
2773 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
2774 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2775 GIR_RootConstrainSelectedInstOperands,
2776 // GIR_Coverage, 777,
2777 GIR_EraseRootFromParent_Done,
2778 // Label 172: @6289
2779 GIM_Try, /*On fail goto*//*Label 173*/ GIMT_Encode4(6348), // Rule ID 3589 //
2780 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
2781 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
2782 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
2783 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
2784 // (add:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) => (MVE_VADDi16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
2785 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
2786 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
2787 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
2788 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VADDi16),
2789 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
2790 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
2791 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
2792 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
2793 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2794 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2795 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
2796 GIR_RootConstrainSelectedInstOperands,
2797 // GIR_Coverage, 3589,
2798 GIR_EraseRootFromParent_Done,
2799 // Label 173: @6348
2800 GIM_Reject,
2801 // Label 158: @6349
2802 GIM_Reject,
2803 // Label 85: @6350
2804 GIM_Try, /*On fail goto*//*Label 174*/ GIMT_Encode4(6601),
2805 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
2806 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
2807 GIM_Try, /*On fail goto*//*Label 175*/ GIMT_Encode4(6431), // Rule ID 5650 //
2808 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
2809 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2810 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2811 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
2812 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v16s8,
2813 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v16s8,
2814 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2815 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2816 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2817 GIM_CheckIsSafeToFold, /*NumInsns*/1,
2818 // (add:{ *:[v16i8] } (mul:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm), QPR:{ *:[v16i8] }:$src1) => (VMLAv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
2819 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMLAv16i8),
2820 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
2821 GIR_RootToRootCopy, /*OpIdx*/2, // src1
2822 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
2823 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
2824 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
2825 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2826 GIR_RootConstrainSelectedInstOperands,
2827 // GIR_Coverage, 5650,
2828 GIR_EraseRootFromParent_Done,
2829 // Label 175: @6431
2830 GIM_Try, /*On fail goto*//*Label 176*/ GIMT_Encode4(6501), // Rule ID 907 //
2831 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
2832 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2833 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2834 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
2835 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
2836 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v16s8,
2837 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v16s8,
2838 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2839 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2840 GIM_CheckIsSafeToFold, /*NumInsns*/1,
2841 // (add:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, (mul:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)) => (VMLAv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
2842 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMLAv16i8),
2843 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
2844 GIR_RootToRootCopy, /*OpIdx*/1, // src1
2845 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
2846 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
2847 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
2848 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2849 GIR_RootConstrainSelectedInstOperands,
2850 // GIR_Coverage, 907,
2851 GIR_EraseRootFromParent_Done,
2852 // Label 176: @6501
2853 GIM_Try, /*On fail goto*//*Label 177*/ GIMT_Encode4(6541), // Rule ID 776 //
2854 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
2855 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2856 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2857 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
2858 // (add:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VADDv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
2859 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDv16i8),
2860 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
2861 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
2862 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
2863 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
2864 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2865 GIR_RootConstrainSelectedInstOperands,
2866 // GIR_Coverage, 776,
2867 GIR_EraseRootFromParent_Done,
2868 // Label 177: @6541
2869 GIM_Try, /*On fail goto*//*Label 178*/ GIMT_Encode4(6600), // Rule ID 3585 //
2870 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
2871 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
2872 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
2873 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
2874 // (add:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) => (MVE_VADDi8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
2875 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
2876 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
2877 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
2878 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VADDi8),
2879 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
2880 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
2881 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
2882 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
2883 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2884 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2885 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
2886 GIR_RootConstrainSelectedInstOperands,
2887 // GIR_Coverage, 3585,
2888 GIR_EraseRootFromParent_Done,
2889 // Label 178: @6600
2890 GIM_Reject,
2891 // Label 174: @6601
2892 GIM_Reject,
2893 // Label 86: @6602
2894 GIM_Reject,
2895 // Label 1: @6603
2896 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(1), GIMT_Encode2(16), /*)*//*default:*//*Label 188*/ GIMT_Encode4(9750),
2897 /*GILLT_s32*//*Label 179*/ GIMT_Encode4(6674),
2898 /*GILLT_s64*//*Label 180*/ GIMT_Encode4(7198), GIMT_Encode4(0),
2899 /*GILLT_v2s32*//*Label 181*/ GIMT_Encode4(7245),
2900 /*GILLT_v2s64*//*Label 182*/ GIMT_Encode4(7360), GIMT_Encode4(0),
2901 /*GILLT_v4s16*//*Label 183*/ GIMT_Encode4(7912),
2902 /*GILLT_v4s32*//*Label 184*/ GIMT_Encode4(8027), GIMT_Encode4(0), GIMT_Encode4(0),
2903 /*GILLT_v8s8*//*Label 185*/ GIMT_Encode4(8740),
2904 /*GILLT_v8s16*//*Label 186*/ GIMT_Encode4(8855), GIMT_Encode4(0), GIMT_Encode4(0),
2905 /*GILLT_v16s8*//*Label 187*/ GIMT_Encode4(9568),
2906 // Label 179: @6674
2907 GIM_Try, /*On fail goto*//*Label 189*/ GIMT_Encode4(7197),
2908 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
2909 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
2910 GIM_Try, /*On fail goto*//*Label 190*/ GIMT_Encode4(6742), // Rule ID 96 //
2911 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
2912 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
2913 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2914 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
2915 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_mod_imm),
2916 // MIs[1] Operand 1
2917 // No operand predicates
2918 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
2919 GIM_CheckIsSafeToFold, /*NumInsns*/1,
2920 // (sub:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm, GPR:{ *:[i32] }:$Rn) => (RSBri:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
2921 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::RSBri),
2922 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
2923 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
2924 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
2925 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
2926 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2927 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2928 GIR_RootConstrainSelectedInstOperands,
2929 // GIR_Coverage, 96,
2930 GIR_EraseRootFromParent_Done,
2931 // Label 190: @6742
2932 GIM_Try, /*On fail goto*//*Label 191*/ GIMT_Encode4(6799), // Rule ID 435 //
2933 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
2934 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
2935 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2936 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
2937 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_t2_so_imm),
2938 // MIs[1] Operand 1
2939 // No operand predicates
2940 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
2941 GIM_CheckIsSafeToFold, /*NumInsns*/1,
2942 // (sub:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm, rGPR:{ *:[i32] }:$Rn) => (t2RSBri:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
2943 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2RSBri),
2944 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
2945 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
2946 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
2947 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
2948 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2949 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2950 GIR_RootConstrainSelectedInstOperands,
2951 // GIR_Coverage, 435,
2952 GIR_EraseRootFromParent_Done,
2953 // Label 191: @6799
2954 GIM_Try, /*On fail goto*//*Label 192*/ GIMT_Encode4(6856), // Rule ID 76 //
2955 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
2956 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
2957 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
2958 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
2959 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
2960 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_mod_imm),
2961 // MIs[1] Operand 1
2962 // No operand predicates
2963 GIM_CheckIsSafeToFold, /*NumInsns*/1,
2964 // (sub:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm) => (SUBri:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
2965 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SUBri),
2966 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
2967 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
2968 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
2969 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
2970 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2971 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2972 GIR_RootConstrainSelectedInstOperands,
2973 // GIR_Coverage, 76,
2974 GIR_EraseRootFromParent_Done,
2975 // Label 192: @6856
2976 GIM_Try, /*On fail goto*//*Label 193*/ GIMT_Encode4(6913), // Rule ID 419 //
2977 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
2978 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
2979 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
2980 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
2981 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
2982 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_t2_so_imm),
2983 // MIs[1] Operand 1
2984 // No operand predicates
2985 GIM_CheckIsSafeToFold, /*NumInsns*/1,
2986 // (sub:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm) => (t2SUBri:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
2987 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SUBri),
2988 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
2989 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
2990 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
2991 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
2992 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2993 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
2994 GIR_RootConstrainSelectedInstOperands,
2995 // GIR_Coverage, 419,
2996 GIR_EraseRootFromParent_Done,
2997 // Label 193: @6913
2998 GIM_Try, /*On fail goto*//*Label 194*/ GIMT_Encode4(6964), // Rule ID 420 //
2999 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
3000 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
3001 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
3002 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
3003 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
3004 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm0_4095),
3005 // MIs[1] Operand 1
3006 // No operand predicates
3007 GIM_CheckIsSafeToFold, /*NumInsns*/1,
3008 // (sub:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_imm0_4095>>:$imm) => (t2SUBri12:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
3009 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SUBri12),
3010 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
3011 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
3012 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
3013 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
3014 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3015 GIR_RootConstrainSelectedInstOperands,
3016 // GIR_Coverage, 420,
3017 GIR_EraseRootFromParent_Done,
3018 // Label 194: @6964
3019 GIM_Try, /*On fail goto*//*Label 195*/ GIMT_Encode4(7034), // Rule ID 173 //
3020 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6T2_IsARM_UseMulOps),
3021 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
3022 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
3023 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
3024 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
3025 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
3026 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
3027 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
3028 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
3029 GIM_CheckIsSafeToFold, /*NumInsns*/1,
3030 // (sub:{ *:[i32] } GPR:{ *:[i32] }:$Ra, (mul:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)) => (MLS:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra)
3031 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MLS),
3032 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
3033 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
3034 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rm
3035 GIR_RootToRootCopy, /*OpIdx*/1, // Ra
3036 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
3037 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3038 GIR_RootConstrainSelectedInstOperands,
3039 // GIR_Coverage, 173,
3040 GIR_EraseRootFromParent_Done,
3041 // Label 195: @7034
3042 GIM_Try, /*On fail goto*//*Label 196*/ GIMT_Encode4(7104), // Rule ID 512 //
3043 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2_UseMulOps),
3044 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
3045 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
3046 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
3047 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
3048 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
3049 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
3050 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
3051 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
3052 GIM_CheckIsSafeToFold, /*NumInsns*/1,
3053 // (sub:{ *:[i32] } rGPR:{ *:[i32] }:$Ra, (mul:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)) => (t2MLS:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
3054 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2MLS),
3055 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
3056 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
3057 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rm
3058 GIR_RootToRootCopy, /*OpIdx*/1, // Ra
3059 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
3060 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3061 GIR_RootConstrainSelectedInstOperands,
3062 // GIR_Coverage, 512,
3063 GIR_EraseRootFromParent_Done,
3064 // Label 196: @7104
3065 GIM_Try, /*On fail goto*//*Label 197*/ GIMT_Encode4(7150), // Rule ID 77 //
3066 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
3067 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
3068 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
3069 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
3070 // (sub:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) => (SUBrr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
3071 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SUBrr),
3072 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
3073 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
3074 GIR_RootToRootCopy, /*OpIdx*/2, // Rm
3075 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
3076 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3077 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3078 GIR_RootConstrainSelectedInstOperands,
3079 // GIR_Coverage, 77,
3080 GIR_EraseRootFromParent_Done,
3081 // Label 197: @7150
3082 GIM_Try, /*On fail goto*//*Label 198*/ GIMT_Encode4(7196), // Rule ID 421 //
3083 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
3084 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
3085 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
3086 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
3087 // (sub:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SUBrr:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
3088 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SUBrr),
3089 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
3090 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
3091 GIR_RootToRootCopy, /*OpIdx*/2, // Rm
3092 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
3093 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3094 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3095 GIR_RootConstrainSelectedInstOperands,
3096 // GIR_Coverage, 421,
3097 GIR_EraseRootFromParent_Done,
3098 // Label 198: @7196
3099 GIM_Reject,
3100 // Label 189: @7197
3101 GIM_Reject,
3102 // Label 180: @7198
3103 GIM_Try, /*On fail goto*//*Label 199*/ GIMT_Encode4(7244), // Rule ID 983 //
3104 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
3105 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
3106 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
3107 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3108 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3109 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3110 // (sub:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm) => (VSUBv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
3111 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSUBv1i64),
3112 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
3113 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
3114 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
3115 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
3116 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3117 GIR_RootConstrainSelectedInstOperands,
3118 // GIR_Coverage, 983,
3119 GIR_EraseRootFromParent_Done,
3120 // Label 199: @7244
3121 GIM_Reject,
3122 // Label 181: @7245
3123 GIM_Try, /*On fail goto*//*Label 200*/ GIMT_Encode4(7359),
3124 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
3125 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
3126 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3127 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3128 GIM_Try, /*On fail goto*//*Label 201*/ GIMT_Encode4(7326), // Rule ID 934 //
3129 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
3130 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
3131 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
3132 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
3133 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s32,
3134 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3135 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3136 GIM_CheckIsSafeToFold, /*NumInsns*/1,
3137 // (sub:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, (mul:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)) => (VMLSv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
3138 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMLSv2i32),
3139 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
3140 GIR_RootToRootCopy, /*OpIdx*/1, // src1
3141 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
3142 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
3143 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
3144 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3145 GIR_RootConstrainSelectedInstOperands,
3146 // GIR_Coverage, 934,
3147 GIR_EraseRootFromParent_Done,
3148 // Label 201: @7326
3149 GIM_Try, /*On fail goto*//*Label 202*/ GIMT_Encode4(7358), // Rule ID 979 //
3150 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
3151 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3152 // (sub:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VSUBv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
3153 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSUBv2i32),
3154 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
3155 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
3156 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
3157 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
3158 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3159 GIR_RootConstrainSelectedInstOperands,
3160 // GIR_Coverage, 979,
3161 GIR_EraseRootFromParent_Done,
3162 // Label 202: @7358
3163 GIM_Reject,
3164 // Label 200: @7359
3165 GIM_Reject,
3166 // Label 182: @7360
3167 GIM_Try, /*On fail goto*//*Label 203*/ GIMT_Encode4(7911),
3168 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
3169 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s64,
3170 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3171 GIM_Try, /*On fail goto*//*Label 204*/ GIMT_Encode4(7443), // Rule ID 1003 //
3172 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
3173 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3174 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
3175 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
3176 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3177 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
3178 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ANYEXT),
3179 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v2s32,
3180 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3181 GIM_CheckIsSafeToFold, /*NumInsns*/2,
3182 // (sub:{ *:[v2i64] } (anyext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn), (anyext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) => (VSUBLuv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
3183 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSUBLuv2i64),
3184 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
3185 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
3186 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
3187 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
3188 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3189 GIR_RootConstrainSelectedInstOperands,
3190 // GIR_Coverage, 1003,
3191 GIR_EraseRootFromParent_Done,
3192 // Label 204: @7443
3193 GIM_Try, /*On fail goto*//*Label 205*/ GIMT_Encode4(7511), // Rule ID 1002 //
3194 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
3195 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3196 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
3197 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
3198 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3199 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
3200 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ZEXT),
3201 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v2s32,
3202 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3203 GIM_CheckIsSafeToFold, /*NumInsns*/2,
3204 // (sub:{ *:[v2i64] } (anyext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn), (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) => (VSUBLuv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
3205 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSUBLuv2i64),
3206 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
3207 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
3208 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
3209 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
3210 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3211 GIR_RootConstrainSelectedInstOperands,
3212 // GIR_Coverage, 1002,
3213 GIR_EraseRootFromParent_Done,
3214 // Label 205: @7511
3215 GIM_Try, /*On fail goto*//*Label 206*/ GIMT_Encode4(7579), // Rule ID 991 //
3216 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
3217 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3218 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
3219 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
3220 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3221 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
3222 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SEXT),
3223 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v2s32,
3224 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3225 GIM_CheckIsSafeToFold, /*NumInsns*/2,
3226 // (sub:{ *:[v2i64] } (sext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn), (sext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) => (VSUBLsv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
3227 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSUBLsv2i64),
3228 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
3229 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
3230 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
3231 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
3232 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3233 GIR_RootConstrainSelectedInstOperands,
3234 // GIR_Coverage, 991,
3235 GIR_EraseRootFromParent_Done,
3236 // Label 206: @7579
3237 GIM_Try, /*On fail goto*//*Label 207*/ GIMT_Encode4(7647), // Rule ID 1001 //
3238 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
3239 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3240 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
3241 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
3242 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3243 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
3244 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ANYEXT),
3245 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v2s32,
3246 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3247 GIM_CheckIsSafeToFold, /*NumInsns*/2,
3248 // (sub:{ *:[v2i64] } (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn), (anyext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) => (VSUBLuv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
3249 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSUBLuv2i64),
3250 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
3251 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
3252 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
3253 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
3254 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3255 GIR_RootConstrainSelectedInstOperands,
3256 // GIR_Coverage, 1001,
3257 GIR_EraseRootFromParent_Done,
3258 // Label 207: @7647
3259 GIM_Try, /*On fail goto*//*Label 208*/ GIMT_Encode4(7715), // Rule ID 1000 //
3260 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
3261 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3262 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
3263 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
3264 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3265 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
3266 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ZEXT),
3267 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v2s32,
3268 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3269 GIM_CheckIsSafeToFold, /*NumInsns*/2,
3270 // (sub:{ *:[v2i64] } (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn), (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) => (VSUBLuv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
3271 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSUBLuv2i64),
3272 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
3273 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
3274 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
3275 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
3276 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3277 GIR_RootConstrainSelectedInstOperands,
3278 // GIR_Coverage, 1000,
3279 GIR_EraseRootFromParent_Done,
3280 // Label 208: @7715
3281 GIM_Try, /*On fail goto*//*Label 209*/ GIMT_Encode4(7768), // Rule ID 1012 //
3282 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
3283 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3284 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
3285 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
3286 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
3287 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3288 GIM_CheckIsSafeToFold, /*NumInsns*/1,
3289 // (sub:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, (anyext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) => (VSUBWuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
3290 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSUBWuv2i64),
3291 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
3292 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
3293 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
3294 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
3295 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3296 GIR_RootConstrainSelectedInstOperands,
3297 // GIR_Coverage, 1012,
3298 GIR_EraseRootFromParent_Done,
3299 // Label 209: @7768
3300 GIM_Try, /*On fail goto*//*Label 210*/ GIMT_Encode4(7821), // Rule ID 1006 //
3301 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
3302 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3303 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
3304 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
3305 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
3306 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3307 GIM_CheckIsSafeToFold, /*NumInsns*/1,
3308 // (sub:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, (sext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) => (VSUBWsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
3309 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSUBWsv2i64),
3310 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
3311 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
3312 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
3313 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
3314 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3315 GIR_RootConstrainSelectedInstOperands,
3316 // GIR_Coverage, 1006,
3317 GIR_EraseRootFromParent_Done,
3318 // Label 210: @7821
3319 GIM_Try, /*On fail goto*//*Label 211*/ GIMT_Encode4(7874), // Rule ID 1011 //
3320 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
3321 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3322 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
3323 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
3324 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
3325 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3326 GIM_CheckIsSafeToFold, /*NumInsns*/1,
3327 // (sub:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) => (VSUBWuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
3328 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSUBWuv2i64),
3329 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
3330 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
3331 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
3332 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
3333 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3334 GIR_RootConstrainSelectedInstOperands,
3335 // GIR_Coverage, 1011,
3336 GIR_EraseRootFromParent_Done,
3337 // Label 211: @7874
3338 GIM_Try, /*On fail goto*//*Label 212*/ GIMT_Encode4(7910), // Rule ID 984 //
3339 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
3340 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3341 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3342 // (sub:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm) => (VSUBv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
3343 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSUBv2i64),
3344 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
3345 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
3346 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
3347 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
3348 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3349 GIR_RootConstrainSelectedInstOperands,
3350 // GIR_Coverage, 984,
3351 GIR_EraseRootFromParent_Done,
3352 // Label 212: @7910
3353 GIM_Reject,
3354 // Label 203: @7911
3355 GIM_Reject,
3356 // Label 183: @7912
3357 GIM_Try, /*On fail goto*//*Label 213*/ GIMT_Encode4(8026),
3358 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
3359 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
3360 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3361 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3362 GIM_Try, /*On fail goto*//*Label 214*/ GIMT_Encode4(7993), // Rule ID 933 //
3363 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
3364 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
3365 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
3366 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
3367 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
3368 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3369 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3370 GIM_CheckIsSafeToFold, /*NumInsns*/1,
3371 // (sub:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, (mul:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)) => (VMLSv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
3372 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMLSv4i16),
3373 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
3374 GIR_RootToRootCopy, /*OpIdx*/1, // src1
3375 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
3376 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
3377 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
3378 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3379 GIR_RootConstrainSelectedInstOperands,
3380 // GIR_Coverage, 933,
3381 GIR_EraseRootFromParent_Done,
3382 // Label 214: @7993
3383 GIM_Try, /*On fail goto*//*Label 215*/ GIMT_Encode4(8025), // Rule ID 978 //
3384 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
3385 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3386 // (sub:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VSUBv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
3387 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSUBv4i16),
3388 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
3389 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
3390 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
3391 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
3392 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3393 GIR_RootConstrainSelectedInstOperands,
3394 // GIR_Coverage, 978,
3395 GIR_EraseRootFromParent_Done,
3396 // Label 215: @8025
3397 GIM_Reject,
3398 // Label 213: @8026
3399 GIM_Reject,
3400 // Label 184: @8027
3401 GIM_Try, /*On fail goto*//*Label 216*/ GIMT_Encode4(8739),
3402 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
3403 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
3404 GIM_Try, /*On fail goto*//*Label 217*/ GIMT_Encode4(8110), // Rule ID 999 //
3405 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
3406 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3407 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3408 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
3409 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
3410 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3411 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
3412 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ANYEXT),
3413 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v4s16,
3414 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3415 GIM_CheckIsSafeToFold, /*NumInsns*/2,
3416 // (sub:{ *:[v4i32] } (anyext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn), (anyext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) => (VSUBLuv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
3417 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSUBLuv4i32),
3418 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
3419 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
3420 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
3421 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
3422 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3423 GIR_RootConstrainSelectedInstOperands,
3424 // GIR_Coverage, 999,
3425 GIR_EraseRootFromParent_Done,
3426 // Label 217: @8110
3427 GIM_Try, /*On fail goto*//*Label 218*/ GIMT_Encode4(8182), // Rule ID 998 //
3428 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
3429 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3430 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3431 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
3432 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
3433 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3434 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
3435 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ZEXT),
3436 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v4s16,
3437 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3438 GIM_CheckIsSafeToFold, /*NumInsns*/2,
3439 // (sub:{ *:[v4i32] } (anyext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn), (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) => (VSUBLuv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
3440 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSUBLuv4i32),
3441 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
3442 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
3443 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
3444 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
3445 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3446 GIR_RootConstrainSelectedInstOperands,
3447 // GIR_Coverage, 998,
3448 GIR_EraseRootFromParent_Done,
3449 // Label 218: @8182
3450 GIM_Try, /*On fail goto*//*Label 219*/ GIMT_Encode4(8254), // Rule ID 990 //
3451 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
3452 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3453 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3454 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
3455 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
3456 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3457 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
3458 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SEXT),
3459 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v4s16,
3460 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3461 GIM_CheckIsSafeToFold, /*NumInsns*/2,
3462 // (sub:{ *:[v4i32] } (sext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn), (sext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) => (VSUBLsv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
3463 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSUBLsv4i32),
3464 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
3465 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
3466 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
3467 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
3468 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3469 GIR_RootConstrainSelectedInstOperands,
3470 // GIR_Coverage, 990,
3471 GIR_EraseRootFromParent_Done,
3472 // Label 219: @8254
3473 GIM_Try, /*On fail goto*//*Label 220*/ GIMT_Encode4(8326), // Rule ID 997 //
3474 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
3475 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3476 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3477 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
3478 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
3479 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3480 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
3481 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ANYEXT),
3482 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v4s16,
3483 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3484 GIM_CheckIsSafeToFold, /*NumInsns*/2,
3485 // (sub:{ *:[v4i32] } (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn), (anyext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) => (VSUBLuv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
3486 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSUBLuv4i32),
3487 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
3488 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
3489 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
3490 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
3491 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3492 GIR_RootConstrainSelectedInstOperands,
3493 // GIR_Coverage, 997,
3494 GIR_EraseRootFromParent_Done,
3495 // Label 220: @8326
3496 GIM_Try, /*On fail goto*//*Label 221*/ GIMT_Encode4(8398), // Rule ID 996 //
3497 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
3498 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3499 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3500 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
3501 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
3502 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3503 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
3504 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ZEXT),
3505 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v4s16,
3506 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3507 GIM_CheckIsSafeToFold, /*NumInsns*/2,
3508 // (sub:{ *:[v4i32] } (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn), (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) => (VSUBLuv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
3509 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSUBLuv4i32),
3510 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
3511 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
3512 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
3513 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
3514 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3515 GIR_RootConstrainSelectedInstOperands,
3516 // GIR_Coverage, 996,
3517 GIR_EraseRootFromParent_Done,
3518 // Label 221: @8398
3519 GIM_Try, /*On fail goto*//*Label 222*/ GIMT_Encode4(8468), // Rule ID 937 //
3520 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
3521 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3522 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3523 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
3524 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
3525 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s32,
3526 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s32,
3527 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3528 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3529 GIM_CheckIsSafeToFold, /*NumInsns*/1,
3530 // (sub:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (mul:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)) => (VMLSv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
3531 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMLSv4i32),
3532 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
3533 GIR_RootToRootCopy, /*OpIdx*/1, // src1
3534 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
3535 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
3536 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
3537 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3538 GIR_RootConstrainSelectedInstOperands,
3539 // GIR_Coverage, 937,
3540 GIR_EraseRootFromParent_Done,
3541 // Label 222: @8468
3542 GIM_Try, /*On fail goto*//*Label 223*/ GIMT_Encode4(8525), // Rule ID 1010 //
3543 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
3544 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3545 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3546 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
3547 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
3548 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
3549 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3550 GIM_CheckIsSafeToFold, /*NumInsns*/1,
3551 // (sub:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, (anyext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) => (VSUBWuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
3552 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSUBWuv4i32),
3553 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
3554 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
3555 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
3556 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
3557 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3558 GIR_RootConstrainSelectedInstOperands,
3559 // GIR_Coverage, 1010,
3560 GIR_EraseRootFromParent_Done,
3561 // Label 223: @8525
3562 GIM_Try, /*On fail goto*//*Label 224*/ GIMT_Encode4(8582), // Rule ID 1005 //
3563 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
3564 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3565 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3566 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
3567 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
3568 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
3569 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3570 GIM_CheckIsSafeToFold, /*NumInsns*/1,
3571 // (sub:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, (sext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) => (VSUBWsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
3572 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSUBWsv4i32),
3573 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
3574 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
3575 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
3576 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
3577 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3578 GIR_RootConstrainSelectedInstOperands,
3579 // GIR_Coverage, 1005,
3580 GIR_EraseRootFromParent_Done,
3581 // Label 224: @8582
3582 GIM_Try, /*On fail goto*//*Label 225*/ GIMT_Encode4(8639), // Rule ID 1009 //
3583 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
3584 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3585 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3586 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
3587 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
3588 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
3589 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3590 GIM_CheckIsSafeToFold, /*NumInsns*/1,
3591 // (sub:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) => (VSUBWuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
3592 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSUBWuv4i32),
3593 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
3594 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
3595 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
3596 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
3597 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3598 GIR_RootConstrainSelectedInstOperands,
3599 // GIR_Coverage, 1009,
3600 GIR_EraseRootFromParent_Done,
3601 // Label 225: @8639
3602 GIM_Try, /*On fail goto*//*Label 226*/ GIMT_Encode4(8679), // Rule ID 982 //
3603 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
3604 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3605 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3606 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3607 // (sub:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VSUBv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
3608 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSUBv4i32),
3609 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
3610 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
3611 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
3612 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
3613 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3614 GIR_RootConstrainSelectedInstOperands,
3615 // GIR_Coverage, 982,
3616 GIR_EraseRootFromParent_Done,
3617 // Label 226: @8679
3618 GIM_Try, /*On fail goto*//*Label 227*/ GIMT_Encode4(8738), // Rule ID 3605 //
3619 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
3620 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
3621 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
3622 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
3623 // (sub:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) => (MVE_VSUBi32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
3624 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
3625 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
3626 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
3627 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSUBi32),
3628 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
3629 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
3630 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
3631 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
3632 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3633 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3634 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
3635 GIR_RootConstrainSelectedInstOperands,
3636 // GIR_Coverage, 3605,
3637 GIR_EraseRootFromParent_Done,
3638 // Label 227: @8738
3639 GIM_Reject,
3640 // Label 216: @8739
3641 GIM_Reject,
3642 // Label 185: @8740
3643 GIM_Try, /*On fail goto*//*Label 228*/ GIMT_Encode4(8854),
3644 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s8,
3645 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
3646 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3647 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3648 GIM_Try, /*On fail goto*//*Label 229*/ GIMT_Encode4(8821), // Rule ID 932 //
3649 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
3650 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
3651 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
3652 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
3653 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s8,
3654 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3655 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3656 GIM_CheckIsSafeToFold, /*NumInsns*/1,
3657 // (sub:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, (mul:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)) => (VMLSv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
3658 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMLSv8i8),
3659 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
3660 GIR_RootToRootCopy, /*OpIdx*/1, // src1
3661 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
3662 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
3663 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
3664 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3665 GIR_RootConstrainSelectedInstOperands,
3666 // GIR_Coverage, 932,
3667 GIR_EraseRootFromParent_Done,
3668 // Label 229: @8821
3669 GIM_Try, /*On fail goto*//*Label 230*/ GIMT_Encode4(8853), // Rule ID 977 //
3670 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
3671 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3672 // (sub:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VSUBv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
3673 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSUBv8i8),
3674 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
3675 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
3676 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
3677 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
3678 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3679 GIR_RootConstrainSelectedInstOperands,
3680 // GIR_Coverage, 977,
3681 GIR_EraseRootFromParent_Done,
3682 // Label 230: @8853
3683 GIM_Reject,
3684 // Label 228: @8854
3685 GIM_Reject,
3686 // Label 186: @8855
3687 GIM_Try, /*On fail goto*//*Label 231*/ GIMT_Encode4(9567),
3688 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
3689 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
3690 GIM_Try, /*On fail goto*//*Label 232*/ GIMT_Encode4(8938), // Rule ID 995 //
3691 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
3692 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3693 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3694 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
3695 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
3696 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3697 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
3698 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ANYEXT),
3699 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v8s8,
3700 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3701 GIM_CheckIsSafeToFold, /*NumInsns*/2,
3702 // (sub:{ *:[v8i16] } (anyext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn), (anyext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) => (VSUBLuv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
3703 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSUBLuv8i16),
3704 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
3705 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
3706 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
3707 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
3708 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3709 GIR_RootConstrainSelectedInstOperands,
3710 // GIR_Coverage, 995,
3711 GIR_EraseRootFromParent_Done,
3712 // Label 232: @8938
3713 GIM_Try, /*On fail goto*//*Label 233*/ GIMT_Encode4(9010), // Rule ID 994 //
3714 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
3715 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3716 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3717 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
3718 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
3719 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3720 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
3721 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ZEXT),
3722 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v8s8,
3723 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3724 GIM_CheckIsSafeToFold, /*NumInsns*/2,
3725 // (sub:{ *:[v8i16] } (anyext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn), (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) => (VSUBLuv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
3726 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSUBLuv8i16),
3727 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
3728 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
3729 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
3730 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
3731 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3732 GIR_RootConstrainSelectedInstOperands,
3733 // GIR_Coverage, 994,
3734 GIR_EraseRootFromParent_Done,
3735 // Label 233: @9010
3736 GIM_Try, /*On fail goto*//*Label 234*/ GIMT_Encode4(9082), // Rule ID 989 //
3737 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
3738 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3739 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3740 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
3741 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
3742 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3743 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
3744 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SEXT),
3745 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v8s8,
3746 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3747 GIM_CheckIsSafeToFold, /*NumInsns*/2,
3748 // (sub:{ *:[v8i16] } (sext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn), (sext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) => (VSUBLsv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
3749 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSUBLsv8i16),
3750 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
3751 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
3752 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
3753 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
3754 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3755 GIR_RootConstrainSelectedInstOperands,
3756 // GIR_Coverage, 989,
3757 GIR_EraseRootFromParent_Done,
3758 // Label 234: @9082
3759 GIM_Try, /*On fail goto*//*Label 235*/ GIMT_Encode4(9154), // Rule ID 993 //
3760 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
3761 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3762 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3763 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
3764 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
3765 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3766 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
3767 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ANYEXT),
3768 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v8s8,
3769 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3770 GIM_CheckIsSafeToFold, /*NumInsns*/2,
3771 // (sub:{ *:[v8i16] } (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn), (anyext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) => (VSUBLuv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
3772 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSUBLuv8i16),
3773 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
3774 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
3775 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
3776 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
3777 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3778 GIR_RootConstrainSelectedInstOperands,
3779 // GIR_Coverage, 993,
3780 GIR_EraseRootFromParent_Done,
3781 // Label 235: @9154
3782 GIM_Try, /*On fail goto*//*Label 236*/ GIMT_Encode4(9226), // Rule ID 992 //
3783 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
3784 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3785 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3786 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
3787 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
3788 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3789 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
3790 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ZEXT),
3791 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v8s8,
3792 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3793 GIM_CheckIsSafeToFold, /*NumInsns*/2,
3794 // (sub:{ *:[v8i16] } (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn), (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) => (VSUBLuv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
3795 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSUBLuv8i16),
3796 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
3797 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
3798 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
3799 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
3800 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3801 GIR_RootConstrainSelectedInstOperands,
3802 // GIR_Coverage, 992,
3803 GIR_EraseRootFromParent_Done,
3804 // Label 236: @9226
3805 GIM_Try, /*On fail goto*//*Label 237*/ GIMT_Encode4(9296), // Rule ID 936 //
3806 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
3807 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3808 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3809 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
3810 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
3811 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s16,
3812 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s16,
3813 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3814 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3815 GIM_CheckIsSafeToFold, /*NumInsns*/1,
3816 // (sub:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (mul:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)) => (VMLSv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
3817 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMLSv8i16),
3818 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
3819 GIR_RootToRootCopy, /*OpIdx*/1, // src1
3820 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
3821 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
3822 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
3823 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3824 GIR_RootConstrainSelectedInstOperands,
3825 // GIR_Coverage, 936,
3826 GIR_EraseRootFromParent_Done,
3827 // Label 237: @9296
3828 GIM_Try, /*On fail goto*//*Label 238*/ GIMT_Encode4(9353), // Rule ID 1008 //
3829 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
3830 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3831 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3832 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
3833 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
3834 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
3835 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3836 GIM_CheckIsSafeToFold, /*NumInsns*/1,
3837 // (sub:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, (anyext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) => (VSUBWuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
3838 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSUBWuv8i16),
3839 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
3840 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
3841 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
3842 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
3843 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3844 GIR_RootConstrainSelectedInstOperands,
3845 // GIR_Coverage, 1008,
3846 GIR_EraseRootFromParent_Done,
3847 // Label 238: @9353
3848 GIM_Try, /*On fail goto*//*Label 239*/ GIMT_Encode4(9410), // Rule ID 1004 //
3849 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
3850 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3851 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3852 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
3853 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
3854 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
3855 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3856 GIM_CheckIsSafeToFold, /*NumInsns*/1,
3857 // (sub:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, (sext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) => (VSUBWsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
3858 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSUBWsv8i16),
3859 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
3860 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
3861 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
3862 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
3863 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3864 GIR_RootConstrainSelectedInstOperands,
3865 // GIR_Coverage, 1004,
3866 GIR_EraseRootFromParent_Done,
3867 // Label 239: @9410
3868 GIM_Try, /*On fail goto*//*Label 240*/ GIMT_Encode4(9467), // Rule ID 1007 //
3869 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
3870 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3871 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3872 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
3873 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
3874 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
3875 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
3876 GIM_CheckIsSafeToFold, /*NumInsns*/1,
3877 // (sub:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) => (VSUBWuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
3878 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSUBWuv8i16),
3879 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
3880 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
3881 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
3882 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
3883 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3884 GIR_RootConstrainSelectedInstOperands,
3885 // GIR_Coverage, 1007,
3886 GIR_EraseRootFromParent_Done,
3887 // Label 240: @9467
3888 GIM_Try, /*On fail goto*//*Label 241*/ GIMT_Encode4(9507), // Rule ID 981 //
3889 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
3890 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3891 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3892 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3893 // (sub:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VSUBv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
3894 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSUBv8i16),
3895 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
3896 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
3897 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
3898 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
3899 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3900 GIR_RootConstrainSelectedInstOperands,
3901 // GIR_Coverage, 981,
3902 GIR_EraseRootFromParent_Done,
3903 // Label 241: @9507
3904 GIM_Try, /*On fail goto*//*Label 242*/ GIMT_Encode4(9566), // Rule ID 3601 //
3905 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
3906 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
3907 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
3908 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
3909 // (sub:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) => (MVE_VSUBi16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
3910 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
3911 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
3912 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
3913 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSUBi16),
3914 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
3915 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
3916 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
3917 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
3918 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3919 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3920 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
3921 GIR_RootConstrainSelectedInstOperands,
3922 // GIR_Coverage, 3601,
3923 GIR_EraseRootFromParent_Done,
3924 // Label 242: @9566
3925 GIM_Reject,
3926 // Label 231: @9567
3927 GIM_Reject,
3928 // Label 187: @9568
3929 GIM_Try, /*On fail goto*//*Label 243*/ GIMT_Encode4(9749),
3930 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
3931 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
3932 GIM_Try, /*On fail goto*//*Label 244*/ GIMT_Encode4(9649), // Rule ID 935 //
3933 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
3934 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3935 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3936 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
3937 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
3938 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v16s8,
3939 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v16s8,
3940 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3941 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3942 GIM_CheckIsSafeToFold, /*NumInsns*/1,
3943 // (sub:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, (mul:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)) => (VMLSv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
3944 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMLSv16i8),
3945 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
3946 GIR_RootToRootCopy, /*OpIdx*/1, // src1
3947 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
3948 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
3949 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
3950 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3951 GIR_RootConstrainSelectedInstOperands,
3952 // GIR_Coverage, 935,
3953 GIR_EraseRootFromParent_Done,
3954 // Label 244: @9649
3955 GIM_Try, /*On fail goto*//*Label 245*/ GIMT_Encode4(9689), // Rule ID 980 //
3956 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
3957 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3958 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3959 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
3960 // (sub:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VSUBv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
3961 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSUBv16i8),
3962 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
3963 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
3964 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
3965 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
3966 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3967 GIR_RootConstrainSelectedInstOperands,
3968 // GIR_Coverage, 980,
3969 GIR_EraseRootFromParent_Done,
3970 // Label 245: @9689
3971 GIM_Try, /*On fail goto*//*Label 246*/ GIMT_Encode4(9748), // Rule ID 3597 //
3972 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
3973 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
3974 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
3975 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
3976 // (sub:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) => (MVE_VSUBi8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
3977 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
3978 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
3979 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
3980 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSUBi8),
3981 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
3982 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
3983 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
3984 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
3985 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3986 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
3987 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
3988 GIR_RootConstrainSelectedInstOperands,
3989 // GIR_Coverage, 3597,
3990 GIR_EraseRootFromParent_Done,
3991 // Label 246: @9748
3992 GIM_Reject,
3993 // Label 243: @9749
3994 GIM_Reject,
3995 // Label 188: @9750
3996 GIM_Reject,
3997 // Label 2: @9751
3998 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(1), GIMT_Encode2(16), /*)*//*default:*//*Label 254*/ GIMT_Encode4(10620),
3999 /*GILLT_s32*//*Label 247*/ GIMT_Encode4(9822), GIMT_Encode4(0), GIMT_Encode4(0),
4000 /*GILLT_v2s32*//*Label 248*/ GIMT_Encode4(10143), GIMT_Encode4(0), GIMT_Encode4(0),
4001 /*GILLT_v4s16*//*Label 249*/ GIMT_Encode4(10190),
4002 /*GILLT_v4s32*//*Label 250*/ GIMT_Encode4(10237), GIMT_Encode4(0), GIMT_Encode4(0),
4003 /*GILLT_v8s8*//*Label 251*/ GIMT_Encode4(10349),
4004 /*GILLT_v8s16*//*Label 252*/ GIMT_Encode4(10396), GIMT_Encode4(0), GIMT_Encode4(0),
4005 /*GILLT_v16s8*//*Label 253*/ GIMT_Encode4(10508),
4006 // Label 247: @9822
4007 GIM_Try, /*On fail goto*//*Label 255*/ GIMT_Encode4(10142),
4008 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
4009 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
4010 GIM_Try, /*On fail goto*//*Label 256*/ GIMT_Encode4(9921), // Rule ID 186 //
4011 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV5TE_IsARM),
4012 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
4013 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4014 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ASHR),
4015 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
4016 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
4017 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
4018 GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 16,
4019 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4020 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ASHR),
4021 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
4022 GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
4023 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
4024 GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 16,
4025 GIM_CheckIsSafeToFold, /*NumInsns*/2,
4026 // (mul:{ *:[i32] } (sra:{ *:[i32] } GPR:{ *:[i32] }:$Rn, 16:{ *:[i32] }), (sra:{ *:[i32] } GPR:{ *:[i32] }:$Rm, 16:{ *:[i32] })) => (SMULTT:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
4027 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SMULTT),
4028 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
4029 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
4030 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rm
4031 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
4032 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4033 GIR_RootConstrainSelectedInstOperands,
4034 // GIR_Coverage, 186,
4035 GIR_EraseRootFromParent_Done,
4036 // Label 256: @9921
4037 GIM_Try, /*On fail goto*//*Label 257*/ GIMT_Encode4(10009), // Rule ID 523 //
4038 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
4039 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
4040 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4041 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ASHR),
4042 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
4043 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
4044 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
4045 GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 16,
4046 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4047 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ASHR),
4048 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
4049 GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
4050 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
4051 GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 16,
4052 GIM_CheckIsSafeToFold, /*NumInsns*/2,
4053 // (mul:{ *:[i32] } (sra:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, 16:{ *:[i32] }), (sra:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 16:{ *:[i32] })) => (t2SMULTT:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
4054 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SMULTT),
4055 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
4056 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
4057 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rm
4058 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
4059 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4060 GIR_RootConstrainSelectedInstOperands,
4061 // GIR_Coverage, 523,
4062 GIR_EraseRootFromParent_Done,
4063 // Label 257: @10009
4064 GIM_Try, /*On fail goto*//*Label 258*/ GIMT_Encode4(10055), // Rule ID 169 //
4065 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
4066 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
4067 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
4068 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
4069 // (mul:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (MUL:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
4070 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MUL),
4071 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
4072 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
4073 GIR_RootToRootCopy, /*OpIdx*/2, // Rm
4074 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
4075 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4076 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4077 GIR_RootConstrainSelectedInstOperands,
4078 // GIR_Coverage, 169,
4079 GIR_EraseRootFromParent_Done,
4080 // Label 258: @10055
4081 GIM_Try, /*On fail goto*//*Label 259*/ GIMT_Encode4(10101), // Rule ID 170 //
4082 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM_NoV6_UseMulOps),
4083 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
4084 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
4085 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
4086 // (mul:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (MULv5:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
4087 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MULv5),
4088 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
4089 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
4090 GIR_RootToRootCopy, /*OpIdx*/2, // Rm
4091 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
4092 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4093 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4094 GIR_RootConstrainSelectedInstOperands,
4095 // GIR_Coverage, 170,
4096 GIR_EraseRootFromParent_Done,
4097 // Label 259: @10101
4098 GIM_Try, /*On fail goto*//*Label 260*/ GIMT_Encode4(10141), // Rule ID 510 //
4099 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
4100 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
4101 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
4102 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
4103 // (mul:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2MUL:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
4104 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2MUL),
4105 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
4106 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
4107 GIR_RootToRootCopy, /*OpIdx*/2, // Rm
4108 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
4109 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4110 GIR_RootConstrainSelectedInstOperands,
4111 // GIR_Coverage, 510,
4112 GIR_EraseRootFromParent_Done,
4113 // Label 260: @10141
4114 GIM_Reject,
4115 // Label 255: @10142
4116 GIM_Reject,
4117 // Label 248: @10143
4118 GIM_Try, /*On fail goto*//*Label 261*/ GIMT_Encode4(10189), // Rule ID 854 //
4119 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
4120 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
4121 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
4122 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
4123 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
4124 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
4125 // (mul:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VMULv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
4126 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMULv2i32),
4127 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
4128 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
4129 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
4130 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
4131 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4132 GIR_RootConstrainSelectedInstOperands,
4133 // GIR_Coverage, 854,
4134 GIR_EraseRootFromParent_Done,
4135 // Label 261: @10189
4136 GIM_Reject,
4137 // Label 249: @10190
4138 GIM_Try, /*On fail goto*//*Label 262*/ GIMT_Encode4(10236), // Rule ID 853 //
4139 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
4140 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
4141 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
4142 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
4143 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
4144 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
4145 // (mul:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VMULv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
4146 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMULv4i16),
4147 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
4148 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
4149 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
4150 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
4151 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4152 GIR_RootConstrainSelectedInstOperands,
4153 // GIR_Coverage, 853,
4154 GIR_EraseRootFromParent_Done,
4155 // Label 262: @10236
4156 GIM_Reject,
4157 // Label 250: @10237
4158 GIM_Try, /*On fail goto*//*Label 263*/ GIMT_Encode4(10348),
4159 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
4160 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
4161 GIM_Try, /*On fail goto*//*Label 264*/ GIMT_Encode4(10288), // Rule ID 857 //
4162 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
4163 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
4164 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
4165 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
4166 // (mul:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VMULv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
4167 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMULv4i32),
4168 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
4169 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
4170 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
4171 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
4172 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4173 GIR_RootConstrainSelectedInstOperands,
4174 // GIR_Coverage, 857,
4175 GIR_EraseRootFromParent_Done,
4176 // Label 264: @10288
4177 GIM_Try, /*On fail goto*//*Label 265*/ GIMT_Encode4(10347), // Rule ID 3563 //
4178 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
4179 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
4180 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
4181 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
4182 // (mul:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) => (MVE_VMULi32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
4183 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
4184 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
4185 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
4186 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMULi32),
4187 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
4188 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
4189 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
4190 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
4191 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4192 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4193 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
4194 GIR_RootConstrainSelectedInstOperands,
4195 // GIR_Coverage, 3563,
4196 GIR_EraseRootFromParent_Done,
4197 // Label 265: @10347
4198 GIM_Reject,
4199 // Label 263: @10348
4200 GIM_Reject,
4201 // Label 251: @10349
4202 GIM_Try, /*On fail goto*//*Label 266*/ GIMT_Encode4(10395), // Rule ID 852 //
4203 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
4204 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s8,
4205 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
4206 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
4207 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
4208 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
4209 // (mul:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VMULv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
4210 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMULv8i8),
4211 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
4212 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
4213 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
4214 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
4215 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4216 GIR_RootConstrainSelectedInstOperands,
4217 // GIR_Coverage, 852,
4218 GIR_EraseRootFromParent_Done,
4219 // Label 266: @10395
4220 GIM_Reject,
4221 // Label 252: @10396
4222 GIM_Try, /*On fail goto*//*Label 267*/ GIMT_Encode4(10507),
4223 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
4224 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
4225 GIM_Try, /*On fail goto*//*Label 268*/ GIMT_Encode4(10447), // Rule ID 856 //
4226 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
4227 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
4228 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
4229 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
4230 // (mul:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VMULv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
4231 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMULv8i16),
4232 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
4233 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
4234 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
4235 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
4236 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4237 GIR_RootConstrainSelectedInstOperands,
4238 // GIR_Coverage, 856,
4239 GIR_EraseRootFromParent_Done,
4240 // Label 268: @10447
4241 GIM_Try, /*On fail goto*//*Label 269*/ GIMT_Encode4(10506), // Rule ID 3559 //
4242 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
4243 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
4244 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
4245 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
4246 // (mul:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) => (MVE_VMULi16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
4247 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
4248 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
4249 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
4250 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMULi16),
4251 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
4252 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
4253 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
4254 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
4255 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4256 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4257 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
4258 GIR_RootConstrainSelectedInstOperands,
4259 // GIR_Coverage, 3559,
4260 GIR_EraseRootFromParent_Done,
4261 // Label 269: @10506
4262 GIM_Reject,
4263 // Label 267: @10507
4264 GIM_Reject,
4265 // Label 253: @10508
4266 GIM_Try, /*On fail goto*//*Label 270*/ GIMT_Encode4(10619),
4267 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
4268 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
4269 GIM_Try, /*On fail goto*//*Label 271*/ GIMT_Encode4(10559), // Rule ID 855 //
4270 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
4271 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
4272 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
4273 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
4274 // (mul:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VMULv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
4275 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMULv16i8),
4276 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
4277 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
4278 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
4279 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
4280 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4281 GIR_RootConstrainSelectedInstOperands,
4282 // GIR_Coverage, 855,
4283 GIR_EraseRootFromParent_Done,
4284 // Label 271: @10559
4285 GIM_Try, /*On fail goto*//*Label 272*/ GIMT_Encode4(10618), // Rule ID 3555 //
4286 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
4287 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
4288 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
4289 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
4290 // (mul:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) => (MVE_VMULi8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
4291 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
4292 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
4293 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
4294 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMULi8),
4295 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
4296 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
4297 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
4298 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
4299 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4300 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4301 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
4302 GIR_RootConstrainSelectedInstOperands,
4303 // GIR_Coverage, 3555,
4304 GIR_EraseRootFromParent_Done,
4305 // Label 272: @10618
4306 GIM_Reject,
4307 // Label 270: @10619
4308 GIM_Reject,
4309 // Label 254: @10620
4310 GIM_Reject,
4311 // Label 3: @10621
4312 GIM_Try, /*On fail goto*//*Label 273*/ GIMT_Encode4(10716),
4313 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
4314 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
4315 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
4316 GIM_Try, /*On fail goto*//*Label 274*/ GIMT_Encode4(10675), // Rule ID 195 //
4317 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDivideInARM_IsARM),
4318 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
4319 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
4320 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
4321 // (sdiv:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) => (SDIV:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
4322 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SDIV),
4323 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
4324 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
4325 GIR_RootToRootCopy, /*OpIdx*/2, // Rm
4326 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
4327 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4328 GIR_RootConstrainSelectedInstOperands,
4329 // GIR_Coverage, 195,
4330 GIR_EraseRootFromParent_Done,
4331 // Label 274: @10675
4332 GIM_Try, /*On fail goto*//*Label 275*/ GIMT_Encode4(10715), // Rule ID 540 //
4333 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDivideInThumb_HasV8MBaseline_IsThumb),
4334 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
4335 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
4336 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
4337 // (sdiv:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SDIV:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
4338 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SDIV),
4339 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
4340 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
4341 GIR_RootToRootCopy, /*OpIdx*/2, // Rm
4342 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
4343 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4344 GIR_RootConstrainSelectedInstOperands,
4345 // GIR_Coverage, 540,
4346 GIR_EraseRootFromParent_Done,
4347 // Label 275: @10715
4348 GIM_Reject,
4349 // Label 273: @10716
4350 GIM_Reject,
4351 // Label 4: @10717
4352 GIM_Try, /*On fail goto*//*Label 276*/ GIMT_Encode4(10812),
4353 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
4354 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
4355 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
4356 GIM_Try, /*On fail goto*//*Label 277*/ GIMT_Encode4(10771), // Rule ID 196 //
4357 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDivideInARM_IsARM),
4358 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
4359 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
4360 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
4361 // (udiv:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) => (UDIV:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
4362 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::UDIV),
4363 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
4364 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
4365 GIR_RootToRootCopy, /*OpIdx*/2, // Rm
4366 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
4367 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4368 GIR_RootConstrainSelectedInstOperands,
4369 // GIR_Coverage, 196,
4370 GIR_EraseRootFromParent_Done,
4371 // Label 277: @10771
4372 GIM_Try, /*On fail goto*//*Label 278*/ GIMT_Encode4(10811), // Rule ID 541 //
4373 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDivideInThumb_HasV8MBaseline_IsThumb),
4374 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
4375 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
4376 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
4377 // (udiv:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UDIV:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
4378 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2UDIV),
4379 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
4380 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
4381 GIR_RootToRootCopy, /*OpIdx*/2, // Rm
4382 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
4383 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4384 GIR_RootConstrainSelectedInstOperands,
4385 // GIR_Coverage, 541,
4386 GIR_EraseRootFromParent_Done,
4387 // Label 278: @10811
4388 GIM_Reject,
4389 // Label 276: @10812
4390 GIM_Reject,
4391 // Label 5: @10813
4392 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(1), GIMT_Encode2(16), /*)*//*default:*//*Label 292*/ GIMT_Encode4(13772),
4393 /*GILLT_s32*//*Label 279*/ GIMT_Encode4(10884),
4394 /*GILLT_s64*//*Label 280*/ GIMT_Encode4(12688),
4395 /*GILLT_v2s1*//*Label 281*/ GIMT_Encode4(12735),
4396 /*GILLT_v2s32*//*Label 282*/ GIMT_Encode4(12847),
4397 /*GILLT_v2s64*//*Label 283*/ GIMT_Encode4(12894),
4398 /*GILLT_v4s1*//*Label 284*/ GIMT_Encode4(13006),
4399 /*GILLT_v4s16*//*Label 285*/ GIMT_Encode4(13118),
4400 /*GILLT_v4s32*//*Label 286*/ GIMT_Encode4(13165), GIMT_Encode4(0),
4401 /*GILLT_v8s1*//*Label 287*/ GIMT_Encode4(13277),
4402 /*GILLT_v8s8*//*Label 288*/ GIMT_Encode4(13389),
4403 /*GILLT_v8s16*//*Label 289*/ GIMT_Encode4(13436), GIMT_Encode4(0),
4404 /*GILLT_v16s1*//*Label 290*/ GIMT_Encode4(13548),
4405 /*GILLT_v16s8*//*Label 291*/ GIMT_Encode4(13660),
4406 // Label 279: @10884
4407 GIM_Try, /*On fail goto*//*Label 293*/ GIMT_Encode4(12687),
4408 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
4409 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
4410 GIM_Try, /*On fail goto*//*Label 294*/ GIMT_Encode4(10968), // Rule ID 1879 //
4411 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
4412 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
4413 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4414 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
4415 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
4416 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
4417 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
4418 GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 8,
4419 GIM_CheckConstantInt, /*MI*/0, /*Op*/2, GIMT_Encode8(16711935),
4420 GIM_CheckIsSafeToFold, /*NumInsns*/1,
4421 // (and:{ *:[i32] } (srl:{ *:[i32] } GPR:{ *:[i32] }:$Src, 8:{ *:[i32] }), 16711935:{ *:[i32] }) => (UXTB16:{ *:[i32] } GPR:{ *:[i32] }:$Src, 1:{ *:[i32] })
4422 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::UXTB16),
4423 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
4424 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Src
4425 GIR_AddImm8, /*InsnID*/0, /*Imm*/1,
4426 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
4427 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4428 GIR_RootConstrainSelectedInstOperands,
4429 // GIR_Coverage, 1879,
4430 GIR_EraseRootFromParent_Done,
4431 // Label 294: @10968
4432 GIM_Try, /*On fail goto*//*Label 295*/ GIMT_Encode4(11041), // Rule ID 2119 //
4433 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
4434 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
4435 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4436 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
4437 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
4438 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
4439 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
4440 GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 8,
4441 GIM_CheckConstantInt, /*MI*/0, /*Op*/2, GIMT_Encode8(16711935),
4442 GIM_CheckIsSafeToFold, /*NumInsns*/1,
4443 // (and:{ *:[i32] } (srl:{ *:[i32] } rGPR:{ *:[i32] }:$Src, 8:{ *:[i32] }), 16711935:{ *:[i32] }) => (t2UXTB16:{ *:[i32] } rGPR:{ *:[i32] }:$Src, 1:{ *:[i32] })
4444 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2UXTB16),
4445 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
4446 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Src
4447 GIR_AddImm8, /*InsnID*/0, /*Imm*/1,
4448 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
4449 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4450 GIR_RootConstrainSelectedInstOperands,
4451 // GIR_Coverage, 2119,
4452 GIR_EraseRootFromParent_Done,
4453 // Label 295: @11041
4454 GIM_Try, /*On fail goto*//*Label 296*/ GIMT_Encode4(11089), // Rule ID 2012 //
4455 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
4456 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
4457 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
4458 GIM_CheckConstantInt, /*MI*/0, /*Op*/2, GIMT_Encode8(255),
4459 // (and:{ *:[i32] } GPR:{ *:[i32] }:$Src, 255:{ *:[i32] }) => (UXTB:{ *:[i32] } GPR:{ *:[i32] }:$Src, 0:{ *:[i32] })
4460 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::UXTB),
4461 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
4462 GIR_RootToRootCopy, /*OpIdx*/1, // Src
4463 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
4464 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
4465 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4466 GIR_RootConstrainSelectedInstOperands,
4467 // GIR_Coverage, 2012,
4468 GIR_EraseRootFromParent_Done,
4469 // Label 296: @11089
4470 GIM_Try, /*On fail goto*//*Label 297*/ GIMT_Encode4(11137), // Rule ID 2013 //
4471 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
4472 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
4473 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
4474 GIM_CheckConstantInt, /*MI*/0, /*Op*/2, GIMT_Encode8(65535),
4475 // (and:{ *:[i32] } GPR:{ *:[i32] }:$Src, 65535:{ *:[i32] }) => (UXTH:{ *:[i32] } GPR:{ *:[i32] }:$Src, 0:{ *:[i32] })
4476 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::UXTH),
4477 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
4478 GIR_RootToRootCopy, /*OpIdx*/1, // Src
4479 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
4480 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
4481 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4482 GIR_RootConstrainSelectedInstOperands,
4483 // GIR_Coverage, 2013,
4484 GIR_EraseRootFromParent_Done,
4485 // Label 297: @11137
4486 GIM_Try, /*On fail goto*//*Label 298*/ GIMT_Encode4(11185), // Rule ID 2014 //
4487 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
4488 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
4489 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
4490 GIM_CheckConstantInt, /*MI*/0, /*Op*/2, GIMT_Encode8(16711935),
4491 // (and:{ *:[i32] } GPR:{ *:[i32] }:$Src, 16711935:{ *:[i32] }) => (UXTB16:{ *:[i32] } GPR:{ *:[i32] }:$Src, 0:{ *:[i32] })
4492 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::UXTB16),
4493 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
4494 GIR_RootToRootCopy, /*OpIdx*/1, // Src
4495 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
4496 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
4497 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4498 GIR_RootConstrainSelectedInstOperands,
4499 // GIR_Coverage, 2014,
4500 GIR_EraseRootFromParent_Done,
4501 // Label 298: @11185
4502 GIM_Try, /*On fail goto*//*Label 299*/ GIMT_Encode4(11233), // Rule ID 2234 //
4503 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
4504 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
4505 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
4506 GIM_CheckConstantInt, /*MI*/0, /*Op*/2, GIMT_Encode8(255),
4507 // (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 255:{ *:[i32] }) => (t2UXTB:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
4508 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2UXTB),
4509 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
4510 GIR_RootToRootCopy, /*OpIdx*/1, // Rm
4511 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
4512 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
4513 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4514 GIR_RootConstrainSelectedInstOperands,
4515 // GIR_Coverage, 2234,
4516 GIR_EraseRootFromParent_Done,
4517 // Label 299: @11233
4518 GIM_Try, /*On fail goto*//*Label 300*/ GIMT_Encode4(11281), // Rule ID 2235 //
4519 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
4520 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
4521 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
4522 GIM_CheckConstantInt, /*MI*/0, /*Op*/2, GIMT_Encode8(65535),
4523 // (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 65535:{ *:[i32] }) => (t2UXTH:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
4524 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2UXTH),
4525 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
4526 GIR_RootToRootCopy, /*OpIdx*/1, // Rm
4527 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
4528 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
4529 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4530 GIR_RootConstrainSelectedInstOperands,
4531 // GIR_Coverage, 2235,
4532 GIR_EraseRootFromParent_Done,
4533 // Label 300: @11281
4534 GIM_Try, /*On fail goto*//*Label 301*/ GIMT_Encode4(11329), // Rule ID 2236 //
4535 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
4536 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
4537 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
4538 GIM_CheckConstantInt, /*MI*/0, /*Op*/2, GIMT_Encode8(16711935),
4539 // (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 16711935:{ *:[i32] }) => (t2UXTB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
4540 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2UXTB16),
4541 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
4542 GIR_RootToRootCopy, /*OpIdx*/1, // Rm
4543 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
4544 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
4545 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4546 GIR_RootConstrainSelectedInstOperands,
4547 // GIR_Coverage, 2236,
4548 GIR_EraseRootFromParent_Done,
4549 // Label 301: @11329
4550 GIM_Try, /*On fail goto*//*Label 302*/ GIMT_Encode4(11406), // Rule ID 5556 //
4551 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
4552 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
4553 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4554 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
4555 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
4556 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
4557 GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, uint8_t(-1),
4558 GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4559 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4560 GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_mod_imm),
4561 // MIs[2] Operand 1
4562 // No operand predicates
4563 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
4564 GIM_CheckIsSafeToFold, /*NumInsns*/2,
4565 // (and:{ *:[i32] } (xor:{ *:[i32] } -1:{ *:[i32] }, (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm), GPR:{ *:[i32] }:$Rn) => (BICri:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
4566 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::BICri),
4567 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
4568 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
4569 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm
4570 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
4571 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4572 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4573 GIR_RootConstrainSelectedInstOperands,
4574 // GIR_Coverage, 5556,
4575 GIR_EraseRootFromParent_Done,
4576 // Label 302: @11406
4577 GIM_Try, /*On fail goto*//*Label 303*/ GIMT_Encode4(11483), // Rule ID 5589 //
4578 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
4579 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
4580 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4581 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
4582 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
4583 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
4584 GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, uint8_t(-1),
4585 GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4586 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4587 GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_t2_so_imm),
4588 // MIs[2] Operand 1
4589 // No operand predicates
4590 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
4591 GIM_CheckIsSafeToFold, /*NumInsns*/2,
4592 // (and:{ *:[i32] } (xor:{ *:[i32] } -1:{ *:[i32] }, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm), rGPR:{ *:[i32] }:$Rn) => (t2BICri:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
4593 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2BICri),
4594 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
4595 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
4596 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm
4597 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
4598 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4599 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4600 GIR_RootConstrainSelectedInstOperands,
4601 // GIR_Coverage, 5589,
4602 GIR_EraseRootFromParent_Done,
4603 // Label 303: @11483
4604 GIM_Try, /*On fail goto*//*Label 304*/ GIMT_Encode4(11560), // Rule ID 5555 //
4605 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
4606 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
4607 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4608 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
4609 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
4610 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
4611 GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
4612 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4613 GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_mod_imm),
4614 // MIs[2] Operand 1
4615 // No operand predicates
4616 GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, uint8_t(-1),
4617 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
4618 GIM_CheckIsSafeToFold, /*NumInsns*/2,
4619 // (and:{ *:[i32] } (xor:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm, -1:{ *:[i32] }), GPR:{ *:[i32] }:$Rn) => (BICri:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
4620 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::BICri),
4621 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
4622 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
4623 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm
4624 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
4625 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4626 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4627 GIR_RootConstrainSelectedInstOperands,
4628 // GIR_Coverage, 5555,
4629 GIR_EraseRootFromParent_Done,
4630 // Label 304: @11560
4631 GIM_Try, /*On fail goto*//*Label 305*/ GIMT_Encode4(11637), // Rule ID 5588 //
4632 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
4633 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
4634 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4635 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
4636 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
4637 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
4638 GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
4639 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4640 GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_t2_so_imm),
4641 // MIs[2] Operand 1
4642 // No operand predicates
4643 GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, uint8_t(-1),
4644 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
4645 GIM_CheckIsSafeToFold, /*NumInsns*/2,
4646 // (and:{ *:[i32] } (xor:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm, -1:{ *:[i32] }), rGPR:{ *:[i32] }:$Rn) => (t2BICri:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
4647 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2BICri),
4648 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
4649 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
4650 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm
4651 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
4652 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4653 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4654 GIR_RootConstrainSelectedInstOperands,
4655 // GIR_Coverage, 5588,
4656 GIR_EraseRootFromParent_Done,
4657 // Label 305: @11637
4658 GIM_Try, /*On fail goto*//*Label 306*/ GIMT_Encode4(11714), // Rule ID 5554 //
4659 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
4660 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
4661 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
4662 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4663 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
4664 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
4665 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
4666 GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, uint8_t(-1),
4667 GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4668 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4669 GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_mod_imm),
4670 // MIs[2] Operand 1
4671 // No operand predicates
4672 GIM_CheckIsSafeToFold, /*NumInsns*/2,
4673 // (and:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (xor:{ *:[i32] } -1:{ *:[i32] }, (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm)) => (BICri:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
4674 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::BICri),
4675 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
4676 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
4677 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm
4678 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
4679 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4680 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4681 GIR_RootConstrainSelectedInstOperands,
4682 // GIR_Coverage, 5554,
4683 GIR_EraseRootFromParent_Done,
4684 // Label 306: @11714
4685 GIM_Try, /*On fail goto*//*Label 307*/ GIMT_Encode4(11791), // Rule ID 5587 //
4686 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
4687 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
4688 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
4689 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4690 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
4691 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
4692 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
4693 GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, uint8_t(-1),
4694 GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4695 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4696 GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_t2_so_imm),
4697 // MIs[2] Operand 1
4698 // No operand predicates
4699 GIM_CheckIsSafeToFold, /*NumInsns*/2,
4700 // (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (xor:{ *:[i32] } -1:{ *:[i32] }, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm)) => (t2BICri:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
4701 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2BICri),
4702 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
4703 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
4704 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm
4705 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
4706 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4707 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4708 GIR_RootConstrainSelectedInstOperands,
4709 // GIR_Coverage, 5587,
4710 GIR_EraseRootFromParent_Done,
4711 // Label 307: @11791
4712 GIM_Try, /*On fail goto*//*Label 308*/ GIMT_Encode4(11868), // Rule ID 159 //
4713 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
4714 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
4715 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
4716 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4717 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
4718 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
4719 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
4720 GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
4721 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4722 GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_mod_imm),
4723 // MIs[2] Operand 1
4724 // No operand predicates
4725 GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, uint8_t(-1),
4726 GIM_CheckIsSafeToFold, /*NumInsns*/2,
4727 // (and:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (xor:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm, -1:{ *:[i32] })) => (BICri:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
4728 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::BICri),
4729 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
4730 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
4731 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm
4732 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
4733 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4734 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4735 GIR_RootConstrainSelectedInstOperands,
4736 // GIR_Coverage, 159,
4737 GIR_EraseRootFromParent_Done,
4738 // Label 308: @11868
4739 GIM_Try, /*On fail goto*//*Label 309*/ GIMT_Encode4(11945), // Rule ID 498 //
4740 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
4741 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
4742 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
4743 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4744 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
4745 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
4746 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
4747 GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
4748 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4749 GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_t2_so_imm),
4750 // MIs[2] Operand 1
4751 // No operand predicates
4752 GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, uint8_t(-1),
4753 GIM_CheckIsSafeToFold, /*NumInsns*/2,
4754 // (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (xor:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm, -1:{ *:[i32] })) => (t2BICri:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
4755 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2BICri),
4756 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
4757 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
4758 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm
4759 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
4760 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4761 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4762 GIR_RootConstrainSelectedInstOperands,
4763 // GIR_Coverage, 498,
4764 GIR_EraseRootFromParent_Done,
4765 // Label 309: @11945
4766 GIM_Try, /*On fail goto*//*Label 310*/ GIMT_Encode4(12016), // Rule ID 5557 //
4767 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
4768 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
4769 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4770 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
4771 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
4772 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
4773 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
4774 GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, uint8_t(-1),
4775 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
4776 GIM_CheckIsSafeToFold, /*NumInsns*/1,
4777 // (and:{ *:[i32] } (xor:{ *:[i32] } GPR:{ *:[i32] }:$Rm, -1:{ *:[i32] }), GPR:{ *:[i32] }:$Rn) => (BICrr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
4778 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::BICrr),
4779 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
4780 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
4781 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
4782 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
4783 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4784 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4785 GIR_RootConstrainSelectedInstOperands,
4786 // GIR_Coverage, 5557,
4787 GIR_EraseRootFromParent_Done,
4788 // Label 310: @12016
4789 GIM_Try, /*On fail goto*//*Label 311*/ GIMT_Encode4(12087), // Rule ID 5590 //
4790 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
4791 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
4792 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4793 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
4794 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
4795 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
4796 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
4797 GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, uint8_t(-1),
4798 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
4799 GIM_CheckIsSafeToFold, /*NumInsns*/1,
4800 // (and:{ *:[i32] } (xor:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, -1:{ *:[i32] }), rGPR:{ *:[i32] }:$Rn) => (t2BICrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
4801 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2BICrr),
4802 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
4803 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
4804 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
4805 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
4806 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4807 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4808 GIR_RootConstrainSelectedInstOperands,
4809 // GIR_Coverage, 5590,
4810 GIR_EraseRootFromParent_Done,
4811 // Label 311: @12087
4812 GIM_Try, /*On fail goto*//*Label 312*/ GIMT_Encode4(12158), // Rule ID 160 //
4813 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
4814 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
4815 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
4816 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4817 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
4818 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
4819 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
4820 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
4821 GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, uint8_t(-1),
4822 GIM_CheckIsSafeToFold, /*NumInsns*/1,
4823 // (and:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (xor:{ *:[i32] } GPR:{ *:[i32] }:$Rm, -1:{ *:[i32] })) => (BICrr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
4824 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::BICrr),
4825 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
4826 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
4827 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
4828 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
4829 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4830 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4831 GIR_RootConstrainSelectedInstOperands,
4832 // GIR_Coverage, 160,
4833 GIR_EraseRootFromParent_Done,
4834 // Label 312: @12158
4835 GIM_Try, /*On fail goto*//*Label 313*/ GIMT_Encode4(12229), // Rule ID 499 //
4836 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
4837 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
4838 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
4839 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4840 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
4841 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
4842 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
4843 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
4844 GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, uint8_t(-1),
4845 GIM_CheckIsSafeToFold, /*NumInsns*/1,
4846 // (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (xor:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, -1:{ *:[i32] })) => (t2BICrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
4847 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2BICrr),
4848 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
4849 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
4850 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
4851 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
4852 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4853 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4854 GIR_RootConstrainSelectedInstOperands,
4855 // GIR_Coverage, 499,
4856 GIR_EraseRootFromParent_Done,
4857 // Label 313: @12229
4858 GIM_Try, /*On fail goto*//*Label 314*/ GIMT_Encode4(12274), // Rule ID 352 //
4859 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsThumb_IsThumb1Only),
4860 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::tGPRRegClassID),
4861 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::tGPRRegClassID),
4862 GIM_CheckConstantInt, /*MI*/0, /*Op*/2, GIMT_Encode8(255),
4863 // (and:{ *:[i32] } tGPR:{ *:[i32] }:$Rm, 255:{ *:[i32] }) => (tUXTB:{ *:[i32] } tGPR:{ *:[i32] }:$Rm)
4864 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::tUXTB),
4865 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
4866 GIR_RootToRootCopy, /*OpIdx*/1, // Rm
4867 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
4868 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4869 GIR_RootConstrainSelectedInstOperands,
4870 // GIR_Coverage, 352,
4871 GIR_EraseRootFromParent_Done,
4872 // Label 314: @12274
4873 GIM_Try, /*On fail goto*//*Label 315*/ GIMT_Encode4(12319), // Rule ID 353 //
4874 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsThumb_IsThumb1Only),
4875 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::tGPRRegClassID),
4876 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::tGPRRegClassID),
4877 GIM_CheckConstantInt, /*MI*/0, /*Op*/2, GIMT_Encode8(65535),
4878 // (and:{ *:[i32] } tGPR:{ *:[i32] }:$Rm, 65535:{ *:[i32] }) => (tUXTH:{ *:[i32] } tGPR:{ *:[i32] }:$Rm)
4879 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::tUXTH),
4880 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
4881 GIR_RootToRootCopy, /*OpIdx*/1, // Rm
4882 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
4883 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4884 GIR_RootConstrainSelectedInstOperands,
4885 // GIR_Coverage, 353,
4886 GIR_EraseRootFromParent_Done,
4887 // Label 315: @12319
4888 GIM_Try, /*On fail goto*//*Label 316*/ GIMT_Encode4(12378), // Rule ID 1918 //
4889 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
4890 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
4891 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
4892 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4893 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4894 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_mod_imm_not),
4895 // MIs[1] Operand 1
4896 // No operand predicates
4897 GIM_CheckIsSafeToFold, /*NumInsns*/1,
4898 // (and:{ *:[i32] } GPR:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_mod_imm_not>><<X:imm_not_XFORM>>:$imm) => (BICri:{ *:[i32] } GPR:{ *:[i32] }:$src, (imm_not_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_mod_imm_not>>:$imm))
4899 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::BICri),
4900 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
4901 GIR_RootToRootCopy, /*OpIdx*/1, // src
4902 GIR_CustomRenderer, /*InsnID*/0, /*OldInsnID*/1, /*Renderer*/GIMT_Encode2(GICR_renderInvertedImm), // imm
4903 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
4904 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4905 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4906 GIR_RootConstrainSelectedInstOperands,
4907 // GIR_Coverage, 1918,
4908 GIR_EraseRootFromParent_Done,
4909 // Label 316: @12378
4910 GIM_Try, /*On fail goto*//*Label 317*/ GIMT_Encode4(12435), // Rule ID 147 //
4911 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
4912 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
4913 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
4914 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4915 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4916 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_mod_imm),
4917 // MIs[1] Operand 1
4918 // No operand predicates
4919 GIM_CheckIsSafeToFold, /*NumInsns*/1,
4920 // (and:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm) => (ANDri:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
4921 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::ANDri),
4922 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
4923 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
4924 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
4925 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
4926 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4927 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4928 GIR_RootConstrainSelectedInstOperands,
4929 // GIR_Coverage, 147,
4930 GIR_EraseRootFromParent_Done,
4931 // Label 317: @12435
4932 GIM_Try, /*On fail goto*//*Label 318*/ GIMT_Encode4(12492), // Rule ID 489 //
4933 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
4934 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
4935 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
4936 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4937 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4938 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_t2_so_imm),
4939 // MIs[1] Operand 1
4940 // No operand predicates
4941 GIM_CheckIsSafeToFold, /*NumInsns*/1,
4942 // (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm) => (t2ANDri:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
4943 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2ANDri),
4944 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
4945 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
4946 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
4947 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
4948 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4949 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4950 GIR_RootConstrainSelectedInstOperands,
4951 // GIR_Coverage, 489,
4952 GIR_EraseRootFromParent_Done,
4953 // Label 318: @12492
4954 GIM_Try, /*On fail goto*//*Label 319*/ GIMT_Encode4(12543), // Rule ID 163 //
4955 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6T2_IsARM),
4956 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
4957 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
4958 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4959 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4960 // MIs[1] Operand 1
4961 // No operand predicates
4962 GIM_CheckCxxInsnPredicate, /*MI*/1, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_bf_inv_mask_imm),
4963 GIM_CheckIsSafeToFold, /*NumInsns*/1,
4964 // (and:{ *:[i32] } GPR:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_bf_inv_mask_imm>>:$imm) => (BFC:{ *:[i32] } GPR:{ *:[i32] }:$src, (imm:{ *:[i32] }):$imm)
4965 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::BFC),
4966 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
4967 GIR_RootToRootCopy, /*OpIdx*/1, // src
4968 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
4969 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
4970 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4971 GIR_RootConstrainSelectedInstOperands,
4972 // GIR_Coverage, 163,
4973 GIR_EraseRootFromParent_Done,
4974 // Label 319: @12543
4975 GIM_Try, /*On fail goto*//*Label 320*/ GIMT_Encode4(12594), // Rule ID 501 //
4976 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
4977 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
4978 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
4979 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4980 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4981 // MIs[1] Operand 1
4982 // No operand predicates
4983 GIM_CheckCxxInsnPredicate, /*MI*/1, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_bf_inv_mask_imm),
4984 GIM_CheckIsSafeToFold, /*NumInsns*/1,
4985 // (and:{ *:[i32] } rGPR:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_bf_inv_mask_imm>>:$imm) => (t2BFC:{ *:[i32] } rGPR:{ *:[i32] }:$src, (imm:{ *:[i32] }):$imm)
4986 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2BFC),
4987 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
4988 GIR_RootToRootCopy, /*OpIdx*/1, // src
4989 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
4990 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
4991 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
4992 GIR_RootConstrainSelectedInstOperands,
4993 // GIR_Coverage, 501,
4994 GIR_EraseRootFromParent_Done,
4995 // Label 320: @12594
4996 GIM_Try, /*On fail goto*//*Label 321*/ GIMT_Encode4(12640), // Rule ID 148 //
4997 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
4998 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
4999 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
5000 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
5001 // (and:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) => (ANDrr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
5002 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::ANDrr),
5003 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
5004 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
5005 GIR_RootToRootCopy, /*OpIdx*/2, // Rm
5006 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
5007 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
5008 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
5009 GIR_RootConstrainSelectedInstOperands,
5010 // GIR_Coverage, 148,
5011 GIR_EraseRootFromParent_Done,
5012 // Label 321: @12640
5013 GIM_Try, /*On fail goto*//*Label 322*/ GIMT_Encode4(12686), // Rule ID 490 //
5014 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
5015 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
5016 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
5017 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
5018 // (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2ANDrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
5019 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2ANDrr),
5020 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
5021 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
5022 GIR_RootToRootCopy, /*OpIdx*/2, // Rm
5023 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
5024 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
5025 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
5026 GIR_RootConstrainSelectedInstOperands,
5027 // GIR_Coverage, 490,
5028 GIR_EraseRootFromParent_Done,
5029 // Label 322: @12686
5030 GIM_Reject,
5031 // Label 293: @12687
5032 GIM_Reject,
5033 // Label 280: @12688
5034 GIM_Try, /*On fail goto*//*Label 323*/ GIMT_Encode4(12734), // Rule ID 2523 //
5035 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
5036 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
5037 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
5038 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
5039 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
5040 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
5041 // (and:{ *:[v1i64] } DPR:{ *:[v1i64] }:$LHS, DPR:{ *:[v1i64] }:$RHS) => (VANDd:{ *:[v1i64] } DPR:{ *:[v1i64] }:$LHS, DPR:{ *:[v1i64] }:$RHS)
5042 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VANDd),
5043 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
5044 GIR_RootToRootCopy, /*OpIdx*/1, // LHS
5045 GIR_RootToRootCopy, /*OpIdx*/2, // RHS
5046 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
5047 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
5048 GIR_RootConstrainSelectedInstOperands,
5049 // GIR_Coverage, 2523,
5050 GIR_EraseRootFromParent_Done,
5051 // Label 323: @12734
5052 GIM_Reject,
5053 // Label 281: @12735
5054 GIM_Try, /*On fail goto*//*Label 324*/ GIMT_Encode4(12846), // Rule ID 1850 //
5055 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
5056 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s1,
5057 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s1,
5058 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::VCCRRegClassID),
5059 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::VCCRRegClassID),
5060 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::VCCRRegClassID),
5061 // (and:{ *:[v2i1] } VCCR:{ *:[v2i1] }:$p1, VCCR:{ *:[v2i1] }:$p2) => (COPY_TO_REGCLASS:{ *:[v2i1] } (t2ANDrr:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v2i1] }:$p1, rGPR:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v2i1] }:$p2, rGPR:{ *:[i32] })), VCCR:{ *:[i32] })
5062 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
5063 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
5064 GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s32,
5065 GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
5066 GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
5067 GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // p2
5068 GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
5069 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
5070 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
5071 GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // p1
5072 GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
5073 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::t2ANDrr),
5074 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
5075 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
5076 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/2,
5077 GIR_AddImm8, /*InsnID*/1, /*Imm*/14,
5078 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
5079 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
5080 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
5081 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
5082 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
5083 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
5084 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::VCCRRegClassID),
5085 // GIR_Coverage, 1850,
5086 GIR_EraseRootFromParent_Done,
5087 // Label 324: @12846
5088 GIM_Reject,
5089 // Label 282: @12847
5090 GIM_Try, /*On fail goto*//*Label 325*/ GIMT_Encode4(12893), // Rule ID 1150 //
5091 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
5092 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
5093 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
5094 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
5095 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
5096 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
5097 // (and:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VANDd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
5098 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VANDd),
5099 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
5100 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
5101 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
5102 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
5103 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
5104 GIR_RootConstrainSelectedInstOperands,
5105 // GIR_Coverage, 1150,
5106 GIR_EraseRootFromParent_Done,
5107 // Label 325: @12893
5108 GIM_Reject,
5109 // Label 283: @12894
5110 GIM_Try, /*On fail goto*//*Label 326*/ GIMT_Encode4(13005),
5111 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
5112 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s64,
5113 GIM_Try, /*On fail goto*//*Label 327*/ GIMT_Encode4(12945), // Rule ID 2526 //
5114 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
5115 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
5116 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
5117 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
5118 // (and:{ *:[v2i64] } QPR:{ *:[v2i64] }:$LHS, QPR:{ *:[v2i64] }:$RHS) => (VANDq:{ *:[v2i64] } QPR:{ *:[v2i64] }:$LHS, QPR:{ *:[v2i64] }:$RHS)
5119 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VANDq),
5120 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
5121 GIR_RootToRootCopy, /*OpIdx*/1, // LHS
5122 GIR_RootToRootCopy, /*OpIdx*/2, // RHS
5123 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
5124 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
5125 GIR_RootConstrainSelectedInstOperands,
5126 // GIR_Coverage, 2526,
5127 GIR_EraseRootFromParent_Done,
5128 // Label 327: @12945
5129 GIM_Try, /*On fail goto*//*Label 328*/ GIMT_Encode4(13004), // Rule ID 3467 //
5130 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
5131 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
5132 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
5133 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
5134 // (and:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$Qm, MQPR:{ *:[v2i64] }:$Qn) => (MVE_VAND:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$Qm, MQPR:{ *:[v2i64] }:$Qn)
5135 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
5136 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
5137 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5138 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VAND),
5139 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
5140 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
5141 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
5142 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
5143 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
5144 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
5145 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
5146 GIR_RootConstrainSelectedInstOperands,
5147 // GIR_Coverage, 3467,
5148 GIR_EraseRootFromParent_Done,
5149 // Label 328: @13004
5150 GIM_Reject,
5151 // Label 326: @13005
5152 GIM_Reject,
5153 // Label 284: @13006
5154 GIM_Try, /*On fail goto*//*Label 329*/ GIMT_Encode4(13117), // Rule ID 1851 //
5155 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
5156 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s1,
5157 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s1,
5158 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::VCCRRegClassID),
5159 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::VCCRRegClassID),
5160 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::VCCRRegClassID),
5161 // (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, VCCR:{ *:[v4i1] }:$p2) => (COPY_TO_REGCLASS:{ *:[v4i1] } (t2ANDrr:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v4i1] }:$p1, rGPR:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v4i1] }:$p2, rGPR:{ *:[i32] })), VCCR:{ *:[i32] })
5162 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
5163 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
5164 GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s32,
5165 GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
5166 GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
5167 GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // p2
5168 GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
5169 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
5170 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
5171 GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // p1
5172 GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
5173 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::t2ANDrr),
5174 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
5175 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
5176 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/2,
5177 GIR_AddImm8, /*InsnID*/1, /*Imm*/14,
5178 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
5179 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
5180 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
5181 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
5182 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
5183 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
5184 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::VCCRRegClassID),
5185 // GIR_Coverage, 1851,
5186 GIR_EraseRootFromParent_Done,
5187 // Label 329: @13117
5188 GIM_Reject,
5189 // Label 285: @13118
5190 GIM_Try, /*On fail goto*//*Label 330*/ GIMT_Encode4(13164), // Rule ID 2522 //
5191 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
5192 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
5193 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
5194 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
5195 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
5196 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
5197 // (and:{ *:[v4i16] } DPR:{ *:[v4i16] }:$LHS, DPR:{ *:[v4i16] }:$RHS) => (VANDd:{ *:[v4i16] } DPR:{ *:[v4i16] }:$LHS, DPR:{ *:[v4i16] }:$RHS)
5198 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VANDd),
5199 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
5200 GIR_RootToRootCopy, /*OpIdx*/1, // LHS
5201 GIR_RootToRootCopy, /*OpIdx*/2, // RHS
5202 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
5203 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
5204 GIR_RootConstrainSelectedInstOperands,
5205 // GIR_Coverage, 2522,
5206 GIR_EraseRootFromParent_Done,
5207 // Label 330: @13164
5208 GIM_Reject,
5209 // Label 286: @13165
5210 GIM_Try, /*On fail goto*//*Label 331*/ GIMT_Encode4(13276),
5211 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
5212 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
5213 GIM_Try, /*On fail goto*//*Label 332*/ GIMT_Encode4(13216), // Rule ID 1151 //
5214 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
5215 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
5216 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
5217 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
5218 // (and:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VANDq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
5219 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VANDq),
5220 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
5221 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
5222 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
5223 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
5224 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
5225 GIR_RootConstrainSelectedInstOperands,
5226 // GIR_Coverage, 1151,
5227 GIR_EraseRootFromParent_Done,
5228 // Label 332: @13216
5229 GIM_Try, /*On fail goto*//*Label 333*/ GIMT_Encode4(13275), // Rule ID 3463 //
5230 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
5231 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
5232 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
5233 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
5234 // (and:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) => (MVE_VAND:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
5235 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
5236 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
5237 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5238 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VAND),
5239 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
5240 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
5241 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
5242 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
5243 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
5244 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
5245 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
5246 GIR_RootConstrainSelectedInstOperands,
5247 // GIR_Coverage, 3463,
5248 GIR_EraseRootFromParent_Done,
5249 // Label 333: @13275
5250 GIM_Reject,
5251 // Label 331: @13276
5252 GIM_Reject,
5253 // Label 287: @13277
5254 GIM_Try, /*On fail goto*//*Label 334*/ GIMT_Encode4(13388), // Rule ID 1852 //
5255 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
5256 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s1,
5257 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s1,
5258 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::VCCRRegClassID),
5259 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::VCCRRegClassID),
5260 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::VCCRRegClassID),
5261 // (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, VCCR:{ *:[v8i1] }:$p2) => (COPY_TO_REGCLASS:{ *:[v8i1] } (t2ANDrr:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v8i1] }:$p1, rGPR:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v8i1] }:$p2, rGPR:{ *:[i32] })), VCCR:{ *:[i32] })
5262 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
5263 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
5264 GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s32,
5265 GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
5266 GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
5267 GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // p2
5268 GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
5269 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
5270 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
5271 GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // p1
5272 GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
5273 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::t2ANDrr),
5274 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
5275 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
5276 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/2,
5277 GIR_AddImm8, /*InsnID*/1, /*Imm*/14,
5278 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
5279 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
5280 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
5281 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
5282 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
5283 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
5284 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::VCCRRegClassID),
5285 // GIR_Coverage, 1852,
5286 GIR_EraseRootFromParent_Done,
5287 // Label 334: @13388
5288 GIM_Reject,
5289 // Label 288: @13389
5290 GIM_Try, /*On fail goto*//*Label 335*/ GIMT_Encode4(13435), // Rule ID 2521 //
5291 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
5292 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s8,
5293 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
5294 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
5295 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
5296 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
5297 // (and:{ *:[v8i8] } DPR:{ *:[v8i8] }:$LHS, DPR:{ *:[v8i8] }:$RHS) => (VANDd:{ *:[v8i8] } DPR:{ *:[v8i8] }:$LHS, DPR:{ *:[v8i8] }:$RHS)
5298 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VANDd),
5299 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
5300 GIR_RootToRootCopy, /*OpIdx*/1, // LHS
5301 GIR_RootToRootCopy, /*OpIdx*/2, // RHS
5302 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
5303 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
5304 GIR_RootConstrainSelectedInstOperands,
5305 // GIR_Coverage, 2521,
5306 GIR_EraseRootFromParent_Done,
5307 // Label 335: @13435
5308 GIM_Reject,
5309 // Label 289: @13436
5310 GIM_Try, /*On fail goto*//*Label 336*/ GIMT_Encode4(13547),
5311 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
5312 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
5313 GIM_Try, /*On fail goto*//*Label 337*/ GIMT_Encode4(13487), // Rule ID 2525 //
5314 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
5315 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
5316 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
5317 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
5318 // (and:{ *:[v8i16] } QPR:{ *:[v8i16] }:$LHS, QPR:{ *:[v8i16] }:$RHS) => (VANDq:{ *:[v8i16] } QPR:{ *:[v8i16] }:$LHS, QPR:{ *:[v8i16] }:$RHS)
5319 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VANDq),
5320 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
5321 GIR_RootToRootCopy, /*OpIdx*/1, // LHS
5322 GIR_RootToRootCopy, /*OpIdx*/2, // RHS
5323 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
5324 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
5325 GIR_RootConstrainSelectedInstOperands,
5326 // GIR_Coverage, 2525,
5327 GIR_EraseRootFromParent_Done,
5328 // Label 337: @13487
5329 GIM_Try, /*On fail goto*//*Label 338*/ GIMT_Encode4(13546), // Rule ID 3459 //
5330 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
5331 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
5332 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
5333 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
5334 // (and:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) => (MVE_VAND:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
5335 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
5336 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
5337 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5338 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VAND),
5339 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
5340 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
5341 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
5342 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
5343 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
5344 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
5345 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
5346 GIR_RootConstrainSelectedInstOperands,
5347 // GIR_Coverage, 3459,
5348 GIR_EraseRootFromParent_Done,
5349 // Label 338: @13546
5350 GIM_Reject,
5351 // Label 336: @13547
5352 GIM_Reject,
5353 // Label 290: @13548
5354 GIM_Try, /*On fail goto*//*Label 339*/ GIMT_Encode4(13659), // Rule ID 1853 //
5355 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
5356 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s1,
5357 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s1,
5358 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::VCCRRegClassID),
5359 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::VCCRRegClassID),
5360 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::VCCRRegClassID),
5361 // (and:{ *:[v16i1] } VCCR:{ *:[v16i1] }:$p1, VCCR:{ *:[v16i1] }:$p2) => (COPY_TO_REGCLASS:{ *:[v16i1] } (t2ANDrr:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v16i1] }:$p1, rGPR:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v16i1] }:$p2, rGPR:{ *:[i32] })), VCCR:{ *:[i32] })
5362 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
5363 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
5364 GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s32,
5365 GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
5366 GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
5367 GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // p2
5368 GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
5369 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
5370 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
5371 GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // p1
5372 GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
5373 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::t2ANDrr),
5374 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
5375 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
5376 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/2,
5377 GIR_AddImm8, /*InsnID*/1, /*Imm*/14,
5378 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
5379 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
5380 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
5381 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
5382 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
5383 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
5384 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::VCCRRegClassID),
5385 // GIR_Coverage, 1853,
5386 GIR_EraseRootFromParent_Done,
5387 // Label 339: @13659
5388 GIM_Reject,
5389 // Label 291: @13660
5390 GIM_Try, /*On fail goto*//*Label 340*/ GIMT_Encode4(13771),
5391 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
5392 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
5393 GIM_Try, /*On fail goto*//*Label 341*/ GIMT_Encode4(13711), // Rule ID 2524 //
5394 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
5395 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
5396 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
5397 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
5398 // (and:{ *:[v16i8] } QPR:{ *:[v16i8] }:$LHS, QPR:{ *:[v16i8] }:$RHS) => (VANDq:{ *:[v16i8] } QPR:{ *:[v16i8] }:$LHS, QPR:{ *:[v16i8] }:$RHS)
5399 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VANDq),
5400 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
5401 GIR_RootToRootCopy, /*OpIdx*/1, // LHS
5402 GIR_RootToRootCopy, /*OpIdx*/2, // RHS
5403 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
5404 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
5405 GIR_RootConstrainSelectedInstOperands,
5406 // GIR_Coverage, 2524,
5407 GIR_EraseRootFromParent_Done,
5408 // Label 341: @13711
5409 GIM_Try, /*On fail goto*//*Label 342*/ GIMT_Encode4(13770), // Rule ID 3455 //
5410 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
5411 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
5412 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
5413 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
5414 // (and:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) => (MVE_VAND:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
5415 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
5416 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
5417 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5418 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VAND),
5419 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
5420 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
5421 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
5422 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
5423 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
5424 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
5425 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
5426 GIR_RootConstrainSelectedInstOperands,
5427 // GIR_Coverage, 3455,
5428 GIR_EraseRootFromParent_Done,
5429 // Label 342: @13770
5430 GIM_Reject,
5431 // Label 340: @13771
5432 GIM_Reject,
5433 // Label 292: @13772
5434 GIM_Reject,
5435 // Label 6: @13773
5436 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(1), GIMT_Encode2(16), /*)*//*default:*//*Label 356*/ GIMT_Encode4(19503),
5437 /*GILLT_s32*//*Label 343*/ GIMT_Encode4(13844),
5438 /*GILLT_s64*//*Label 344*/ GIMT_Encode4(18419),
5439 /*GILLT_v2s1*//*Label 345*/ GIMT_Encode4(18466),
5440 /*GILLT_v2s32*//*Label 346*/ GIMT_Encode4(18578),
5441 /*GILLT_v2s64*//*Label 347*/ GIMT_Encode4(18625),
5442 /*GILLT_v4s1*//*Label 348*/ GIMT_Encode4(18737),
5443 /*GILLT_v4s16*//*Label 349*/ GIMT_Encode4(18849),
5444 /*GILLT_v4s32*//*Label 350*/ GIMT_Encode4(18896), GIMT_Encode4(0),
5445 /*GILLT_v8s1*//*Label 351*/ GIMT_Encode4(19008),
5446 /*GILLT_v8s8*//*Label 352*/ GIMT_Encode4(19120),
5447 /*GILLT_v8s16*//*Label 353*/ GIMT_Encode4(19167), GIMT_Encode4(0),
5448 /*GILLT_v16s1*//*Label 354*/ GIMT_Encode4(19279),
5449 /*GILLT_v16s8*//*Label 355*/ GIMT_Encode4(19391),
5450 // Label 343: @13844
5451 GIM_Try, /*On fail goto*//*Label 357*/ GIMT_Encode4(18418),
5452 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
5453 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
5454 GIM_Try, /*On fail goto*//*Label 358*/ GIMT_Encode4(13982), // Rule ID 5772 //
5455 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
5456 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
5457 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5458 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
5459 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5460 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
5461 GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
5462 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_LSHR),
5463 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
5464 GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
5465 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
5466 GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 8,
5467 GIM_CheckConstantInt, /*MI*/1, /*Op*/2, GIMT_Encode8(255),
5468 GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
5469 GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_ASHR),
5470 GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
5471 GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
5472 GIM_RecordInsn, /*DefineMI*/4, /*MI*/3, /*OpIdx*/1, // MIs[4]
5473 GIM_CheckOpcode, /*MI*/4, GIMT_Encode2(TargetOpcode::G_SHL),
5474 GIM_CheckType, /*MI*/4, /*Op*/2, /*Type*/GILLT_s32,
5475 // MIs[4] Rm
5476 GIM_CheckIsSameOperand, /*MI*/4, /*OpIdx*/1, /*OtherMI*/2, /*OtherOpIdx*/1,
5477 GIM_CheckConstantInt8, /*MI*/4, /*Op*/2, 24,
5478 GIM_CheckConstantInt8, /*MI*/3, /*Op*/2, 16,
5479 GIM_CheckIsSafeToFold, /*NumInsns*/4,
5480 // (or:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } GPR:{ *:[i32] }:$Rm, 8:{ *:[i32] }), 255:{ *:[i32] }), (sra:{ *:[i32] } (shl:{ *:[i32] } GPR:{ *:[i32] }:$Rm, 24:{ *:[i32] }), 16:{ *:[i32] })) => (REVSH:{ *:[i32] } GPR:{ *:[i32] }:$Rm)
5481 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::REVSH),
5482 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
5483 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rm
5484 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
5485 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
5486 GIR_RootConstrainSelectedInstOperands,
5487 // GIR_Coverage, 5772,
5488 GIR_EraseRootFromParent_Done,
5489 // Label 358: @13982
5490 GIM_Try, /*On fail goto*//*Label 359*/ GIMT_Encode4(14109), // Rule ID 5814 //
5491 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
5492 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
5493 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5494 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
5495 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5496 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
5497 GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
5498 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_LSHR),
5499 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
5500 GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
5501 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
5502 GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 8,
5503 GIM_CheckConstantInt, /*MI*/1, /*Op*/2, GIMT_Encode8(255),
5504 GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
5505 GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_ASHR),
5506 GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
5507 GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
5508 GIM_RecordInsn, /*DefineMI*/4, /*MI*/3, /*OpIdx*/1, // MIs[4]
5509 GIM_CheckOpcode, /*MI*/4, GIMT_Encode2(TargetOpcode::G_SHL),
5510 GIM_CheckType, /*MI*/4, /*Op*/2, /*Type*/GILLT_s32,
5511 // MIs[4] Rm
5512 GIM_CheckIsSameOperand, /*MI*/4, /*OpIdx*/1, /*OtherMI*/2, /*OtherOpIdx*/1,
5513 GIM_CheckConstantInt8, /*MI*/4, /*Op*/2, 24,
5514 GIM_CheckConstantInt8, /*MI*/3, /*Op*/2, 16,
5515 GIM_CheckIsSafeToFold, /*NumInsns*/4,
5516 // (or:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 8:{ *:[i32] }), 255:{ *:[i32] }), (sra:{ *:[i32] } (shl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 24:{ *:[i32] }), 16:{ *:[i32] })) => (t2REVSH:{ *:[i32] } rGPR:{ *:[i32] }:$Rm)
5517 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2REVSH),
5518 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
5519 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rm
5520 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
5521 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
5522 GIR_RootConstrainSelectedInstOperands,
5523 // GIR_Coverage, 5814,
5524 GIR_EraseRootFromParent_Done,
5525 // Label 359: @14109
5526 GIM_Try, /*On fail goto*//*Label 360*/ GIMT_Encode4(14236), // Rule ID 1938 //
5527 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
5528 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
5529 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5530 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ASHR),
5531 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5532 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
5533 GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
5534 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SHL),
5535 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
5536 GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
5537 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
5538 GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 24,
5539 GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 16,
5540 GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
5541 GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_AND),
5542 GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
5543 GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
5544 GIM_RecordInsn, /*DefineMI*/4, /*MI*/3, /*OpIdx*/1, // MIs[4]
5545 GIM_CheckOpcode, /*MI*/4, GIMT_Encode2(TargetOpcode::G_LSHR),
5546 GIM_CheckType, /*MI*/4, /*Op*/2, /*Type*/GILLT_s32,
5547 // MIs[4] Rm
5548 GIM_CheckIsSameOperand, /*MI*/4, /*OpIdx*/1, /*OtherMI*/2, /*OtherOpIdx*/1,
5549 GIM_CheckConstantInt8, /*MI*/4, /*Op*/2, 8,
5550 GIM_CheckConstantInt, /*MI*/3, /*Op*/2, GIMT_Encode8(255),
5551 GIM_CheckIsSafeToFold, /*NumInsns*/4,
5552 // (or:{ *:[i32] } (sra:{ *:[i32] } (shl:{ *:[i32] } GPR:{ *:[i32] }:$Rm, 24:{ *:[i32] }), 16:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } GPR:{ *:[i32] }:$Rm, 8:{ *:[i32] }), 255:{ *:[i32] })) => (REVSH:{ *:[i32] } GPR:{ *:[i32] }:$Rm)
5553 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::REVSH),
5554 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
5555 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rm
5556 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
5557 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
5558 GIR_RootConstrainSelectedInstOperands,
5559 // GIR_Coverage, 1938,
5560 GIR_EraseRootFromParent_Done,
5561 // Label 360: @14236
5562 GIM_Try, /*On fail goto*//*Label 361*/ GIMT_Encode4(14363), // Rule ID 2203 //
5563 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
5564 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
5565 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5566 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ASHR),
5567 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5568 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
5569 GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
5570 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SHL),
5571 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
5572 GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
5573 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
5574 GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 24,
5575 GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 16,
5576 GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
5577 GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_AND),
5578 GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
5579 GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
5580 GIM_RecordInsn, /*DefineMI*/4, /*MI*/3, /*OpIdx*/1, // MIs[4]
5581 GIM_CheckOpcode, /*MI*/4, GIMT_Encode2(TargetOpcode::G_LSHR),
5582 GIM_CheckType, /*MI*/4, /*Op*/2, /*Type*/GILLT_s32,
5583 // MIs[4] Rm
5584 GIM_CheckIsSameOperand, /*MI*/4, /*OpIdx*/1, /*OtherMI*/2, /*OtherOpIdx*/1,
5585 GIM_CheckConstantInt8, /*MI*/4, /*Op*/2, 8,
5586 GIM_CheckConstantInt, /*MI*/3, /*Op*/2, GIMT_Encode8(255),
5587 GIM_CheckIsSafeToFold, /*NumInsns*/4,
5588 // (or:{ *:[i32] } (sra:{ *:[i32] } (shl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 24:{ *:[i32] }), 16:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 8:{ *:[i32] }), 255:{ *:[i32] })) => (t2REVSH:{ *:[i32] } rGPR:{ *:[i32] }:$Rm)
5589 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2REVSH),
5590 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
5591 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rm
5592 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
5593 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
5594 GIR_RootConstrainSelectedInstOperands,
5595 // GIR_Coverage, 2203,
5596 GIR_EraseRootFromParent_Done,
5597 // Label 361: @14363
5598 GIM_Try, /*On fail goto*//*Label 362*/ GIMT_Encode4(14496), // Rule ID 5570 //
5599 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
5600 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
5601 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5602 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
5603 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5604 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
5605 GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
5606 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ASHR),
5607 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
5608 GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
5609 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
5610 GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
5611 GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5612 GIM_CheckI64ImmPredicate, /*MI*/3, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_pkh_asr_amt),
5613 // MIs[3] Operand 1
5614 // No operand predicates
5615 GIM_CheckConstantInt, /*MI*/1, /*Op*/2, GIMT_Encode8(65535),
5616 GIM_RecordInsn, /*DefineMI*/4, /*MI*/0, /*OpIdx*/2, // MIs[4]
5617 GIM_CheckOpcode, /*MI*/4, GIMT_Encode2(TargetOpcode::G_AND),
5618 GIM_CheckType, /*MI*/4, /*Op*/1, /*Type*/GILLT_s32,
5619 GIM_CheckType, /*MI*/4, /*Op*/2, /*Type*/GILLT_s32,
5620 GIM_CheckRegBankForClass, /*MI*/4, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
5621 GIM_CheckConstantInt, /*MI*/4, /*Op*/2, GIMT_Encode8(4294901760),
5622 GIM_CheckIsSafeToFold, /*NumInsns*/4,
5623 // (or:{ *:[i32] } (and:{ *:[i32] } (sra:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_pkh_asr_amt>>:$sh), 65535:{ *:[i32] }), (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, 4294901760:{ *:[i32] })) => (PKHTB:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$sh)
5624 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::PKHTB),
5625 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
5626 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/4, /*OpIdx*/1, // Rn
5627 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rm
5628 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // sh
5629 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
5630 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
5631 GIR_RootConstrainSelectedInstOperands,
5632 // GIR_Coverage, 5570,
5633 GIR_EraseRootFromParent_Done,
5634 // Label 362: @14496
5635 GIM_Try, /*On fail goto*//*Label 363*/ GIMT_Encode4(14629), // Rule ID 5607 //
5636 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
5637 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
5638 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5639 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
5640 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5641 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
5642 GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
5643 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ASHR),
5644 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
5645 GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
5646 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
5647 GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
5648 GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5649 GIM_CheckI64ImmPredicate, /*MI*/3, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_pkh_asr_amt),
5650 // MIs[3] Operand 1
5651 // No operand predicates
5652 GIM_CheckConstantInt, /*MI*/1, /*Op*/2, GIMT_Encode8(65535),
5653 GIM_RecordInsn, /*DefineMI*/4, /*MI*/0, /*OpIdx*/2, // MIs[4]
5654 GIM_CheckOpcode, /*MI*/4, GIMT_Encode2(TargetOpcode::G_AND),
5655 GIM_CheckType, /*MI*/4, /*Op*/1, /*Type*/GILLT_s32,
5656 GIM_CheckType, /*MI*/4, /*Op*/2, /*Type*/GILLT_s32,
5657 GIM_CheckRegBankForClass, /*MI*/4, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
5658 GIM_CheckConstantInt, /*MI*/4, /*Op*/2, GIMT_Encode8(4294901760),
5659 GIM_CheckIsSafeToFold, /*NumInsns*/4,
5660 // (or:{ *:[i32] } (and:{ *:[i32] } (sra:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_pkh_asr_amt>>:$sh), 65535:{ *:[i32] }), (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, 4294901760:{ *:[i32] })) => (t2PKHTB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$sh)
5661 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2PKHTB),
5662 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
5663 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/4, /*OpIdx*/1, // Rn
5664 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rm
5665 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // sh
5666 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
5667 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
5668 GIR_RootConstrainSelectedInstOperands,
5669 // GIR_Coverage, 5607,
5670 GIR_EraseRootFromParent_Done,
5671 // Label 363: @14629
5672 GIM_Try, /*On fail goto*//*Label 364*/ GIMT_Encode4(14762), // Rule ID 5777 //
5673 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
5674 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
5675 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5676 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
5677 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5678 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
5679 GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
5680 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_LSHR),
5681 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
5682 GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
5683 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
5684 GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
5685 GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5686 GIM_CheckI64ImmPredicate, /*MI*/3, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm1_15),
5687 // MIs[3] Operand 1
5688 // No operand predicates
5689 GIM_CheckConstantInt, /*MI*/1, /*Op*/2, GIMT_Encode8(65535),
5690 GIM_RecordInsn, /*DefineMI*/4, /*MI*/0, /*OpIdx*/2, // MIs[4]
5691 GIM_CheckOpcode, /*MI*/4, GIMT_Encode2(TargetOpcode::G_AND),
5692 GIM_CheckType, /*MI*/4, /*Op*/1, /*Type*/GILLT_s32,
5693 GIM_CheckType, /*MI*/4, /*Op*/2, /*Type*/GILLT_s32,
5694 GIM_CheckRegBankForClass, /*MI*/4, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
5695 GIM_CheckConstantInt, /*MI*/4, /*Op*/2, GIMT_Encode8(4294901760),
5696 GIM_CheckIsSafeToFold, /*NumInsns*/4,
5697 // (or:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } GPRnopc:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm1_15>>:$sh), 65535:{ *:[i32] }), (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$src1, 4294901760:{ *:[i32] })) => (PKHTB:{ *:[i32] } GPRnopc:{ *:[i32] }:$src1, GPRnopc:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm1_15>>:$sh)
5698 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::PKHTB),
5699 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
5700 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/4, /*OpIdx*/1, // src1
5701 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // src2
5702 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // sh
5703 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
5704 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
5705 GIR_RootConstrainSelectedInstOperands,
5706 // GIR_Coverage, 5777,
5707 GIR_EraseRootFromParent_Done,
5708 // Label 364: @14762
5709 GIM_Try, /*On fail goto*//*Label 365*/ GIMT_Encode4(14895), // Rule ID 5819 //
5710 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
5711 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
5712 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5713 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
5714 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5715 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
5716 GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
5717 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_LSHR),
5718 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
5719 GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
5720 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
5721 GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
5722 GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5723 GIM_CheckI64ImmPredicate, /*MI*/3, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm1_15),
5724 // MIs[3] Operand 1
5725 // No operand predicates
5726 GIM_CheckConstantInt, /*MI*/1, /*Op*/2, GIMT_Encode8(65535),
5727 GIM_RecordInsn, /*DefineMI*/4, /*MI*/0, /*OpIdx*/2, // MIs[4]
5728 GIM_CheckOpcode, /*MI*/4, GIMT_Encode2(TargetOpcode::G_AND),
5729 GIM_CheckType, /*MI*/4, /*Op*/1, /*Type*/GILLT_s32,
5730 GIM_CheckType, /*MI*/4, /*Op*/2, /*Type*/GILLT_s32,
5731 GIM_CheckRegBankForClass, /*MI*/4, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
5732 GIM_CheckConstantInt, /*MI*/4, /*Op*/2, GIMT_Encode8(4294901760),
5733 GIM_CheckIsSafeToFold, /*NumInsns*/4,
5734 // (or:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm1_15>>:$sh), 65535:{ *:[i32] }), (and:{ *:[i32] } rGPR:{ *:[i32] }:$src1, 4294901760:{ *:[i32] })) => (t2PKHTB:{ *:[i32] } rGPR:{ *:[i32] }:$src1, rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm1_15>>:$sh)
5735 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2PKHTB),
5736 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
5737 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/4, /*OpIdx*/1, // src1
5738 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // src2
5739 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // sh
5740 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
5741 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
5742 GIR_RootConstrainSelectedInstOperands,
5743 // GIR_Coverage, 5819,
5744 GIR_EraseRootFromParent_Done,
5745 // Label 365: @14895
5746 GIM_Try, /*On fail goto*//*Label 366*/ GIMT_Encode4(15028), // Rule ID 5569 //
5747 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
5748 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
5749 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5750 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
5751 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5752 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
5753 GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
5754 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SHL),
5755 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
5756 GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
5757 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
5758 GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
5759 GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5760 GIM_CheckI64ImmPredicate, /*MI*/3, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_pkh_lsl_amt),
5761 // MIs[3] Operand 1
5762 // No operand predicates
5763 GIM_CheckConstantInt, /*MI*/1, /*Op*/2, GIMT_Encode8(4294901760),
5764 GIM_RecordInsn, /*DefineMI*/4, /*MI*/0, /*OpIdx*/2, // MIs[4]
5765 GIM_CheckOpcode, /*MI*/4, GIMT_Encode2(TargetOpcode::G_AND),
5766 GIM_CheckType, /*MI*/4, /*Op*/1, /*Type*/GILLT_s32,
5767 GIM_CheckType, /*MI*/4, /*Op*/2, /*Type*/GILLT_s32,
5768 GIM_CheckRegBankForClass, /*MI*/4, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
5769 GIM_CheckConstantInt, /*MI*/4, /*Op*/2, GIMT_Encode8(65535),
5770 GIM_CheckIsSafeToFold, /*NumInsns*/4,
5771 // (or:{ *:[i32] } (and:{ *:[i32] } (shl:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_pkh_lsl_amt>>:$sh), 4294901760:{ *:[i32] }), (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, 65535:{ *:[i32] })) => (PKHBT:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$sh)
5772 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::PKHBT),
5773 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
5774 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/4, /*OpIdx*/1, // Rn
5775 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rm
5776 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // sh
5777 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
5778 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
5779 GIR_RootConstrainSelectedInstOperands,
5780 // GIR_Coverage, 5569,
5781 GIR_EraseRootFromParent_Done,
5782 // Label 366: @15028
5783 GIM_Try, /*On fail goto*//*Label 367*/ GIMT_Encode4(15161), // Rule ID 5606 //
5784 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
5785 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
5786 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5787 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
5788 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5789 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
5790 GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
5791 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SHL),
5792 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
5793 GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
5794 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
5795 GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
5796 GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5797 GIM_CheckI64ImmPredicate, /*MI*/3, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_pkh_lsl_amt),
5798 // MIs[3] Operand 1
5799 // No operand predicates
5800 GIM_CheckConstantInt, /*MI*/1, /*Op*/2, GIMT_Encode8(4294901760),
5801 GIM_RecordInsn, /*DefineMI*/4, /*MI*/0, /*OpIdx*/2, // MIs[4]
5802 GIM_CheckOpcode, /*MI*/4, GIMT_Encode2(TargetOpcode::G_AND),
5803 GIM_CheckType, /*MI*/4, /*Op*/1, /*Type*/GILLT_s32,
5804 GIM_CheckType, /*MI*/4, /*Op*/2, /*Type*/GILLT_s32,
5805 GIM_CheckRegBankForClass, /*MI*/4, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
5806 GIM_CheckConstantInt, /*MI*/4, /*Op*/2, GIMT_Encode8(65535),
5807 GIM_CheckIsSafeToFold, /*NumInsns*/4,
5808 // (or:{ *:[i32] } (and:{ *:[i32] } (shl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_pkh_lsl_amt>>:$sh), 4294901760:{ *:[i32] }), (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, 65535:{ *:[i32] })) => (t2PKHBT:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$sh)
5809 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2PKHBT),
5810 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
5811 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/4, /*OpIdx*/1, // Rn
5812 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rm
5813 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // sh
5814 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
5815 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
5816 GIR_RootConstrainSelectedInstOperands,
5817 // GIR_Coverage, 5606,
5818 GIR_EraseRootFromParent_Done,
5819 // Label 367: @15161
5820 GIM_Try, /*On fail goto*//*Label 368*/ GIMT_Encode4(15294), // Rule ID 203 //
5821 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
5822 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
5823 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5824 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
5825 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5826 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
5827 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
5828 GIM_CheckConstantInt, /*MI*/1, /*Op*/2, GIMT_Encode8(4294901760),
5829 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5830 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_AND),
5831 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
5832 GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
5833 GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
5834 GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_ASHR),
5835 GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
5836 GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
5837 GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
5838 GIM_RecordInsn, /*DefineMI*/4, /*MI*/3, /*OpIdx*/2, // MIs[4]
5839 GIM_CheckOpcode, /*MI*/4, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5840 GIM_CheckI64ImmPredicate, /*MI*/4, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_pkh_asr_amt),
5841 // MIs[4] Operand 1
5842 // No operand predicates
5843 GIM_CheckConstantInt, /*MI*/2, /*Op*/2, GIMT_Encode8(65535),
5844 GIM_CheckIsSafeToFold, /*NumInsns*/4,
5845 // (or:{ *:[i32] } (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, 4294901760:{ *:[i32] }), (and:{ *:[i32] } (sra:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_pkh_asr_amt>>:$sh), 65535:{ *:[i32] })) => (PKHTB:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$sh)
5846 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::PKHTB),
5847 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
5848 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
5849 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // Rm
5850 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/4, // sh
5851 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
5852 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
5853 GIR_RootConstrainSelectedInstOperands,
5854 // GIR_Coverage, 203,
5855 GIR_EraseRootFromParent_Done,
5856 // Label 368: @15294
5857 GIM_Try, /*On fail goto*//*Label 369*/ GIMT_Encode4(15427), // Rule ID 548 //
5858 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
5859 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
5860 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5861 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
5862 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5863 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
5864 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
5865 GIM_CheckConstantInt, /*MI*/1, /*Op*/2, GIMT_Encode8(4294901760),
5866 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5867 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_AND),
5868 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
5869 GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
5870 GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
5871 GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_ASHR),
5872 GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
5873 GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
5874 GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
5875 GIM_RecordInsn, /*DefineMI*/4, /*MI*/3, /*OpIdx*/2, // MIs[4]
5876 GIM_CheckOpcode, /*MI*/4, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5877 GIM_CheckI64ImmPredicate, /*MI*/4, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_pkh_asr_amt),
5878 // MIs[4] Operand 1
5879 // No operand predicates
5880 GIM_CheckConstantInt, /*MI*/2, /*Op*/2, GIMT_Encode8(65535),
5881 GIM_CheckIsSafeToFold, /*NumInsns*/4,
5882 // (or:{ *:[i32] } (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, 4294901760:{ *:[i32] }), (and:{ *:[i32] } (sra:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_pkh_asr_amt>>:$sh), 65535:{ *:[i32] })) => (t2PKHTB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$sh)
5883 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2PKHTB),
5884 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
5885 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
5886 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // Rm
5887 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/4, // sh
5888 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
5889 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
5890 GIR_RootConstrainSelectedInstOperands,
5891 // GIR_Coverage, 548,
5892 GIR_EraseRootFromParent_Done,
5893 // Label 369: @15427
5894 GIM_Try, /*On fail goto*//*Label 370*/ GIMT_Encode4(15560), // Rule ID 1943 //
5895 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
5896 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
5897 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5898 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
5899 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5900 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
5901 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
5902 GIM_CheckConstantInt, /*MI*/1, /*Op*/2, GIMT_Encode8(4294901760),
5903 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5904 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_AND),
5905 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
5906 GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
5907 GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
5908 GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_LSHR),
5909 GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
5910 GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
5911 GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
5912 GIM_RecordInsn, /*DefineMI*/4, /*MI*/3, /*OpIdx*/2, // MIs[4]
5913 GIM_CheckOpcode, /*MI*/4, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5914 GIM_CheckI64ImmPredicate, /*MI*/4, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm1_15),
5915 // MIs[4] Operand 1
5916 // No operand predicates
5917 GIM_CheckConstantInt, /*MI*/2, /*Op*/2, GIMT_Encode8(65535),
5918 GIM_CheckIsSafeToFold, /*NumInsns*/4,
5919 // (or:{ *:[i32] } (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$src1, 4294901760:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } GPRnopc:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm1_15>>:$sh), 65535:{ *:[i32] })) => (PKHTB:{ *:[i32] } GPRnopc:{ *:[i32] }:$src1, GPRnopc:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm1_15>>:$sh)
5920 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::PKHTB),
5921 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
5922 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src1
5923 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // src2
5924 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/4, // sh
5925 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
5926 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
5927 GIR_RootConstrainSelectedInstOperands,
5928 // GIR_Coverage, 1943,
5929 GIR_EraseRootFromParent_Done,
5930 // Label 370: @15560
5931 GIM_Try, /*On fail goto*//*Label 371*/ GIMT_Encode4(15693), // Rule ID 2208 //
5932 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
5933 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
5934 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5935 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
5936 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5937 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
5938 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
5939 GIM_CheckConstantInt, /*MI*/1, /*Op*/2, GIMT_Encode8(4294901760),
5940 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5941 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_AND),
5942 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
5943 GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
5944 GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
5945 GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_LSHR),
5946 GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
5947 GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
5948 GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
5949 GIM_RecordInsn, /*DefineMI*/4, /*MI*/3, /*OpIdx*/2, // MIs[4]
5950 GIM_CheckOpcode, /*MI*/4, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5951 GIM_CheckI64ImmPredicate, /*MI*/4, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm1_15),
5952 // MIs[4] Operand 1
5953 // No operand predicates
5954 GIM_CheckConstantInt, /*MI*/2, /*Op*/2, GIMT_Encode8(65535),
5955 GIM_CheckIsSafeToFold, /*NumInsns*/4,
5956 // (or:{ *:[i32] } (and:{ *:[i32] } rGPR:{ *:[i32] }:$src1, 4294901760:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm1_15>>:$sh), 65535:{ *:[i32] })) => (t2PKHTB:{ *:[i32] } rGPR:{ *:[i32] }:$src1, rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm1_15>>:$sh)
5957 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2PKHTB),
5958 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
5959 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src1
5960 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // src2
5961 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/4, // sh
5962 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
5963 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
5964 GIR_RootConstrainSelectedInstOperands,
5965 // GIR_Coverage, 2208,
5966 GIR_EraseRootFromParent_Done,
5967 // Label 371: @15693
5968 GIM_Try, /*On fail goto*//*Label 372*/ GIMT_Encode4(15826), // Rule ID 202 //
5969 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
5970 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
5971 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5972 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
5973 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5974 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
5975 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
5976 GIM_CheckConstantInt, /*MI*/1, /*Op*/2, GIMT_Encode8(65535),
5977 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5978 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_AND),
5979 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
5980 GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
5981 GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
5982 GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_SHL),
5983 GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
5984 GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
5985 GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
5986 GIM_RecordInsn, /*DefineMI*/4, /*MI*/3, /*OpIdx*/2, // MIs[4]
5987 GIM_CheckOpcode, /*MI*/4, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5988 GIM_CheckI64ImmPredicate, /*MI*/4, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_pkh_lsl_amt),
5989 // MIs[4] Operand 1
5990 // No operand predicates
5991 GIM_CheckConstantInt, /*MI*/2, /*Op*/2, GIMT_Encode8(4294901760),
5992 GIM_CheckIsSafeToFold, /*NumInsns*/4,
5993 // (or:{ *:[i32] } (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, 65535:{ *:[i32] }), (and:{ *:[i32] } (shl:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_pkh_lsl_amt>>:$sh), 4294901760:{ *:[i32] })) => (PKHBT:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$sh)
5994 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::PKHBT),
5995 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
5996 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
5997 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // Rm
5998 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/4, // sh
5999 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
6000 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6001 GIR_RootConstrainSelectedInstOperands,
6002 // GIR_Coverage, 202,
6003 GIR_EraseRootFromParent_Done,
6004 // Label 372: @15826
6005 GIM_Try, /*On fail goto*//*Label 373*/ GIMT_Encode4(15959), // Rule ID 547 //
6006 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
6007 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6008 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6009 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6010 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
6011 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
6012 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6013 GIM_CheckConstantInt, /*MI*/1, /*Op*/2, GIMT_Encode8(65535),
6014 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6015 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_AND),
6016 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
6017 GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
6018 GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
6019 GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_SHL),
6020 GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
6021 GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
6022 GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6023 GIM_RecordInsn, /*DefineMI*/4, /*MI*/3, /*OpIdx*/2, // MIs[4]
6024 GIM_CheckOpcode, /*MI*/4, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6025 GIM_CheckI64ImmPredicate, /*MI*/4, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_pkh_lsl_amt),
6026 // MIs[4] Operand 1
6027 // No operand predicates
6028 GIM_CheckConstantInt, /*MI*/2, /*Op*/2, GIMT_Encode8(4294901760),
6029 GIM_CheckIsSafeToFold, /*NumInsns*/4,
6030 // (or:{ *:[i32] } (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, 65535:{ *:[i32] }), (and:{ *:[i32] } (shl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_pkh_lsl_amt>>:$sh), 4294901760:{ *:[i32] })) => (t2PKHBT:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$sh)
6031 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2PKHBT),
6032 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
6033 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
6034 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // Rm
6035 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/4, // sh
6036 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
6037 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6038 GIR_RootConstrainSelectedInstOperands,
6039 // GIR_Coverage, 547,
6040 GIR_EraseRootFromParent_Done,
6041 // Label 373: @15959
6042 GIM_Try, /*On fail goto*//*Label 374*/ GIMT_Encode4(16064), // Rule ID 1939 //
6043 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
6044 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
6045 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6046 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6047 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
6048 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
6049 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
6050 GIM_CheckConstantInt, /*MI*/1, /*Op*/2, GIMT_Encode8(65535),
6051 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6052 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_AND),
6053 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
6054 GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
6055 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
6056 GIM_CheckConstantInt, /*MI*/2, /*Op*/2, GIMT_Encode8(4294901760),
6057 GIM_CheckIsSafeToFold, /*NumInsns*/2,
6058 // (or:{ *:[i32] } (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, 65535:{ *:[i32] }), (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, 4294901760:{ *:[i32] })) => (PKHBT:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, 0:{ *:[i32] })
6059 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::PKHBT),
6060 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
6061 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
6062 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rm
6063 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
6064 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
6065 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6066 GIR_RootConstrainSelectedInstOperands,
6067 // GIR_Coverage, 1939,
6068 GIR_EraseRootFromParent_Done,
6069 // Label 374: @16064
6070 GIM_Try, /*On fail goto*//*Label 375*/ GIMT_Encode4(16169), // Rule ID 2204 //
6071 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
6072 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6073 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6074 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6075 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
6076 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
6077 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6078 GIM_CheckConstantInt, /*MI*/1, /*Op*/2, GIMT_Encode8(65535),
6079 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6080 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_AND),
6081 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
6082 GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
6083 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6084 GIM_CheckConstantInt, /*MI*/2, /*Op*/2, GIMT_Encode8(4294901760),
6085 GIM_CheckIsSafeToFold, /*NumInsns*/2,
6086 // (or:{ *:[i32] } (and:{ *:[i32] } rGPR:{ *:[i32] }:$src1, 65535:{ *:[i32] }), (and:{ *:[i32] } rGPR:{ *:[i32] }:$src2, 4294901760:{ *:[i32] })) => (t2PKHBT:{ *:[i32] } rGPR:{ *:[i32] }:$src1, rGPR:{ *:[i32] }:$src2, 0:{ *:[i32] })
6087 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2PKHBT),
6088 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
6089 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src1
6090 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // src2
6091 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
6092 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
6093 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6094 GIR_RootConstrainSelectedInstOperands,
6095 // GIR_Coverage, 2204,
6096 GIR_EraseRootFromParent_Done,
6097 // Label 375: @16169
6098 GIM_Try, /*On fail goto*//*Label 376*/ GIMT_Encode4(16274), // Rule ID 5773 //
6099 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
6100 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
6101 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6102 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6103 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
6104 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
6105 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
6106 GIM_CheckConstantInt, /*MI*/1, /*Op*/2, GIMT_Encode8(4294901760),
6107 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6108 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_AND),
6109 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
6110 GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
6111 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
6112 GIM_CheckConstantInt, /*MI*/2, /*Op*/2, GIMT_Encode8(65535),
6113 GIM_CheckIsSafeToFold, /*NumInsns*/2,
6114 // (or:{ *:[i32] } (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, 4294901760:{ *:[i32] }), (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, 65535:{ *:[i32] })) => (PKHBT:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, 0:{ *:[i32] })
6115 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::PKHBT),
6116 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
6117 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rn
6118 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
6119 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
6120 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
6121 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6122 GIR_RootConstrainSelectedInstOperands,
6123 // GIR_Coverage, 5773,
6124 GIR_EraseRootFromParent_Done,
6125 // Label 376: @16274
6126 GIM_Try, /*On fail goto*//*Label 377*/ GIMT_Encode4(16379), // Rule ID 5815 //
6127 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
6128 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6129 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6130 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6131 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
6132 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
6133 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6134 GIM_CheckConstantInt, /*MI*/1, /*Op*/2, GIMT_Encode8(4294901760),
6135 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6136 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_AND),
6137 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
6138 GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
6139 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6140 GIM_CheckConstantInt, /*MI*/2, /*Op*/2, GIMT_Encode8(65535),
6141 GIM_CheckIsSafeToFold, /*NumInsns*/2,
6142 // (or:{ *:[i32] } (and:{ *:[i32] } rGPR:{ *:[i32] }:$src2, 4294901760:{ *:[i32] }), (and:{ *:[i32] } rGPR:{ *:[i32] }:$src1, 65535:{ *:[i32] })) => (t2PKHBT:{ *:[i32] } rGPR:{ *:[i32] }:$src1, rGPR:{ *:[i32] }:$src2, 0:{ *:[i32] })
6143 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2PKHBT),
6144 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
6145 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // src1
6146 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src2
6147 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
6148 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
6149 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6150 GIR_RootConstrainSelectedInstOperands,
6151 // GIR_Coverage, 5815,
6152 GIR_EraseRootFromParent_Done,
6153 // Label 377: @16379
6154 GIM_Try, /*On fail goto*//*Label 378*/ GIMT_Encode4(16485), // Rule ID 1942 //
6155 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
6156 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
6157 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6158 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6159 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
6160 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
6161 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
6162 GIM_CheckConstantInt, /*MI*/1, /*Op*/2, GIMT_Encode8(4294901760),
6163 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6164 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ASHR),
6165 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
6166 GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
6167 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
6168 GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
6169 GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6170 GIM_CheckI64ImmPredicate, /*MI*/3, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm16_31),
6171 // MIs[3] Operand 1
6172 // No operand predicates
6173 GIM_CheckIsSafeToFold, /*NumInsns*/3,
6174 // (or:{ *:[i32] } (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$src1, 4294901760:{ *:[i32] }), (sra:{ *:[i32] } GPRnopc:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh)) => (PKHTB:{ *:[i32] } GPRnopc:{ *:[i32] }:$src1, GPRnopc:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh)
6175 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::PKHTB),
6176 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
6177 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src1
6178 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // src2
6179 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // sh
6180 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
6181 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6182 GIR_RootConstrainSelectedInstOperands,
6183 // GIR_Coverage, 1942,
6184 GIR_EraseRootFromParent_Done,
6185 // Label 378: @16485
6186 GIM_Try, /*On fail goto*//*Label 379*/ GIMT_Encode4(16591), // Rule ID 2207 //
6187 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
6188 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6189 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6190 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6191 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
6192 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
6193 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6194 GIM_CheckConstantInt, /*MI*/1, /*Op*/2, GIMT_Encode8(4294901760),
6195 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6196 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ASHR),
6197 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
6198 GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
6199 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6200 GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
6201 GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6202 GIM_CheckI64ImmPredicate, /*MI*/3, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm16_31),
6203 // MIs[3] Operand 1
6204 // No operand predicates
6205 GIM_CheckIsSafeToFold, /*NumInsns*/3,
6206 // (or:{ *:[i32] } (and:{ *:[i32] } rGPR:{ *:[i32] }:$src1, 4294901760:{ *:[i32] }), (sra:{ *:[i32] } rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh)) => (t2PKHTB:{ *:[i32] } rGPR:{ *:[i32] }:$src1, rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh)
6207 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2PKHTB),
6208 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
6209 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src1
6210 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // src2
6211 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // sh
6212 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
6213 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6214 GIR_RootConstrainSelectedInstOperands,
6215 // GIR_Coverage, 2207,
6216 GIR_EraseRootFromParent_Done,
6217 // Label 379: @16591
6218 GIM_Try, /*On fail goto*//*Label 380*/ GIMT_Encode4(16697), // Rule ID 1941 //
6219 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
6220 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
6221 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6222 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6223 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
6224 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
6225 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
6226 GIM_CheckConstantInt, /*MI*/1, /*Op*/2, GIMT_Encode8(4294901760),
6227 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6228 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_LSHR),
6229 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
6230 GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
6231 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
6232 GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
6233 GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6234 GIM_CheckI64ImmPredicate, /*MI*/3, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm16),
6235 // MIs[3] Operand 1
6236 // No operand predicates
6237 GIM_CheckIsSafeToFold, /*NumInsns*/3,
6238 // (or:{ *:[i32] } (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$src1, 4294901760:{ *:[i32] }), (srl:{ *:[i32] } GPRnopc:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16>>:$sh)) => (PKHTB:{ *:[i32] } GPRnopc:{ *:[i32] }:$src1, GPRnopc:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16>>:$sh)
6239 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::PKHTB),
6240 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
6241 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src1
6242 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // src2
6243 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // sh
6244 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
6245 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6246 GIR_RootConstrainSelectedInstOperands,
6247 // GIR_Coverage, 1941,
6248 GIR_EraseRootFromParent_Done,
6249 // Label 380: @16697
6250 GIM_Try, /*On fail goto*//*Label 381*/ GIMT_Encode4(16803), // Rule ID 2206 //
6251 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
6252 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6253 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6254 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6255 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
6256 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
6257 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6258 GIM_CheckConstantInt, /*MI*/1, /*Op*/2, GIMT_Encode8(4294901760),
6259 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6260 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_LSHR),
6261 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
6262 GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
6263 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6264 GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
6265 GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6266 GIM_CheckI64ImmPredicate, /*MI*/3, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm16),
6267 // MIs[3] Operand 1
6268 // No operand predicates
6269 GIM_CheckIsSafeToFold, /*NumInsns*/3,
6270 // (or:{ *:[i32] } (and:{ *:[i32] } rGPR:{ *:[i32] }:$src1, 4294901760:{ *:[i32] }), (srl:{ *:[i32] } rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16>>:$sh)) => (t2PKHTB:{ *:[i32] } rGPR:{ *:[i32] }:$src1, rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16>>:$sh)
6271 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2PKHTB),
6272 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
6273 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src1
6274 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // src2
6275 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // sh
6276 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
6277 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6278 GIR_RootConstrainSelectedInstOperands,
6279 // GIR_Coverage, 2206,
6280 GIR_EraseRootFromParent_Done,
6281 // Label 381: @16803
6282 GIM_Try, /*On fail goto*//*Label 382*/ GIMT_Encode4(16909), // Rule ID 1940 //
6283 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
6284 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
6285 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6286 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6287 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
6288 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
6289 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
6290 GIM_CheckConstantInt, /*MI*/1, /*Op*/2, GIMT_Encode8(65535),
6291 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6292 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SHL),
6293 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
6294 GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
6295 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
6296 GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
6297 GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6298 GIM_CheckI64ImmPredicate, /*MI*/3, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm16_31),
6299 // MIs[3] Operand 1
6300 // No operand predicates
6301 GIM_CheckIsSafeToFold, /*NumInsns*/3,
6302 // (or:{ *:[i32] } (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, 65535:{ *:[i32] }), (shl:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh)) => (PKHBT:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh)
6303 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::PKHBT),
6304 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
6305 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
6306 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rm
6307 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // sh
6308 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
6309 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6310 GIR_RootConstrainSelectedInstOperands,
6311 // GIR_Coverage, 1940,
6312 GIR_EraseRootFromParent_Done,
6313 // Label 382: @16909
6314 GIM_Try, /*On fail goto*//*Label 383*/ GIMT_Encode4(17015), // Rule ID 2205 //
6315 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
6316 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6317 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6318 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6319 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
6320 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
6321 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6322 GIM_CheckConstantInt, /*MI*/1, /*Op*/2, GIMT_Encode8(65535),
6323 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6324 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SHL),
6325 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
6326 GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
6327 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6328 GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
6329 GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6330 GIM_CheckI64ImmPredicate, /*MI*/3, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm16_31),
6331 // MIs[3] Operand 1
6332 // No operand predicates
6333 GIM_CheckIsSafeToFold, /*NumInsns*/3,
6334 // (or:{ *:[i32] } (and:{ *:[i32] } rGPR:{ *:[i32] }:$src1, 65535:{ *:[i32] }), (shl:{ *:[i32] } rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh)) => (t2PKHBT:{ *:[i32] } rGPR:{ *:[i32] }:$src1, rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh)
6335 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2PKHBT),
6336 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
6337 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src1
6338 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // src2
6339 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // sh
6340 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
6341 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6342 GIR_RootConstrainSelectedInstOperands,
6343 // GIR_Coverage, 2205,
6344 GIR_EraseRootFromParent_Done,
6345 // Label 383: @17015
6346 GIM_Try, /*On fail goto*//*Label 384*/ GIMT_Encode4(17121), // Rule ID 5776 //
6347 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
6348 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
6349 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6350 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ASHR),
6351 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
6352 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
6353 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
6354 GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6355 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6356 GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm16_31),
6357 // MIs[2] Operand 1
6358 // No operand predicates
6359 GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
6360 GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_AND),
6361 GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
6362 GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
6363 GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
6364 GIM_CheckConstantInt, /*MI*/3, /*Op*/2, GIMT_Encode8(4294901760),
6365 GIM_CheckIsSafeToFold, /*NumInsns*/3,
6366 // (or:{ *:[i32] } (sra:{ *:[i32] } GPRnopc:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh), (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$src1, 4294901760:{ *:[i32] })) => (PKHTB:{ *:[i32] } GPRnopc:{ *:[i32] }:$src1, GPRnopc:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh)
6367 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::PKHTB),
6368 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
6369 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // src1
6370 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src2
6371 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // sh
6372 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
6373 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6374 GIR_RootConstrainSelectedInstOperands,
6375 // GIR_Coverage, 5776,
6376 GIR_EraseRootFromParent_Done,
6377 // Label 384: @17121
6378 GIM_Try, /*On fail goto*//*Label 385*/ GIMT_Encode4(17227), // Rule ID 5818 //
6379 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
6380 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6381 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6382 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ASHR),
6383 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
6384 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
6385 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6386 GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6387 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6388 GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm16_31),
6389 // MIs[2] Operand 1
6390 // No operand predicates
6391 GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
6392 GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_AND),
6393 GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
6394 GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
6395 GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6396 GIM_CheckConstantInt, /*MI*/3, /*Op*/2, GIMT_Encode8(4294901760),
6397 GIM_CheckIsSafeToFold, /*NumInsns*/3,
6398 // (or:{ *:[i32] } (sra:{ *:[i32] } rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh), (and:{ *:[i32] } rGPR:{ *:[i32] }:$src1, 4294901760:{ *:[i32] })) => (t2PKHTB:{ *:[i32] } rGPR:{ *:[i32] }:$src1, rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh)
6399 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2PKHTB),
6400 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
6401 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // src1
6402 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src2
6403 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // sh
6404 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
6405 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6406 GIR_RootConstrainSelectedInstOperands,
6407 // GIR_Coverage, 5818,
6408 GIR_EraseRootFromParent_Done,
6409 // Label 385: @17227
6410 GIM_Try, /*On fail goto*//*Label 386*/ GIMT_Encode4(17333), // Rule ID 5775 //
6411 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
6412 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
6413 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6414 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
6415 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
6416 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
6417 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
6418 GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6419 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6420 GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm16),
6421 // MIs[2] Operand 1
6422 // No operand predicates
6423 GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
6424 GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_AND),
6425 GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
6426 GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
6427 GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
6428 GIM_CheckConstantInt, /*MI*/3, /*Op*/2, GIMT_Encode8(4294901760),
6429 GIM_CheckIsSafeToFold, /*NumInsns*/3,
6430 // (or:{ *:[i32] } (srl:{ *:[i32] } GPRnopc:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16>>:$sh), (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$src1, 4294901760:{ *:[i32] })) => (PKHTB:{ *:[i32] } GPRnopc:{ *:[i32] }:$src1, GPRnopc:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16>>:$sh)
6431 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::PKHTB),
6432 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
6433 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // src1
6434 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src2
6435 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // sh
6436 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
6437 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6438 GIR_RootConstrainSelectedInstOperands,
6439 // GIR_Coverage, 5775,
6440 GIR_EraseRootFromParent_Done,
6441 // Label 386: @17333
6442 GIM_Try, /*On fail goto*//*Label 387*/ GIMT_Encode4(17439), // Rule ID 5817 //
6443 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
6444 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6445 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6446 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
6447 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
6448 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
6449 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6450 GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6451 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6452 GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm16),
6453 // MIs[2] Operand 1
6454 // No operand predicates
6455 GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
6456 GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_AND),
6457 GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
6458 GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
6459 GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6460 GIM_CheckConstantInt, /*MI*/3, /*Op*/2, GIMT_Encode8(4294901760),
6461 GIM_CheckIsSafeToFold, /*NumInsns*/3,
6462 // (or:{ *:[i32] } (srl:{ *:[i32] } rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16>>:$sh), (and:{ *:[i32] } rGPR:{ *:[i32] }:$src1, 4294901760:{ *:[i32] })) => (t2PKHTB:{ *:[i32] } rGPR:{ *:[i32] }:$src1, rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16>>:$sh)
6463 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2PKHTB),
6464 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
6465 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // src1
6466 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src2
6467 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // sh
6468 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
6469 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6470 GIR_RootConstrainSelectedInstOperands,
6471 // GIR_Coverage, 5817,
6472 GIR_EraseRootFromParent_Done,
6473 // Label 387: @17439
6474 GIM_Try, /*On fail goto*//*Label 388*/ GIMT_Encode4(17545), // Rule ID 5774 //
6475 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
6476 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
6477 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6478 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
6479 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
6480 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
6481 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
6482 GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6483 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6484 GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm16_31),
6485 // MIs[2] Operand 1
6486 // No operand predicates
6487 GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
6488 GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_AND),
6489 GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
6490 GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
6491 GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
6492 GIM_CheckConstantInt, /*MI*/3, /*Op*/2, GIMT_Encode8(65535),
6493 GIM_CheckIsSafeToFold, /*NumInsns*/3,
6494 // (or:{ *:[i32] } (shl:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh), (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, 65535:{ *:[i32] })) => (PKHBT:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh)
6495 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::PKHBT),
6496 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
6497 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // Rn
6498 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
6499 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // sh
6500 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
6501 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6502 GIR_RootConstrainSelectedInstOperands,
6503 // GIR_Coverage, 5774,
6504 GIR_EraseRootFromParent_Done,
6505 // Label 388: @17545
6506 GIM_Try, /*On fail goto*//*Label 389*/ GIMT_Encode4(17651), // Rule ID 5816 //
6507 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
6508 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6509 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6510 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
6511 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
6512 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
6513 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6514 GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6515 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6516 GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm16_31),
6517 // MIs[2] Operand 1
6518 // No operand predicates
6519 GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
6520 GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_AND),
6521 GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
6522 GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
6523 GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6524 GIM_CheckConstantInt, /*MI*/3, /*Op*/2, GIMT_Encode8(65535),
6525 GIM_CheckIsSafeToFold, /*NumInsns*/3,
6526 // (or:{ *:[i32] } (shl:{ *:[i32] } rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh), (and:{ *:[i32] } rGPR:{ *:[i32] }:$src1, 65535:{ *:[i32] })) => (t2PKHBT:{ *:[i32] } rGPR:{ *:[i32] }:$src1, rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh)
6527 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2PKHBT),
6528 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
6529 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // src1
6530 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src2
6531 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // sh
6532 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
6533 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6534 GIR_RootConstrainSelectedInstOperands,
6535 // GIR_Coverage, 5816,
6536 GIR_EraseRootFromParent_Done,
6537 // Label 389: @17651
6538 GIM_Try, /*On fail goto*//*Label 390*/ GIMT_Encode4(17728), // Rule ID 5594 //
6539 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
6540 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6541 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6542 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
6543 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
6544 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
6545 GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, uint8_t(-1),
6546 GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6547 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6548 GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_t2_so_imm),
6549 // MIs[2] Operand 1
6550 // No operand predicates
6551 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6552 GIM_CheckIsSafeToFold, /*NumInsns*/2,
6553 // (or:{ *:[i32] } (xor:{ *:[i32] } -1:{ *:[i32] }, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm), rGPR:{ *:[i32] }:$Rn) => (t2ORNri:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
6554 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2ORNri),
6555 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
6556 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
6557 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm
6558 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
6559 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6560 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6561 GIR_RootConstrainSelectedInstOperands,
6562 // GIR_Coverage, 5594,
6563 GIR_EraseRootFromParent_Done,
6564 // Label 390: @17728
6565 GIM_Try, /*On fail goto*//*Label 391*/ GIMT_Encode4(17805), // Rule ID 5593 //
6566 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
6567 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6568 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6569 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
6570 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
6571 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
6572 GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
6573 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6574 GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_t2_so_imm),
6575 // MIs[2] Operand 1
6576 // No operand predicates
6577 GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, uint8_t(-1),
6578 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6579 GIM_CheckIsSafeToFold, /*NumInsns*/2,
6580 // (or:{ *:[i32] } (xor:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm, -1:{ *:[i32] }), rGPR:{ *:[i32] }:$Rn) => (t2ORNri:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
6581 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2ORNri),
6582 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
6583 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
6584 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm
6585 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
6586 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6587 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6588 GIR_RootConstrainSelectedInstOperands,
6589 // GIR_Coverage, 5593,
6590 GIR_EraseRootFromParent_Done,
6591 // Label 391: @17805
6592 GIM_Try, /*On fail goto*//*Label 392*/ GIMT_Encode4(17882), // Rule ID 5592 //
6593 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
6594 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6595 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6596 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6597 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
6598 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
6599 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
6600 GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, uint8_t(-1),
6601 GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6602 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6603 GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_t2_so_imm),
6604 // MIs[2] Operand 1
6605 // No operand predicates
6606 GIM_CheckIsSafeToFold, /*NumInsns*/2,
6607 // (or:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (xor:{ *:[i32] } -1:{ *:[i32] }, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm)) => (t2ORNri:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
6608 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2ORNri),
6609 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
6610 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
6611 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm
6612 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
6613 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6614 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6615 GIR_RootConstrainSelectedInstOperands,
6616 // GIR_Coverage, 5592,
6617 GIR_EraseRootFromParent_Done,
6618 // Label 392: @17882
6619 GIM_Try, /*On fail goto*//*Label 393*/ GIMT_Encode4(17959), // Rule ID 504 //
6620 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
6621 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6622 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6623 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6624 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
6625 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
6626 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
6627 GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
6628 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6629 GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_t2_so_imm),
6630 // MIs[2] Operand 1
6631 // No operand predicates
6632 GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, uint8_t(-1),
6633 GIM_CheckIsSafeToFold, /*NumInsns*/2,
6634 // (or:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (xor:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm, -1:{ *:[i32] })) => (t2ORNri:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
6635 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2ORNri),
6636 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
6637 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
6638 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm
6639 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
6640 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6641 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6642 GIR_RootConstrainSelectedInstOperands,
6643 // GIR_Coverage, 504,
6644 GIR_EraseRootFromParent_Done,
6645 // Label 393: @17959
6646 GIM_Try, /*On fail goto*//*Label 394*/ GIMT_Encode4(18030), // Rule ID 5595 //
6647 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
6648 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6649 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6650 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
6651 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
6652 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
6653 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6654 GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, uint8_t(-1),
6655 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6656 GIM_CheckIsSafeToFold, /*NumInsns*/1,
6657 // (or:{ *:[i32] } (xor:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, -1:{ *:[i32] }), rGPR:{ *:[i32] }:$Rn) => (t2ORNrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
6658 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2ORNrr),
6659 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
6660 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
6661 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
6662 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
6663 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6664 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6665 GIR_RootConstrainSelectedInstOperands,
6666 // GIR_Coverage, 5595,
6667 GIR_EraseRootFromParent_Done,
6668 // Label 394: @18030
6669 GIM_Try, /*On fail goto*//*Label 395*/ GIMT_Encode4(18101), // Rule ID 505 //
6670 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
6671 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6672 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6673 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6674 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
6675 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
6676 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
6677 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6678 GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, uint8_t(-1),
6679 GIM_CheckIsSafeToFold, /*NumInsns*/1,
6680 // (or:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (xor:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, -1:{ *:[i32] })) => (t2ORNrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
6681 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2ORNrr),
6682 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
6683 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
6684 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
6685 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
6686 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6687 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6688 GIR_RootConstrainSelectedInstOperands,
6689 // GIR_Coverage, 505,
6690 GIR_EraseRootFromParent_Done,
6691 // Label 395: @18101
6692 GIM_Try, /*On fail goto*//*Label 396*/ GIMT_Encode4(18156), // Rule ID 1872 //
6693 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6T2_IsARM),
6694 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
6695 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
6696 GIM_CheckConstantInt, /*MI*/0, /*Op*/2, GIMT_Encode8(4294901760),
6697 // (or:{ *:[i32] } GPR:{ *:[i32] }:$src, 4294901760:{ *:[i32] }) => (MOVTi16:{ *:[i32] } GPR:{ *:[i32] }:$src, 65535:{ *:[i32] })
6698 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MOVTi16),
6699 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
6700 GIR_RootToRootCopy, /*OpIdx*/1, // src
6701 GIR_AddImm, /*InsnID*/0, /*Imm*/GIMT_Encode8(65535),
6702 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
6703 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6704 GIR_RootConstrainSelectedInstOperands,
6705 // GIR_Coverage, 1872,
6706 GIR_EraseRootFromParent_Done,
6707 // Label 396: @18156
6708 GIM_Try, /*On fail goto*//*Label 397*/ GIMT_Encode4(18211), // Rule ID 2101 //
6709 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
6710 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6711 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6712 GIM_CheckConstantInt, /*MI*/0, /*Op*/2, GIMT_Encode8(4294901760),
6713 // (or:{ *:[i32] } rGPR:{ *:[i32] }:$src, 4294901760:{ *:[i32] }) => (t2MOVTi16:{ *:[i32] } rGPR:{ *:[i32] }:$src, 65535:{ *:[i32] })
6714 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2MOVTi16),
6715 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
6716 GIR_RootToRootCopy, /*OpIdx*/1, // src
6717 GIR_AddImm, /*InsnID*/0, /*Imm*/GIMT_Encode8(65535),
6718 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
6719 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6720 GIR_RootConstrainSelectedInstOperands,
6721 // GIR_Coverage, 2101,
6722 GIR_EraseRootFromParent_Done,
6723 // Label 397: @18211
6724 GIM_Try, /*On fail goto*//*Label 398*/ GIMT_Encode4(18268), // Rule ID 151 //
6725 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
6726 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
6727 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
6728 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6729 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6730 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_mod_imm),
6731 // MIs[1] Operand 1
6732 // No operand predicates
6733 GIM_CheckIsSafeToFold, /*NumInsns*/1,
6734 // (or:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm) => (ORRri:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
6735 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::ORRri),
6736 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
6737 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
6738 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
6739 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
6740 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6741 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6742 GIR_RootConstrainSelectedInstOperands,
6743 // GIR_Coverage, 151,
6744 GIR_EraseRootFromParent_Done,
6745 // Label 398: @18268
6746 GIM_Try, /*On fail goto*//*Label 399*/ GIMT_Encode4(18325), // Rule ID 492 //
6747 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
6748 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6749 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6750 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6751 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6752 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_t2_so_imm),
6753 // MIs[1] Operand 1
6754 // No operand predicates
6755 GIM_CheckIsSafeToFold, /*NumInsns*/1,
6756 // (or:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm) => (t2ORRri:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
6757 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2ORRri),
6758 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
6759 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
6760 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
6761 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
6762 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6763 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6764 GIR_RootConstrainSelectedInstOperands,
6765 // GIR_Coverage, 492,
6766 GIR_EraseRootFromParent_Done,
6767 // Label 399: @18325
6768 GIM_Try, /*On fail goto*//*Label 400*/ GIMT_Encode4(18371), // Rule ID 152 //
6769 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
6770 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
6771 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
6772 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
6773 // (or:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) => (ORRrr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
6774 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::ORRrr),
6775 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
6776 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
6777 GIR_RootToRootCopy, /*OpIdx*/2, // Rm
6778 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
6779 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6780 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6781 GIR_RootConstrainSelectedInstOperands,
6782 // GIR_Coverage, 152,
6783 GIR_EraseRootFromParent_Done,
6784 // Label 400: @18371
6785 GIM_Try, /*On fail goto*//*Label 401*/ GIMT_Encode4(18417), // Rule ID 493 //
6786 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
6787 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6788 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6789 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
6790 // (or:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2ORRrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
6791 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2ORRrr),
6792 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
6793 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
6794 GIR_RootToRootCopy, /*OpIdx*/2, // Rm
6795 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
6796 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6797 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6798 GIR_RootConstrainSelectedInstOperands,
6799 // GIR_Coverage, 493,
6800 GIR_EraseRootFromParent_Done,
6801 // Label 401: @18417
6802 GIM_Reject,
6803 // Label 357: @18418
6804 GIM_Reject,
6805 // Label 344: @18419
6806 GIM_Try, /*On fail goto*//*Label 402*/ GIMT_Encode4(18465), // Rule ID 2529 //
6807 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
6808 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
6809 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
6810 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
6811 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
6812 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
6813 // (or:{ *:[v1i64] } DPR:{ *:[v1i64] }:$LHS, DPR:{ *:[v1i64] }:$RHS) => (VORRd:{ *:[v1i64] } DPR:{ *:[v1i64] }:$LHS, DPR:{ *:[v1i64] }:$RHS)
6814 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VORRd),
6815 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
6816 GIR_RootToRootCopy, /*OpIdx*/1, // LHS
6817 GIR_RootToRootCopy, /*OpIdx*/2, // RHS
6818 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
6819 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6820 GIR_RootConstrainSelectedInstOperands,
6821 // GIR_Coverage, 2529,
6822 GIR_EraseRootFromParent_Done,
6823 // Label 402: @18465
6824 GIM_Reject,
6825 // Label 345: @18466
6826 GIM_Try, /*On fail goto*//*Label 403*/ GIMT_Encode4(18577), // Rule ID 1858 //
6827 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
6828 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s1,
6829 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s1,
6830 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::VCCRRegClassID),
6831 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::VCCRRegClassID),
6832 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::VCCRRegClassID),
6833 // (or:{ *:[v2i1] } VCCR:{ *:[v2i1] }:$p1, VCCR:{ *:[v2i1] }:$p2) => (COPY_TO_REGCLASS:{ *:[v2i1] } (t2ORRrr:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v2i1] }:$p1, rGPR:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v2i1] }:$p2, rGPR:{ *:[i32] })), VCCR:{ *:[i32] })
6834 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
6835 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
6836 GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s32,
6837 GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
6838 GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
6839 GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // p2
6840 GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
6841 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
6842 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
6843 GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // p1
6844 GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
6845 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::t2ORRrr),
6846 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
6847 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
6848 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/2,
6849 GIR_AddImm8, /*InsnID*/1, /*Imm*/14,
6850 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6851 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6852 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
6853 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
6854 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
6855 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
6856 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::VCCRRegClassID),
6857 // GIR_Coverage, 1858,
6858 GIR_EraseRootFromParent_Done,
6859 // Label 403: @18577
6860 GIM_Reject,
6861 // Label 346: @18578
6862 GIM_Try, /*On fail goto*//*Label 404*/ GIMT_Encode4(18624), // Rule ID 1154 //
6863 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
6864 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
6865 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
6866 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
6867 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
6868 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
6869 // (or:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VORRd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
6870 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VORRd),
6871 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
6872 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
6873 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
6874 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
6875 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6876 GIR_RootConstrainSelectedInstOperands,
6877 // GIR_Coverage, 1154,
6878 GIR_EraseRootFromParent_Done,
6879 // Label 404: @18624
6880 GIM_Reject,
6881 // Label 347: @18625
6882 GIM_Try, /*On fail goto*//*Label 405*/ GIMT_Encode4(18736),
6883 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
6884 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s64,
6885 GIM_Try, /*On fail goto*//*Label 406*/ GIMT_Encode4(18676), // Rule ID 2532 //
6886 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
6887 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
6888 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
6889 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
6890 // (or:{ *:[v2i64] } QPR:{ *:[v2i64] }:$LHS, QPR:{ *:[v2i64] }:$RHS) => (VORRq:{ *:[v2i64] } QPR:{ *:[v2i64] }:$LHS, QPR:{ *:[v2i64] }:$RHS)
6891 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VORRq),
6892 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
6893 GIR_RootToRootCopy, /*OpIdx*/1, // LHS
6894 GIR_RootToRootCopy, /*OpIdx*/2, // RHS
6895 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
6896 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6897 GIR_RootConstrainSelectedInstOperands,
6898 // GIR_Coverage, 2532,
6899 GIR_EraseRootFromParent_Done,
6900 // Label 406: @18676
6901 GIM_Try, /*On fail goto*//*Label 407*/ GIMT_Encode4(18735), // Rule ID 3481 //
6902 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
6903 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
6904 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
6905 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
6906 // (or:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$Qm, MQPR:{ *:[v2i64] }:$Qn) => (MVE_VORR:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$Qm, MQPR:{ *:[v2i64] }:$Qn)
6907 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
6908 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
6909 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
6910 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VORR),
6911 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
6912 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
6913 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
6914 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
6915 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6916 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6917 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
6918 GIR_RootConstrainSelectedInstOperands,
6919 // GIR_Coverage, 3481,
6920 GIR_EraseRootFromParent_Done,
6921 // Label 407: @18735
6922 GIM_Reject,
6923 // Label 405: @18736
6924 GIM_Reject,
6925 // Label 348: @18737
6926 GIM_Try, /*On fail goto*//*Label 408*/ GIMT_Encode4(18848), // Rule ID 1859 //
6927 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
6928 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s1,
6929 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s1,
6930 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::VCCRRegClassID),
6931 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::VCCRRegClassID),
6932 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::VCCRRegClassID),
6933 // (or:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, VCCR:{ *:[v4i1] }:$p2) => (COPY_TO_REGCLASS:{ *:[v4i1] } (t2ORRrr:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v4i1] }:$p1, rGPR:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v4i1] }:$p2, rGPR:{ *:[i32] })), VCCR:{ *:[i32] })
6934 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
6935 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
6936 GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s32,
6937 GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
6938 GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
6939 GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // p2
6940 GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
6941 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
6942 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
6943 GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // p1
6944 GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
6945 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::t2ORRrr),
6946 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
6947 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
6948 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/2,
6949 GIR_AddImm8, /*InsnID*/1, /*Imm*/14,
6950 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6951 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6952 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
6953 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
6954 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
6955 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
6956 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::VCCRRegClassID),
6957 // GIR_Coverage, 1859,
6958 GIR_EraseRootFromParent_Done,
6959 // Label 408: @18848
6960 GIM_Reject,
6961 // Label 349: @18849
6962 GIM_Try, /*On fail goto*//*Label 409*/ GIMT_Encode4(18895), // Rule ID 2528 //
6963 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
6964 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
6965 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
6966 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
6967 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
6968 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
6969 // (or:{ *:[v4i16] } DPR:{ *:[v4i16] }:$LHS, DPR:{ *:[v4i16] }:$RHS) => (VORRd:{ *:[v4i16] } DPR:{ *:[v4i16] }:$LHS, DPR:{ *:[v4i16] }:$RHS)
6970 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VORRd),
6971 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
6972 GIR_RootToRootCopy, /*OpIdx*/1, // LHS
6973 GIR_RootToRootCopy, /*OpIdx*/2, // RHS
6974 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
6975 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6976 GIR_RootConstrainSelectedInstOperands,
6977 // GIR_Coverage, 2528,
6978 GIR_EraseRootFromParent_Done,
6979 // Label 409: @18895
6980 GIM_Reject,
6981 // Label 350: @18896
6982 GIM_Try, /*On fail goto*//*Label 410*/ GIMT_Encode4(19007),
6983 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
6984 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
6985 GIM_Try, /*On fail goto*//*Label 411*/ GIMT_Encode4(18947), // Rule ID 1155 //
6986 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
6987 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
6988 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
6989 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
6990 // (or:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VORRq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
6991 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VORRq),
6992 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
6993 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
6994 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
6995 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
6996 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
6997 GIR_RootConstrainSelectedInstOperands,
6998 // GIR_Coverage, 1155,
6999 GIR_EraseRootFromParent_Done,
7000 // Label 411: @18947
7001 GIM_Try, /*On fail goto*//*Label 412*/ GIMT_Encode4(19006), // Rule ID 3477 //
7002 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
7003 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
7004 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
7005 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
7006 // (or:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) => (MVE_VORR:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
7007 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
7008 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
7009 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
7010 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VORR),
7011 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
7012 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
7013 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
7014 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
7015 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7016 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7017 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
7018 GIR_RootConstrainSelectedInstOperands,
7019 // GIR_Coverage, 3477,
7020 GIR_EraseRootFromParent_Done,
7021 // Label 412: @19006
7022 GIM_Reject,
7023 // Label 410: @19007
7024 GIM_Reject,
7025 // Label 351: @19008
7026 GIM_Try, /*On fail goto*//*Label 413*/ GIMT_Encode4(19119), // Rule ID 1860 //
7027 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
7028 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s1,
7029 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s1,
7030 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::VCCRRegClassID),
7031 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::VCCRRegClassID),
7032 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::VCCRRegClassID),
7033 // (or:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, VCCR:{ *:[v8i1] }:$p2) => (COPY_TO_REGCLASS:{ *:[v8i1] } (t2ORRrr:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v8i1] }:$p1, rGPR:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v8i1] }:$p2, rGPR:{ *:[i32] })), VCCR:{ *:[i32] })
7034 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
7035 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
7036 GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s32,
7037 GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
7038 GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
7039 GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // p2
7040 GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
7041 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
7042 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
7043 GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // p1
7044 GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
7045 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::t2ORRrr),
7046 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
7047 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
7048 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/2,
7049 GIR_AddImm8, /*InsnID*/1, /*Imm*/14,
7050 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7051 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7052 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
7053 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
7054 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
7055 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
7056 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::VCCRRegClassID),
7057 // GIR_Coverage, 1860,
7058 GIR_EraseRootFromParent_Done,
7059 // Label 413: @19119
7060 GIM_Reject,
7061 // Label 352: @19120
7062 GIM_Try, /*On fail goto*//*Label 414*/ GIMT_Encode4(19166), // Rule ID 2527 //
7063 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
7064 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s8,
7065 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
7066 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
7067 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
7068 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
7069 // (or:{ *:[v8i8] } DPR:{ *:[v8i8] }:$LHS, DPR:{ *:[v8i8] }:$RHS) => (VORRd:{ *:[v8i8] } DPR:{ *:[v8i8] }:$LHS, DPR:{ *:[v8i8] }:$RHS)
7070 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VORRd),
7071 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
7072 GIR_RootToRootCopy, /*OpIdx*/1, // LHS
7073 GIR_RootToRootCopy, /*OpIdx*/2, // RHS
7074 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
7075 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7076 GIR_RootConstrainSelectedInstOperands,
7077 // GIR_Coverage, 2527,
7078 GIR_EraseRootFromParent_Done,
7079 // Label 414: @19166
7080 GIM_Reject,
7081 // Label 353: @19167
7082 GIM_Try, /*On fail goto*//*Label 415*/ GIMT_Encode4(19278),
7083 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
7084 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
7085 GIM_Try, /*On fail goto*//*Label 416*/ GIMT_Encode4(19218), // Rule ID 2531 //
7086 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
7087 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
7088 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
7089 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
7090 // (or:{ *:[v8i16] } QPR:{ *:[v8i16] }:$LHS, QPR:{ *:[v8i16] }:$RHS) => (VORRq:{ *:[v8i16] } QPR:{ *:[v8i16] }:$LHS, QPR:{ *:[v8i16] }:$RHS)
7091 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VORRq),
7092 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
7093 GIR_RootToRootCopy, /*OpIdx*/1, // LHS
7094 GIR_RootToRootCopy, /*OpIdx*/2, // RHS
7095 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
7096 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7097 GIR_RootConstrainSelectedInstOperands,
7098 // GIR_Coverage, 2531,
7099 GIR_EraseRootFromParent_Done,
7100 // Label 416: @19218
7101 GIM_Try, /*On fail goto*//*Label 417*/ GIMT_Encode4(19277), // Rule ID 3473 //
7102 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
7103 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
7104 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
7105 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
7106 // (or:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) => (MVE_VORR:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
7107 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
7108 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
7109 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
7110 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VORR),
7111 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
7112 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
7113 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
7114 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
7115 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7116 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7117 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
7118 GIR_RootConstrainSelectedInstOperands,
7119 // GIR_Coverage, 3473,
7120 GIR_EraseRootFromParent_Done,
7121 // Label 417: @19277
7122 GIM_Reject,
7123 // Label 415: @19278
7124 GIM_Reject,
7125 // Label 354: @19279
7126 GIM_Try, /*On fail goto*//*Label 418*/ GIMT_Encode4(19390), // Rule ID 1861 //
7127 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
7128 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s1,
7129 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s1,
7130 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::VCCRRegClassID),
7131 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::VCCRRegClassID),
7132 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::VCCRRegClassID),
7133 // (or:{ *:[v16i1] } VCCR:{ *:[v16i1] }:$p1, VCCR:{ *:[v16i1] }:$p2) => (COPY_TO_REGCLASS:{ *:[v16i1] } (t2ORRrr:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v16i1] }:$p1, rGPR:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v16i1] }:$p2, rGPR:{ *:[i32] })), VCCR:{ *:[i32] })
7134 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
7135 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
7136 GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s32,
7137 GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
7138 GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
7139 GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // p2
7140 GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
7141 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
7142 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
7143 GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // p1
7144 GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
7145 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::t2ORRrr),
7146 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
7147 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
7148 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/2,
7149 GIR_AddImm8, /*InsnID*/1, /*Imm*/14,
7150 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7151 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7152 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
7153 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
7154 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
7155 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
7156 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::VCCRRegClassID),
7157 // GIR_Coverage, 1861,
7158 GIR_EraseRootFromParent_Done,
7159 // Label 418: @19390
7160 GIM_Reject,
7161 // Label 355: @19391
7162 GIM_Try, /*On fail goto*//*Label 419*/ GIMT_Encode4(19502),
7163 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
7164 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
7165 GIM_Try, /*On fail goto*//*Label 420*/ GIMT_Encode4(19442), // Rule ID 2530 //
7166 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
7167 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
7168 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
7169 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
7170 // (or:{ *:[v16i8] } QPR:{ *:[v16i8] }:$LHS, QPR:{ *:[v16i8] }:$RHS) => (VORRq:{ *:[v16i8] } QPR:{ *:[v16i8] }:$LHS, QPR:{ *:[v16i8] }:$RHS)
7171 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VORRq),
7172 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
7173 GIR_RootToRootCopy, /*OpIdx*/1, // LHS
7174 GIR_RootToRootCopy, /*OpIdx*/2, // RHS
7175 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
7176 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7177 GIR_RootConstrainSelectedInstOperands,
7178 // GIR_Coverage, 2530,
7179 GIR_EraseRootFromParent_Done,
7180 // Label 420: @19442
7181 GIM_Try, /*On fail goto*//*Label 421*/ GIMT_Encode4(19501), // Rule ID 3469 //
7182 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
7183 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
7184 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
7185 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
7186 // (or:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) => (MVE_VORR:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
7187 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
7188 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
7189 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
7190 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VORR),
7191 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
7192 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
7193 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
7194 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
7195 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7196 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7197 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
7198 GIR_RootConstrainSelectedInstOperands,
7199 // GIR_Coverage, 3469,
7200 GIR_EraseRootFromParent_Done,
7201 // Label 421: @19501
7202 GIM_Reject,
7203 // Label 419: @19502
7204 GIM_Reject,
7205 // Label 356: @19503
7206 GIM_Reject,
7207 // Label 7: @19504
7208 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(1), GIMT_Encode2(16), /*)*//*default:*//*Label 435*/ GIMT_Encode4(21076),
7209 /*GILLT_s32*//*Label 422*/ GIMT_Encode4(19575),
7210 /*GILLT_s64*//*Label 423*/ GIMT_Encode4(19992),
7211 /*GILLT_v2s1*//*Label 424*/ GIMT_Encode4(20039),
7212 /*GILLT_v2s32*//*Label 425*/ GIMT_Encode4(20151),
7213 /*GILLT_v2s64*//*Label 426*/ GIMT_Encode4(20198),
7214 /*GILLT_v4s1*//*Label 427*/ GIMT_Encode4(20310),
7215 /*GILLT_v4s16*//*Label 428*/ GIMT_Encode4(20422),
7216 /*GILLT_v4s32*//*Label 429*/ GIMT_Encode4(20469), GIMT_Encode4(0),
7217 /*GILLT_v8s1*//*Label 430*/ GIMT_Encode4(20581),
7218 /*GILLT_v8s8*//*Label 431*/ GIMT_Encode4(20693),
7219 /*GILLT_v8s16*//*Label 432*/ GIMT_Encode4(20740), GIMT_Encode4(0),
7220 /*GILLT_v16s1*//*Label 433*/ GIMT_Encode4(20852),
7221 /*GILLT_v16s8*//*Label 434*/ GIMT_Encode4(20964),
7222 // Label 422: @19575
7223 GIM_Try, /*On fail goto*//*Label 436*/ GIMT_Encode4(19991),
7224 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
7225 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
7226 GIM_Try, /*On fail goto*//*Label 437*/ GIMT_Encode4(19641), // Rule ID 5597 //
7227 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
7228 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
7229 GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, uint8_t(-1),
7230 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7231 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7232 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_t2_so_imm),
7233 // MIs[1] Operand 1
7234 // No operand predicates
7235 GIM_CheckIsSafeToFold, /*NumInsns*/1,
7236 // (xor:{ *:[i32] } -1:{ *:[i32] }, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm) => (t2MVNi:{ *:[i32] } (imm:{ *:[i32] }):$imm)
7237 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2MVNi),
7238 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
7239 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
7240 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
7241 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7242 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7243 GIR_RootConstrainSelectedInstOperands,
7244 // GIR_Coverage, 5597,
7245 GIR_EraseRootFromParent_Done,
7246 // Label 437: @19641
7247 GIM_Try, /*On fail goto*//*Label 438*/ GIMT_Encode4(19696), // Rule ID 507 //
7248 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
7249 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
7250 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7251 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7252 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_t2_so_imm),
7253 // MIs[1] Operand 1
7254 // No operand predicates
7255 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, uint8_t(-1),
7256 GIM_CheckIsSafeToFold, /*NumInsns*/1,
7257 // (xor:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm, -1:{ *:[i32] }) => (t2MVNi:{ *:[i32] } (imm:{ *:[i32] }):$imm)
7258 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2MVNi),
7259 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
7260 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
7261 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
7262 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7263 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7264 GIR_RootConstrainSelectedInstOperands,
7265 // GIR_Coverage, 507,
7266 GIR_EraseRootFromParent_Done,
7267 // Label 438: @19696
7268 GIM_Try, /*On fail goto*//*Label 439*/ GIMT_Encode4(19740), // Rule ID 508 //
7269 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
7270 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
7271 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
7272 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, uint8_t(-1),
7273 // (xor:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, -1:{ *:[i32] }) => (t2MVNr:{ *:[i32] } rGPR:{ *:[i32] }:$Rm)
7274 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2MVNr),
7275 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
7276 GIR_RootToRootCopy, /*OpIdx*/1, // Rm
7277 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
7278 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7279 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7280 GIR_RootConstrainSelectedInstOperands,
7281 // GIR_Coverage, 508,
7282 GIR_EraseRootFromParent_Done,
7283 // Label 439: @19740
7284 GIM_Try, /*On fail goto*//*Label 440*/ GIMT_Encode4(19784), // Rule ID 165 //
7285 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
7286 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
7287 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
7288 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, uint8_t(-1),
7289 // (xor:{ *:[i32] } GPR:{ *:[i32] }:$Rm, -1:{ *:[i32] }) => (MVNr:{ *:[i32] } GPR:{ *:[i32] }:$Rm)
7290 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVNr),
7291 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
7292 GIR_RootToRootCopy, /*OpIdx*/1, // Rm
7293 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
7294 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7295 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7296 GIR_RootConstrainSelectedInstOperands,
7297 // GIR_Coverage, 165,
7298 GIR_EraseRootFromParent_Done,
7299 // Label 440: @19784
7300 GIM_Try, /*On fail goto*//*Label 441*/ GIMT_Encode4(19841), // Rule ID 155 //
7301 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
7302 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
7303 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
7304 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7305 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7306 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_mod_imm),
7307 // MIs[1] Operand 1
7308 // No operand predicates
7309 GIM_CheckIsSafeToFold, /*NumInsns*/1,
7310 // (xor:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm) => (EORri:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
7311 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::EORri),
7312 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
7313 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
7314 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
7315 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
7316 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7317 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7318 GIR_RootConstrainSelectedInstOperands,
7319 // GIR_Coverage, 155,
7320 GIR_EraseRootFromParent_Done,
7321 // Label 441: @19841
7322 GIM_Try, /*On fail goto*//*Label 442*/ GIMT_Encode4(19898), // Rule ID 495 //
7323 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
7324 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
7325 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
7326 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7327 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7328 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_t2_so_imm),
7329 // MIs[1] Operand 1
7330 // No operand predicates
7331 GIM_CheckIsSafeToFold, /*NumInsns*/1,
7332 // (xor:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm) => (t2EORri:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
7333 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2EORri),
7334 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
7335 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
7336 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
7337 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
7338 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7339 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7340 GIR_RootConstrainSelectedInstOperands,
7341 // GIR_Coverage, 495,
7342 GIR_EraseRootFromParent_Done,
7343 // Label 442: @19898
7344 GIM_Try, /*On fail goto*//*Label 443*/ GIMT_Encode4(19944), // Rule ID 156 //
7345 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
7346 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
7347 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
7348 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
7349 // (xor:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) => (EORrr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
7350 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::EORrr),
7351 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
7352 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
7353 GIR_RootToRootCopy, /*OpIdx*/2, // Rm
7354 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
7355 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7356 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7357 GIR_RootConstrainSelectedInstOperands,
7358 // GIR_Coverage, 156,
7359 GIR_EraseRootFromParent_Done,
7360 // Label 443: @19944
7361 GIM_Try, /*On fail goto*//*Label 444*/ GIMT_Encode4(19990), // Rule ID 496 //
7362 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
7363 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
7364 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
7365 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
7366 // (xor:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2EORrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
7367 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2EORrr),
7368 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
7369 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
7370 GIR_RootToRootCopy, /*OpIdx*/2, // Rm
7371 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
7372 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7373 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7374 GIR_RootConstrainSelectedInstOperands,
7375 // GIR_Coverage, 496,
7376 GIR_EraseRootFromParent_Done,
7377 // Label 444: @19990
7378 GIM_Reject,
7379 // Label 436: @19991
7380 GIM_Reject,
7381 // Label 423: @19992
7382 GIM_Try, /*On fail goto*//*Label 445*/ GIMT_Encode4(20038), // Rule ID 2535 //
7383 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
7384 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
7385 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
7386 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
7387 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
7388 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
7389 // (xor:{ *:[v1i64] } DPR:{ *:[v1i64] }:$LHS, DPR:{ *:[v1i64] }:$RHS) => (VEORd:{ *:[v1i64] } DPR:{ *:[v1i64] }:$LHS, DPR:{ *:[v1i64] }:$RHS)
7390 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VEORd),
7391 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
7392 GIR_RootToRootCopy, /*OpIdx*/1, // LHS
7393 GIR_RootToRootCopy, /*OpIdx*/2, // RHS
7394 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
7395 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7396 GIR_RootConstrainSelectedInstOperands,
7397 // GIR_Coverage, 2535,
7398 GIR_EraseRootFromParent_Done,
7399 // Label 445: @20038
7400 GIM_Reject,
7401 // Label 424: @20039
7402 GIM_Try, /*On fail goto*//*Label 446*/ GIMT_Encode4(20150), // Rule ID 1854 //
7403 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
7404 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s1,
7405 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s1,
7406 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::VCCRRegClassID),
7407 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::VCCRRegClassID),
7408 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::VCCRRegClassID),
7409 // (xor:{ *:[v2i1] } VCCR:{ *:[v2i1] }:$p1, VCCR:{ *:[v2i1] }:$p2) => (COPY_TO_REGCLASS:{ *:[v2i1] } (t2EORrr:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v2i1] }:$p1, rGPR:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v2i1] }:$p2, rGPR:{ *:[i32] })), VCCR:{ *:[i32] })
7410 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
7411 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
7412 GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s32,
7413 GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
7414 GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
7415 GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // p2
7416 GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
7417 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
7418 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
7419 GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // p1
7420 GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
7421 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::t2EORrr),
7422 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
7423 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
7424 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/2,
7425 GIR_AddImm8, /*InsnID*/1, /*Imm*/14,
7426 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7427 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7428 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
7429 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
7430 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
7431 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
7432 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::VCCRRegClassID),
7433 // GIR_Coverage, 1854,
7434 GIR_EraseRootFromParent_Done,
7435 // Label 446: @20150
7436 GIM_Reject,
7437 // Label 425: @20151
7438 GIM_Try, /*On fail goto*//*Label 447*/ GIMT_Encode4(20197), // Rule ID 1152 //
7439 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
7440 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
7441 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
7442 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
7443 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
7444 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
7445 // (xor:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VEORd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
7446 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VEORd),
7447 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
7448 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
7449 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
7450 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
7451 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7452 GIR_RootConstrainSelectedInstOperands,
7453 // GIR_Coverage, 1152,
7454 GIR_EraseRootFromParent_Done,
7455 // Label 447: @20197
7456 GIM_Reject,
7457 // Label 426: @20198
7458 GIM_Try, /*On fail goto*//*Label 448*/ GIMT_Encode4(20309),
7459 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
7460 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s64,
7461 GIM_Try, /*On fail goto*//*Label 449*/ GIMT_Encode4(20249), // Rule ID 2538 //
7462 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
7463 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
7464 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
7465 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
7466 // (xor:{ *:[v2i64] } QPR:{ *:[v2i64] }:$LHS, QPR:{ *:[v2i64] }:$RHS) => (VEORq:{ *:[v2i64] } QPR:{ *:[v2i64] }:$LHS, QPR:{ *:[v2i64] }:$RHS)
7467 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VEORq),
7468 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
7469 GIR_RootToRootCopy, /*OpIdx*/1, // LHS
7470 GIR_RootToRootCopy, /*OpIdx*/2, // RHS
7471 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
7472 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7473 GIR_RootConstrainSelectedInstOperands,
7474 // GIR_Coverage, 2538,
7475 GIR_EraseRootFromParent_Done,
7476 // Label 449: @20249
7477 GIM_Try, /*On fail goto*//*Label 450*/ GIMT_Encode4(20308), // Rule ID 3495 //
7478 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
7479 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
7480 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
7481 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
7482 // (xor:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$Qm, MQPR:{ *:[v2i64] }:$Qn) => (MVE_VEOR:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$Qm, MQPR:{ *:[v2i64] }:$Qn)
7483 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
7484 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
7485 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
7486 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VEOR),
7487 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
7488 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
7489 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
7490 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
7491 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7492 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7493 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
7494 GIR_RootConstrainSelectedInstOperands,
7495 // GIR_Coverage, 3495,
7496 GIR_EraseRootFromParent_Done,
7497 // Label 450: @20308
7498 GIM_Reject,
7499 // Label 448: @20309
7500 GIM_Reject,
7501 // Label 427: @20310
7502 GIM_Try, /*On fail goto*//*Label 451*/ GIMT_Encode4(20421), // Rule ID 1855 //
7503 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
7504 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s1,
7505 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s1,
7506 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::VCCRRegClassID),
7507 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::VCCRRegClassID),
7508 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::VCCRRegClassID),
7509 // (xor:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, VCCR:{ *:[v4i1] }:$p2) => (COPY_TO_REGCLASS:{ *:[v4i1] } (t2EORrr:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v4i1] }:$p1, rGPR:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v4i1] }:$p2, rGPR:{ *:[i32] })), VCCR:{ *:[i32] })
7510 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
7511 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
7512 GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s32,
7513 GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
7514 GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
7515 GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // p2
7516 GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
7517 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
7518 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
7519 GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // p1
7520 GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
7521 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::t2EORrr),
7522 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
7523 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
7524 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/2,
7525 GIR_AddImm8, /*InsnID*/1, /*Imm*/14,
7526 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7527 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7528 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
7529 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
7530 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
7531 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
7532 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::VCCRRegClassID),
7533 // GIR_Coverage, 1855,
7534 GIR_EraseRootFromParent_Done,
7535 // Label 451: @20421
7536 GIM_Reject,
7537 // Label 428: @20422
7538 GIM_Try, /*On fail goto*//*Label 452*/ GIMT_Encode4(20468), // Rule ID 2534 //
7539 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
7540 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
7541 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
7542 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
7543 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
7544 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
7545 // (xor:{ *:[v4i16] } DPR:{ *:[v4i16] }:$LHS, DPR:{ *:[v4i16] }:$RHS) => (VEORd:{ *:[v4i16] } DPR:{ *:[v4i16] }:$LHS, DPR:{ *:[v4i16] }:$RHS)
7546 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VEORd),
7547 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
7548 GIR_RootToRootCopy, /*OpIdx*/1, // LHS
7549 GIR_RootToRootCopy, /*OpIdx*/2, // RHS
7550 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
7551 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7552 GIR_RootConstrainSelectedInstOperands,
7553 // GIR_Coverage, 2534,
7554 GIR_EraseRootFromParent_Done,
7555 // Label 452: @20468
7556 GIM_Reject,
7557 // Label 429: @20469
7558 GIM_Try, /*On fail goto*//*Label 453*/ GIMT_Encode4(20580),
7559 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
7560 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
7561 GIM_Try, /*On fail goto*//*Label 454*/ GIMT_Encode4(20520), // Rule ID 1153 //
7562 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
7563 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
7564 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
7565 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
7566 // (xor:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VEORq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
7567 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VEORq),
7568 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
7569 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
7570 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
7571 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
7572 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7573 GIR_RootConstrainSelectedInstOperands,
7574 // GIR_Coverage, 1153,
7575 GIR_EraseRootFromParent_Done,
7576 // Label 454: @20520
7577 GIM_Try, /*On fail goto*//*Label 455*/ GIMT_Encode4(20579), // Rule ID 3491 //
7578 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
7579 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
7580 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
7581 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
7582 // (xor:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) => (MVE_VEOR:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
7583 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
7584 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
7585 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
7586 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VEOR),
7587 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
7588 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
7589 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
7590 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
7591 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7592 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7593 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
7594 GIR_RootConstrainSelectedInstOperands,
7595 // GIR_Coverage, 3491,
7596 GIR_EraseRootFromParent_Done,
7597 // Label 455: @20579
7598 GIM_Reject,
7599 // Label 453: @20580
7600 GIM_Reject,
7601 // Label 430: @20581
7602 GIM_Try, /*On fail goto*//*Label 456*/ GIMT_Encode4(20692), // Rule ID 1856 //
7603 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
7604 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s1,
7605 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s1,
7606 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::VCCRRegClassID),
7607 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::VCCRRegClassID),
7608 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::VCCRRegClassID),
7609 // (xor:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, VCCR:{ *:[v8i1] }:$p2) => (COPY_TO_REGCLASS:{ *:[v8i1] } (t2EORrr:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v8i1] }:$p1, rGPR:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v8i1] }:$p2, rGPR:{ *:[i32] })), VCCR:{ *:[i32] })
7610 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
7611 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
7612 GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s32,
7613 GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
7614 GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
7615 GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // p2
7616 GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
7617 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
7618 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
7619 GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // p1
7620 GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
7621 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::t2EORrr),
7622 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
7623 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
7624 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/2,
7625 GIR_AddImm8, /*InsnID*/1, /*Imm*/14,
7626 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7627 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7628 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
7629 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
7630 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
7631 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
7632 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::VCCRRegClassID),
7633 // GIR_Coverage, 1856,
7634 GIR_EraseRootFromParent_Done,
7635 // Label 456: @20692
7636 GIM_Reject,
7637 // Label 431: @20693
7638 GIM_Try, /*On fail goto*//*Label 457*/ GIMT_Encode4(20739), // Rule ID 2533 //
7639 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
7640 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s8,
7641 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
7642 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
7643 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
7644 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
7645 // (xor:{ *:[v8i8] } DPR:{ *:[v8i8] }:$LHS, DPR:{ *:[v8i8] }:$RHS) => (VEORd:{ *:[v8i8] } DPR:{ *:[v8i8] }:$LHS, DPR:{ *:[v8i8] }:$RHS)
7646 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VEORd),
7647 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
7648 GIR_RootToRootCopy, /*OpIdx*/1, // LHS
7649 GIR_RootToRootCopy, /*OpIdx*/2, // RHS
7650 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
7651 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7652 GIR_RootConstrainSelectedInstOperands,
7653 // GIR_Coverage, 2533,
7654 GIR_EraseRootFromParent_Done,
7655 // Label 457: @20739
7656 GIM_Reject,
7657 // Label 432: @20740
7658 GIM_Try, /*On fail goto*//*Label 458*/ GIMT_Encode4(20851),
7659 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
7660 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
7661 GIM_Try, /*On fail goto*//*Label 459*/ GIMT_Encode4(20791), // Rule ID 2537 //
7662 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
7663 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
7664 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
7665 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
7666 // (xor:{ *:[v8i16] } QPR:{ *:[v8i16] }:$LHS, QPR:{ *:[v8i16] }:$RHS) => (VEORq:{ *:[v8i16] } QPR:{ *:[v8i16] }:$LHS, QPR:{ *:[v8i16] }:$RHS)
7667 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VEORq),
7668 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
7669 GIR_RootToRootCopy, /*OpIdx*/1, // LHS
7670 GIR_RootToRootCopy, /*OpIdx*/2, // RHS
7671 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
7672 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7673 GIR_RootConstrainSelectedInstOperands,
7674 // GIR_Coverage, 2537,
7675 GIR_EraseRootFromParent_Done,
7676 // Label 459: @20791
7677 GIM_Try, /*On fail goto*//*Label 460*/ GIMT_Encode4(20850), // Rule ID 3487 //
7678 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
7679 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
7680 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
7681 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
7682 // (xor:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) => (MVE_VEOR:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
7683 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
7684 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
7685 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
7686 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VEOR),
7687 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
7688 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
7689 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
7690 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
7691 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7692 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7693 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
7694 GIR_RootConstrainSelectedInstOperands,
7695 // GIR_Coverage, 3487,
7696 GIR_EraseRootFromParent_Done,
7697 // Label 460: @20850
7698 GIM_Reject,
7699 // Label 458: @20851
7700 GIM_Reject,
7701 // Label 433: @20852
7702 GIM_Try, /*On fail goto*//*Label 461*/ GIMT_Encode4(20963), // Rule ID 1857 //
7703 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
7704 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s1,
7705 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s1,
7706 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::VCCRRegClassID),
7707 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::VCCRRegClassID),
7708 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::VCCRRegClassID),
7709 // (xor:{ *:[v16i1] } VCCR:{ *:[v16i1] }:$p1, VCCR:{ *:[v16i1] }:$p2) => (COPY_TO_REGCLASS:{ *:[v16i1] } (t2EORrr:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v16i1] }:$p1, rGPR:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v16i1] }:$p2, rGPR:{ *:[i32] })), VCCR:{ *:[i32] })
7710 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
7711 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
7712 GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s32,
7713 GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
7714 GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
7715 GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // p2
7716 GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
7717 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
7718 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
7719 GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // p1
7720 GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
7721 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::t2EORrr),
7722 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
7723 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
7724 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/2,
7725 GIR_AddImm8, /*InsnID*/1, /*Imm*/14,
7726 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7727 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7728 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
7729 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
7730 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
7731 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
7732 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::VCCRRegClassID),
7733 // GIR_Coverage, 1857,
7734 GIR_EraseRootFromParent_Done,
7735 // Label 461: @20963
7736 GIM_Reject,
7737 // Label 434: @20964
7738 GIM_Try, /*On fail goto*//*Label 462*/ GIMT_Encode4(21075),
7739 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
7740 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
7741 GIM_Try, /*On fail goto*//*Label 463*/ GIMT_Encode4(21015), // Rule ID 2536 //
7742 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
7743 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
7744 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
7745 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
7746 // (xor:{ *:[v16i8] } QPR:{ *:[v16i8] }:$LHS, QPR:{ *:[v16i8] }:$RHS) => (VEORq:{ *:[v16i8] } QPR:{ *:[v16i8] }:$LHS, QPR:{ *:[v16i8] }:$RHS)
7747 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VEORq),
7748 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
7749 GIR_RootToRootCopy, /*OpIdx*/1, // LHS
7750 GIR_RootToRootCopy, /*OpIdx*/2, // RHS
7751 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
7752 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7753 GIR_RootConstrainSelectedInstOperands,
7754 // GIR_Coverage, 2536,
7755 GIR_EraseRootFromParent_Done,
7756 // Label 463: @21015
7757 GIM_Try, /*On fail goto*//*Label 464*/ GIMT_Encode4(21074), // Rule ID 3483 //
7758 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
7759 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
7760 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
7761 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
7762 // (xor:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) => (MVE_VEOR:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
7763 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
7764 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
7765 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
7766 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VEOR),
7767 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
7768 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
7769 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
7770 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
7771 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7772 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7773 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
7774 GIR_RootConstrainSelectedInstOperands,
7775 // GIR_Coverage, 3483,
7776 GIR_EraseRootFromParent_Done,
7777 // Label 464: @21074
7778 GIM_Reject,
7779 // Label 462: @21075
7780 GIM_Reject,
7781 // Label 435: @21076
7782 GIM_Reject,
7783 // Label 8: @21077
7784 GIM_Try, /*On fail goto*//*Label 465*/ GIMT_Encode4(21502),
7785 GIM_CheckNumOperands, /*MI*/0, /*Expected*/3,
7786 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(5), GIMT_Encode2(16), /*)*//*default:*//*Label 470*/ GIMT_Encode4(21501),
7787 /*GILLT_v2s64*//*Label 466*/ GIMT_Encode4(21140), GIMT_Encode4(0), GIMT_Encode4(0),
7788 /*GILLT_v4s32*//*Label 467*/ GIMT_Encode4(21198), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
7789 /*GILLT_v8s16*//*Label 468*/ GIMT_Encode4(21301), GIMT_Encode4(0), GIMT_Encode4(0),
7790 /*GILLT_v16s8*//*Label 469*/ GIMT_Encode4(21443),
7791 // Label 466: @21140
7792 GIM_Try, /*On fail goto*//*Label 471*/ GIMT_Encode4(21197), // Rule ID 3116 //
7793 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
7794 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
7795 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
7796 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
7797 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
7798 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
7799 // (concat_vectors:{ *:[v2i64] } DPR:{ *:[v1i64] }:$Dn, DPR:{ *:[v1i64] }:$Dm) => (REG_SEQUENCE:{ *:[v2i64] } QPR:{ *:[i32] }, DPR:{ *:[v1i64] }:$Dn, dsub_0:{ *:[i32] }, DPR:{ *:[v1i64] }:$Dm, dsub_1:{ *:[i32] })
7800 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::REG_SEQUENCE),
7801 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
7802 GIR_RootToRootCopy, /*OpIdx*/1, // Dn
7803 GIR_AddImm8, /*InsnID*/0, /*SubRegIndex*/1,
7804 GIR_RootToRootCopy, /*OpIdx*/2, // Dm
7805 GIR_AddImm8, /*InsnID*/0, /*SubRegIndex*/2,
7806 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
7807 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, GIMT_Encode2(ARM::DPRRegClassID),
7808 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/3, GIMT_Encode2(ARM::DPRRegClassID),
7809 // GIR_Coverage, 3116,
7810 GIR_EraseRootFromParent_Done,
7811 // Label 471: @21197
7812 GIM_Reject,
7813 // Label 467: @21198
7814 GIM_Try, /*On fail goto*//*Label 472*/ GIMT_Encode4(21300),
7815 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
7816 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
7817 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
7818 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
7819 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
7820 GIM_Try, /*On fail goto*//*Label 473*/ GIMT_Encode4(21260), // Rule ID 3117 //
7821 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
7822 // (concat_vectors:{ *:[v4i32] } DPR:{ *:[v2i32] }:$Dn, DPR:{ *:[v2i32] }:$Dm) => (REG_SEQUENCE:{ *:[v4i32] } QPR:{ *:[i32] }, DPR:{ *:[v2i32] }:$Dn, dsub_0:{ *:[i32] }, DPR:{ *:[v2i32] }:$Dm, dsub_1:{ *:[i32] })
7823 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::REG_SEQUENCE),
7824 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
7825 GIR_RootToRootCopy, /*OpIdx*/1, // Dn
7826 GIR_AddImm8, /*InsnID*/0, /*SubRegIndex*/1,
7827 GIR_RootToRootCopy, /*OpIdx*/2, // Dm
7828 GIR_AddImm8, /*InsnID*/0, /*SubRegIndex*/2,
7829 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
7830 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, GIMT_Encode2(ARM::DPRRegClassID),
7831 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/3, GIMT_Encode2(ARM::DPRRegClassID),
7832 // GIR_Coverage, 3117,
7833 GIR_EraseRootFromParent_Done,
7834 // Label 473: @21260
7835 GIM_Try, /*On fail goto*//*Label 474*/ GIMT_Encode4(21299), // Rule ID 3120 //
7836 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
7837 // (concat_vectors:{ *:[v4f32] } DPR:{ *:[v2f32] }:$Dn, DPR:{ *:[v2f32] }:$Dm) => (REG_SEQUENCE:{ *:[v4f32] } QPR:{ *:[i32] }, DPR:{ *:[v2f32] }:$Dn, dsub_0:{ *:[i32] }, DPR:{ *:[v2f32] }:$Dm, dsub_1:{ *:[i32] })
7838 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::REG_SEQUENCE),
7839 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
7840 GIR_RootToRootCopy, /*OpIdx*/1, // Dn
7841 GIR_AddImm8, /*InsnID*/0, /*SubRegIndex*/1,
7842 GIR_RootToRootCopy, /*OpIdx*/2, // Dm
7843 GIR_AddImm8, /*InsnID*/0, /*SubRegIndex*/2,
7844 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
7845 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, GIMT_Encode2(ARM::DPRRegClassID),
7846 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/3, GIMT_Encode2(ARM::DPRRegClassID),
7847 // GIR_Coverage, 3120,
7848 GIR_EraseRootFromParent_Done,
7849 // Label 474: @21299
7850 GIM_Reject,
7851 // Label 472: @21300
7852 GIM_Reject,
7853 // Label 468: @21301
7854 GIM_Try, /*On fail goto*//*Label 475*/ GIMT_Encode4(21442),
7855 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
7856 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
7857 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
7858 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
7859 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
7860 GIM_Try, /*On fail goto*//*Label 476*/ GIMT_Encode4(21363), // Rule ID 3118 //
7861 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
7862 // (concat_vectors:{ *:[v8i16] } DPR:{ *:[v4i16] }:$Dn, DPR:{ *:[v4i16] }:$Dm) => (REG_SEQUENCE:{ *:[v8i16] } QPR:{ *:[i32] }, DPR:{ *:[v4i16] }:$Dn, dsub_0:{ *:[i32] }, DPR:{ *:[v4i16] }:$Dm, dsub_1:{ *:[i32] })
7863 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::REG_SEQUENCE),
7864 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
7865 GIR_RootToRootCopy, /*OpIdx*/1, // Dn
7866 GIR_AddImm8, /*InsnID*/0, /*SubRegIndex*/1,
7867 GIR_RootToRootCopy, /*OpIdx*/2, // Dm
7868 GIR_AddImm8, /*InsnID*/0, /*SubRegIndex*/2,
7869 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
7870 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, GIMT_Encode2(ARM::DPRRegClassID),
7871 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/3, GIMT_Encode2(ARM::DPRRegClassID),
7872 // GIR_Coverage, 3118,
7873 GIR_EraseRootFromParent_Done,
7874 // Label 476: @21363
7875 GIM_Try, /*On fail goto*//*Label 477*/ GIMT_Encode4(21402), // Rule ID 3121 //
7876 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
7877 // (concat_vectors:{ *:[v8f16] } DPR:{ *:[v4f16] }:$Dn, DPR:{ *:[v4f16] }:$Dm) => (REG_SEQUENCE:{ *:[v8f16] } QPR:{ *:[i32] }, DPR:{ *:[v4f16] }:$Dn, dsub_0:{ *:[i32] }, DPR:{ *:[v4f16] }:$Dm, dsub_1:{ *:[i32] })
7878 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::REG_SEQUENCE),
7879 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
7880 GIR_RootToRootCopy, /*OpIdx*/1, // Dn
7881 GIR_AddImm8, /*InsnID*/0, /*SubRegIndex*/1,
7882 GIR_RootToRootCopy, /*OpIdx*/2, // Dm
7883 GIR_AddImm8, /*InsnID*/0, /*SubRegIndex*/2,
7884 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
7885 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, GIMT_Encode2(ARM::DPRRegClassID),
7886 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/3, GIMT_Encode2(ARM::DPRRegClassID),
7887 // GIR_Coverage, 3121,
7888 GIR_EraseRootFromParent_Done,
7889 // Label 477: @21402
7890 GIM_Try, /*On fail goto*//*Label 478*/ GIMT_Encode4(21441), // Rule ID 3122 //
7891 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
7892 // (concat_vectors:{ *:[v8bf16] } DPR:{ *:[v4bf16] }:$Dn, DPR:{ *:[v4bf16] }:$Dm) => (REG_SEQUENCE:{ *:[v8bf16] } QPR:{ *:[i32] }, DPR:{ *:[v4bf16] }:$Dn, dsub_0:{ *:[i32] }, DPR:{ *:[v4bf16] }:$Dm, dsub_1:{ *:[i32] })
7893 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::REG_SEQUENCE),
7894 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
7895 GIR_RootToRootCopy, /*OpIdx*/1, // Dn
7896 GIR_AddImm8, /*InsnID*/0, /*SubRegIndex*/1,
7897 GIR_RootToRootCopy, /*OpIdx*/2, // Dm
7898 GIR_AddImm8, /*InsnID*/0, /*SubRegIndex*/2,
7899 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
7900 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, GIMT_Encode2(ARM::DPRRegClassID),
7901 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/3, GIMT_Encode2(ARM::DPRRegClassID),
7902 // GIR_Coverage, 3122,
7903 GIR_EraseRootFromParent_Done,
7904 // Label 478: @21441
7905 GIM_Reject,
7906 // Label 475: @21442
7907 GIM_Reject,
7908 // Label 469: @21443
7909 GIM_Try, /*On fail goto*//*Label 479*/ GIMT_Encode4(21500), // Rule ID 3119 //
7910 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
7911 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s8,
7912 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
7913 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
7914 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
7915 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
7916 // (concat_vectors:{ *:[v16i8] } DPR:{ *:[v8i8] }:$Dn, DPR:{ *:[v8i8] }:$Dm) => (REG_SEQUENCE:{ *:[v16i8] } QPR:{ *:[i32] }, DPR:{ *:[v8i8] }:$Dn, dsub_0:{ *:[i32] }, DPR:{ *:[v8i8] }:$Dm, dsub_1:{ *:[i32] })
7917 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::REG_SEQUENCE),
7918 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
7919 GIR_RootToRootCopy, /*OpIdx*/1, // Dn
7920 GIR_AddImm8, /*InsnID*/0, /*SubRegIndex*/1,
7921 GIR_RootToRootCopy, /*OpIdx*/2, // Dm
7922 GIR_AddImm8, /*InsnID*/0, /*SubRegIndex*/2,
7923 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
7924 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, GIMT_Encode2(ARM::DPRRegClassID),
7925 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/3, GIMT_Encode2(ARM::DPRRegClassID),
7926 // GIR_Coverage, 3119,
7927 GIR_EraseRootFromParent_Done,
7928 // Label 479: @21500
7929 GIM_Reject,
7930 // Label 470: @21501
7931 GIM_Reject,
7932 // Label 465: @21502
7933 GIM_Reject,
7934 // Label 9: @21503
7935 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(1), GIMT_Encode2(16), /*)*//*default:*//*Label 489*/ GIMT_Encode4(31950),
7936 /*GILLT_s32*//*Label 480*/ GIMT_Encode4(21574),
7937 /*GILLT_s64*//*Label 481*/ GIMT_Encode4(21722), GIMT_Encode4(0),
7938 /*GILLT_v2s32*//*Label 482*/ GIMT_Encode4(22615),
7939 /*GILLT_v2s64*//*Label 483*/ GIMT_Encode4(23508), GIMT_Encode4(0),
7940 /*GILLT_v4s16*//*Label 484*/ GIMT_Encode4(25345),
7941 /*GILLT_v4s32*//*Label 485*/ GIMT_Encode4(26509), GIMT_Encode4(0), GIMT_Encode4(0),
7942 /*GILLT_v8s8*//*Label 486*/ GIMT_Encode4(28346),
7943 /*GILLT_v8s16*//*Label 487*/ GIMT_Encode4(28830), GIMT_Encode4(0), GIMT_Encode4(0),
7944 /*GILLT_v16s8*//*Label 488*/ GIMT_Encode4(30938),
7945 // Label 480: @21574
7946 GIM_Try, /*On fail goto*//*Label 490*/ GIMT_Encode4(21721),
7947 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
7948 GIM_Try, /*On fail goto*//*Label 491*/ GIMT_Encode4(21616), // Rule ID 706 //
7949 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFPRegs),
7950 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
7951 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
7952 // (bitconvert:{ *:[i32] } SPR:{ *:[f32] }:$Sn) => (VMOVRS:{ *:[i32] } SPR:{ *:[f32] }:$Sn)
7953 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMOVRS),
7954 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rt]
7955 GIR_RootToRootCopy, /*OpIdx*/1, // Sn
7956 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
7957 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7958 GIR_RootConstrainSelectedInstOperands,
7959 // GIR_Coverage, 706,
7960 GIR_EraseRootFromParent_Done,
7961 // Label 491: @21616
7962 GIM_Try, /*On fail goto*//*Label 492*/ GIMT_Encode4(21650), // Rule ID 707 //
7963 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFPRegs_UseVMOVSR),
7964 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
7965 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
7966 // (bitconvert:{ *:[f32] } GPR:{ *:[i32] }:$Rt) => (VMOVSR:{ *:[f32] } GPR:{ *:[i32] }:$Rt)
7967 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMOVSR),
7968 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sn]
7969 GIR_RootToRootCopy, /*OpIdx*/1, // Rt
7970 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
7971 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7972 GIR_RootConstrainSelectedInstOperands,
7973 // GIR_Coverage, 707,
7974 GIR_EraseRootFromParent_Done,
7975 // Label 492: @21650
7976 GIM_Try, /*On fail goto*//*Label 493*/ GIMT_Encode4(21720), // Rule ID 2736 //
7977 GIM_CheckFeatures, GIMT_Encode2(GIFBS_DontUseVMOVSR_HasNEON),
7978 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
7979 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
7980 // (bitconvert:{ *:[f32] } GPR:{ *:[i32] }:$a) => (EXTRACT_SUBREG:{ *:[f32] } (VMOVDRR:{ *:[f64] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$a), ssub_0:{ *:[i32] })
7981 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s64,
7982 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::VMOVDRR),
7983 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
7984 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // a
7985 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // a
7986 GIR_AddImm8, /*InsnID*/1, /*Imm*/14,
7987 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
7988 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
7989 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
7990 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
7991 GIR_AddTempSubRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(0), GIMT_Encode2(ARM::ssub_0),
7992 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::SPRRegClassID),
7993 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
7994 // GIR_Coverage, 2736,
7995 GIR_EraseRootFromParent_Done,
7996 // Label 493: @21720
7997 GIM_Reject,
7998 // Label 490: @21721
7999 GIM_Reject,
8000 // Label 481: @21722
8001 GIM_Try, /*On fail goto*//*Label 494*/ GIMT_Encode4(21754), // Rule ID 2738 //
8002 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
8003 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
8004 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8005 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8006 // (bitconvert:{ *:[f64] } DPR:{ *:[v1i64] }:$src) => DPR:{ *:[f64] }:$src
8007 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8008 GIR_RootToRootCopy, /*OpIdx*/0, // dst
8009 GIR_RootToRootCopy, /*OpIdx*/1, // src
8010 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
8011 // GIR_Coverage, 2738,
8012 GIR_EraseRootFromParent_Done,
8013 // Label 494: @21754
8014 GIM_Try, /*On fail goto*//*Label 495*/ GIMT_Encode4(21786), // Rule ID 2739 //
8015 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
8016 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
8017 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8018 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8019 // (bitconvert:{ *:[v1i64] } DPR:{ *:[f64] }:$src) => DPR:{ *:[v1i64] }:$src
8020 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8021 GIR_RootToRootCopy, /*OpIdx*/0, // dst
8022 GIR_RootToRootCopy, /*OpIdx*/1, // src
8023 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
8024 // GIR_Coverage, 2739,
8025 GIR_EraseRootFromParent_Done,
8026 // Label 495: @21786
8027 GIM_Try, /*On fail goto*//*Label 496*/ GIMT_Encode4(21818), // Rule ID 2754 //
8028 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
8029 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
8030 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8031 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8032 // (bitconvert:{ *:[f64] } DPR:{ *:[v2f32] }:$src) => DPR:{ *:[f64] }:$src
8033 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8034 GIR_RootToRootCopy, /*OpIdx*/0, // dst
8035 GIR_RootToRootCopy, /*OpIdx*/1, // src
8036 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
8037 // GIR_Coverage, 2754,
8038 GIR_EraseRootFromParent_Done,
8039 // Label 496: @21818
8040 GIM_Try, /*On fail goto*//*Label 497*/ GIMT_Encode4(21850), // Rule ID 2755 //
8041 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
8042 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
8043 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8044 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8045 // (bitconvert:{ *:[f64] } DPR:{ *:[v2i32] }:$src) => DPR:{ *:[f64] }:$src
8046 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8047 GIR_RootToRootCopy, /*OpIdx*/0, // dst
8048 GIR_RootToRootCopy, /*OpIdx*/1, // src
8049 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
8050 // GIR_Coverage, 2755,
8051 GIR_EraseRootFromParent_Done,
8052 // Label 497: @21850
8053 GIM_Try, /*On fail goto*//*Label 498*/ GIMT_Encode4(21882), // Rule ID 2756 //
8054 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
8055 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
8056 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8057 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8058 // (bitconvert:{ *:[f64] } DPR:{ *:[v4f16] }:$src) => DPR:{ *:[f64] }:$src
8059 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8060 GIR_RootToRootCopy, /*OpIdx*/0, // dst
8061 GIR_RootToRootCopy, /*OpIdx*/1, // src
8062 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
8063 // GIR_Coverage, 2756,
8064 GIR_EraseRootFromParent_Done,
8065 // Label 498: @21882
8066 GIM_Try, /*On fail goto*//*Label 499*/ GIMT_Encode4(21914), // Rule ID 2757 //
8067 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
8068 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
8069 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8070 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8071 // (bitconvert:{ *:[f64] } DPR:{ *:[v4bf16] }:$src) => DPR:{ *:[f64] }:$src
8072 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8073 GIR_RootToRootCopy, /*OpIdx*/0, // dst
8074 GIR_RootToRootCopy, /*OpIdx*/1, // src
8075 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
8076 // GIR_Coverage, 2757,
8077 GIR_EraseRootFromParent_Done,
8078 // Label 499: @21914
8079 GIM_Try, /*On fail goto*//*Label 500*/ GIMT_Encode4(21946), // Rule ID 2758 //
8080 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
8081 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
8082 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8083 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8084 // (bitconvert:{ *:[f64] } DPR:{ *:[v4i16] }:$src) => DPR:{ *:[f64] }:$src
8085 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8086 GIR_RootToRootCopy, /*OpIdx*/0, // dst
8087 GIR_RootToRootCopy, /*OpIdx*/1, // src
8088 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
8089 // GIR_Coverage, 2758,
8090 GIR_EraseRootFromParent_Done,
8091 // Label 500: @21946
8092 GIM_Try, /*On fail goto*//*Label 501*/ GIMT_Encode4(21978), // Rule ID 2759 //
8093 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
8094 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s8,
8095 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8096 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8097 // (bitconvert:{ *:[f64] } DPR:{ *:[v8i8] }:$src) => DPR:{ *:[f64] }:$src
8098 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8099 GIR_RootToRootCopy, /*OpIdx*/0, // dst
8100 GIR_RootToRootCopy, /*OpIdx*/1, // src
8101 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
8102 // GIR_Coverage, 2759,
8103 GIR_EraseRootFromParent_Done,
8104 // Label 501: @21978
8105 GIM_Try, /*On fail goto*//*Label 502*/ GIMT_Encode4(22010), // Rule ID 2760 //
8106 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
8107 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
8108 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8109 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8110 // (bitconvert:{ *:[v1i64] } DPR:{ *:[v2f32] }:$src) => DPR:{ *:[v1i64] }:$src
8111 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8112 GIR_RootToRootCopy, /*OpIdx*/0, // dst
8113 GIR_RootToRootCopy, /*OpIdx*/1, // src
8114 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
8115 // GIR_Coverage, 2760,
8116 GIR_EraseRootFromParent_Done,
8117 // Label 502: @22010
8118 GIM_Try, /*On fail goto*//*Label 503*/ GIMT_Encode4(22042), // Rule ID 2761 //
8119 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
8120 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
8121 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8122 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8123 // (bitconvert:{ *:[v1i64] } DPR:{ *:[v2i32] }:$src) => DPR:{ *:[v1i64] }:$src
8124 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8125 GIR_RootToRootCopy, /*OpIdx*/0, // dst
8126 GIR_RootToRootCopy, /*OpIdx*/1, // src
8127 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
8128 // GIR_Coverage, 2761,
8129 GIR_EraseRootFromParent_Done,
8130 // Label 503: @22042
8131 GIM_Try, /*On fail goto*//*Label 504*/ GIMT_Encode4(22074), // Rule ID 2762 //
8132 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
8133 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
8134 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8135 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8136 // (bitconvert:{ *:[v1i64] } DPR:{ *:[v4f16] }:$src) => DPR:{ *:[v1i64] }:$src
8137 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8138 GIR_RootToRootCopy, /*OpIdx*/0, // dst
8139 GIR_RootToRootCopy, /*OpIdx*/1, // src
8140 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
8141 // GIR_Coverage, 2762,
8142 GIR_EraseRootFromParent_Done,
8143 // Label 504: @22074
8144 GIM_Try, /*On fail goto*//*Label 505*/ GIMT_Encode4(22106), // Rule ID 2763 //
8145 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
8146 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
8147 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8148 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8149 // (bitconvert:{ *:[v1i64] } DPR:{ *:[v4bf16] }:$src) => DPR:{ *:[v1i64] }:$src
8150 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8151 GIR_RootToRootCopy, /*OpIdx*/0, // dst
8152 GIR_RootToRootCopy, /*OpIdx*/1, // src
8153 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
8154 // GIR_Coverage, 2763,
8155 GIR_EraseRootFromParent_Done,
8156 // Label 505: @22106
8157 GIM_Try, /*On fail goto*//*Label 506*/ GIMT_Encode4(22138), // Rule ID 2764 //
8158 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
8159 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
8160 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8161 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8162 // (bitconvert:{ *:[v1i64] } DPR:{ *:[v4i16] }:$src) => DPR:{ *:[v1i64] }:$src
8163 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8164 GIR_RootToRootCopy, /*OpIdx*/0, // dst
8165 GIR_RootToRootCopy, /*OpIdx*/1, // src
8166 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
8167 // GIR_Coverage, 2764,
8168 GIR_EraseRootFromParent_Done,
8169 // Label 506: @22138
8170 GIM_Try, /*On fail goto*//*Label 507*/ GIMT_Encode4(22170), // Rule ID 2765 //
8171 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
8172 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s8,
8173 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8174 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8175 // (bitconvert:{ *:[v1i64] } DPR:{ *:[v8i8] }:$src) => DPR:{ *:[v1i64] }:$src
8176 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8177 GIR_RootToRootCopy, /*OpIdx*/0, // dst
8178 GIR_RootToRootCopy, /*OpIdx*/1, // src
8179 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
8180 // GIR_Coverage, 2765,
8181 GIR_EraseRootFromParent_Done,
8182 // Label 507: @22170
8183 GIM_Try, /*On fail goto*//*Label 508*/ GIMT_Encode4(22207), // Rule ID 2846 //
8184 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
8185 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
8186 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8187 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8188 // (bitconvert:{ *:[f64] } DPR:{ *:[v2f32] }:$src) => (VREV64d32:{ *:[f64] } DPR:{ *:[v2f32] }:$src)
8189 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64d32),
8190 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
8191 GIR_RootToRootCopy, /*OpIdx*/1, // src
8192 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
8193 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
8194 GIR_RootConstrainSelectedInstOperands,
8195 // GIR_Coverage, 2846,
8196 GIR_EraseRootFromParent_Done,
8197 // Label 508: @22207
8198 GIM_Try, /*On fail goto*//*Label 509*/ GIMT_Encode4(22244), // Rule ID 2847 //
8199 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
8200 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
8201 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8202 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8203 // (bitconvert:{ *:[f64] } DPR:{ *:[v2i32] }:$src) => (VREV64d32:{ *:[f64] } DPR:{ *:[v2i32] }:$src)
8204 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64d32),
8205 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
8206 GIR_RootToRootCopy, /*OpIdx*/1, // src
8207 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
8208 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
8209 GIR_RootConstrainSelectedInstOperands,
8210 // GIR_Coverage, 2847,
8211 GIR_EraseRootFromParent_Done,
8212 // Label 509: @22244
8213 GIM_Try, /*On fail goto*//*Label 510*/ GIMT_Encode4(22281), // Rule ID 2848 //
8214 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
8215 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
8216 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8217 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8218 // (bitconvert:{ *:[f64] } DPR:{ *:[v4f16] }:$src) => (VREV64d16:{ *:[f64] } DPR:{ *:[v4f16] }:$src)
8219 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64d16),
8220 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
8221 GIR_RootToRootCopy, /*OpIdx*/1, // src
8222 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
8223 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
8224 GIR_RootConstrainSelectedInstOperands,
8225 // GIR_Coverage, 2848,
8226 GIR_EraseRootFromParent_Done,
8227 // Label 510: @22281
8228 GIM_Try, /*On fail goto*//*Label 511*/ GIMT_Encode4(22318), // Rule ID 2849 //
8229 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
8230 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
8231 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8232 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8233 // (bitconvert:{ *:[f64] } DPR:{ *:[v4bf16] }:$src) => (VREV64d16:{ *:[f64] } DPR:{ *:[v4bf16] }:$src)
8234 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64d16),
8235 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
8236 GIR_RootToRootCopy, /*OpIdx*/1, // src
8237 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
8238 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
8239 GIR_RootConstrainSelectedInstOperands,
8240 // GIR_Coverage, 2849,
8241 GIR_EraseRootFromParent_Done,
8242 // Label 511: @22318
8243 GIM_Try, /*On fail goto*//*Label 512*/ GIMT_Encode4(22355), // Rule ID 2850 //
8244 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
8245 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
8246 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8247 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8248 // (bitconvert:{ *:[f64] } DPR:{ *:[v4i16] }:$src) => (VREV64d16:{ *:[f64] } DPR:{ *:[v4i16] }:$src)
8249 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64d16),
8250 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
8251 GIR_RootToRootCopy, /*OpIdx*/1, // src
8252 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
8253 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
8254 GIR_RootConstrainSelectedInstOperands,
8255 // GIR_Coverage, 2850,
8256 GIR_EraseRootFromParent_Done,
8257 // Label 512: @22355
8258 GIM_Try, /*On fail goto*//*Label 513*/ GIMT_Encode4(22392), // Rule ID 2851 //
8259 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
8260 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s8,
8261 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8262 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8263 // (bitconvert:{ *:[f64] } DPR:{ *:[v8i8] }:$src) => (VREV64d8:{ *:[f64] } DPR:{ *:[v8i8] }:$src)
8264 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64d8),
8265 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
8266 GIR_RootToRootCopy, /*OpIdx*/1, // src
8267 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
8268 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
8269 GIR_RootConstrainSelectedInstOperands,
8270 // GIR_Coverage, 2851,
8271 GIR_EraseRootFromParent_Done,
8272 // Label 513: @22392
8273 GIM_Try, /*On fail goto*//*Label 514*/ GIMT_Encode4(22429), // Rule ID 2852 //
8274 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
8275 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
8276 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8277 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8278 // (bitconvert:{ *:[v1i64] } DPR:{ *:[v2f32] }:$src) => (VREV64d32:{ *:[v1i64] } DPR:{ *:[v2f32] }:$src)
8279 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64d32),
8280 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
8281 GIR_RootToRootCopy, /*OpIdx*/1, // src
8282 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
8283 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
8284 GIR_RootConstrainSelectedInstOperands,
8285 // GIR_Coverage, 2852,
8286 GIR_EraseRootFromParent_Done,
8287 // Label 514: @22429
8288 GIM_Try, /*On fail goto*//*Label 515*/ GIMT_Encode4(22466), // Rule ID 2853 //
8289 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
8290 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
8291 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8292 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8293 // (bitconvert:{ *:[v1i64] } DPR:{ *:[v2i32] }:$src) => (VREV64d32:{ *:[v1i64] } DPR:{ *:[v2i32] }:$src)
8294 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64d32),
8295 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
8296 GIR_RootToRootCopy, /*OpIdx*/1, // src
8297 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
8298 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
8299 GIR_RootConstrainSelectedInstOperands,
8300 // GIR_Coverage, 2853,
8301 GIR_EraseRootFromParent_Done,
8302 // Label 515: @22466
8303 GIM_Try, /*On fail goto*//*Label 516*/ GIMT_Encode4(22503), // Rule ID 2854 //
8304 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
8305 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
8306 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8307 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8308 // (bitconvert:{ *:[v1i64] } DPR:{ *:[v4f16] }:$src) => (VREV64d16:{ *:[v1i64] } DPR:{ *:[v4f16] }:$src)
8309 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64d16),
8310 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
8311 GIR_RootToRootCopy, /*OpIdx*/1, // src
8312 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
8313 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
8314 GIR_RootConstrainSelectedInstOperands,
8315 // GIR_Coverage, 2854,
8316 GIR_EraseRootFromParent_Done,
8317 // Label 516: @22503
8318 GIM_Try, /*On fail goto*//*Label 517*/ GIMT_Encode4(22540), // Rule ID 2855 //
8319 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
8320 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
8321 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8322 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8323 // (bitconvert:{ *:[v1i64] } DPR:{ *:[v4bf16] }:$src) => (VREV64d16:{ *:[v1i64] } DPR:{ *:[v4bf16] }:$src)
8324 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64d16),
8325 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
8326 GIR_RootToRootCopy, /*OpIdx*/1, // src
8327 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
8328 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
8329 GIR_RootConstrainSelectedInstOperands,
8330 // GIR_Coverage, 2855,
8331 GIR_EraseRootFromParent_Done,
8332 // Label 517: @22540
8333 GIM_Try, /*On fail goto*//*Label 518*/ GIMT_Encode4(22577), // Rule ID 2856 //
8334 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
8335 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
8336 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8337 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8338 // (bitconvert:{ *:[v1i64] } DPR:{ *:[v4i16] }:$src) => (VREV64d16:{ *:[v1i64] } DPR:{ *:[v4i16] }:$src)
8339 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64d16),
8340 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
8341 GIR_RootToRootCopy, /*OpIdx*/1, // src
8342 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
8343 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
8344 GIR_RootConstrainSelectedInstOperands,
8345 // GIR_Coverage, 2856,
8346 GIR_EraseRootFromParent_Done,
8347 // Label 518: @22577
8348 GIM_Try, /*On fail goto*//*Label 519*/ GIMT_Encode4(22614), // Rule ID 2857 //
8349 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
8350 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s8,
8351 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8352 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8353 // (bitconvert:{ *:[v1i64] } DPR:{ *:[v8i8] }:$src) => (VREV64d8:{ *:[v1i64] } DPR:{ *:[v8i8] }:$src)
8354 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64d8),
8355 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
8356 GIR_RootToRootCopy, /*OpIdx*/1, // src
8357 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
8358 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
8359 GIR_RootConstrainSelectedInstOperands,
8360 // GIR_Coverage, 2857,
8361 GIR_EraseRootFromParent_Done,
8362 // Label 519: @22614
8363 GIM_Reject,
8364 // Label 482: @22615
8365 GIM_Try, /*On fail goto*//*Label 520*/ GIMT_Encode4(22647), // Rule ID 2740 //
8366 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
8367 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
8368 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8369 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8370 // (bitconvert:{ *:[v2f32] } DPR:{ *:[v2i32] }:$src) => DPR:{ *:[v2f32] }:$src
8371 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8372 GIR_RootToRootCopy, /*OpIdx*/0, // dst
8373 GIR_RootToRootCopy, /*OpIdx*/1, // src
8374 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
8375 // GIR_Coverage, 2740,
8376 GIR_EraseRootFromParent_Done,
8377 // Label 520: @22647
8378 GIM_Try, /*On fail goto*//*Label 521*/ GIMT_Encode4(22679), // Rule ID 2741 //
8379 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
8380 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
8381 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8382 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8383 // (bitconvert:{ *:[v2i32] } DPR:{ *:[v2f32] }:$src) => DPR:{ *:[v2i32] }:$src
8384 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8385 GIR_RootToRootCopy, /*OpIdx*/0, // dst
8386 GIR_RootToRootCopy, /*OpIdx*/1, // src
8387 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
8388 // GIR_Coverage, 2741,
8389 GIR_EraseRootFromParent_Done,
8390 // Label 521: @22679
8391 GIM_Try, /*On fail goto*//*Label 522*/ GIMT_Encode4(22711), // Rule ID 2766 //
8392 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
8393 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
8394 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8395 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8396 // (bitconvert:{ *:[v2f32] } DPR:{ *:[f64] }:$src) => DPR:{ *:[v2f32] }:$src
8397 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8398 GIR_RootToRootCopy, /*OpIdx*/0, // dst
8399 GIR_RootToRootCopy, /*OpIdx*/1, // src
8400 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
8401 // GIR_Coverage, 2766,
8402 GIR_EraseRootFromParent_Done,
8403 // Label 522: @22711
8404 GIM_Try, /*On fail goto*//*Label 523*/ GIMT_Encode4(22743), // Rule ID 2767 //
8405 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
8406 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
8407 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8408 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8409 // (bitconvert:{ *:[v2f32] } DPR:{ *:[v1i64] }:$src) => DPR:{ *:[v2f32] }:$src
8410 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8411 GIR_RootToRootCopy, /*OpIdx*/0, // dst
8412 GIR_RootToRootCopy, /*OpIdx*/1, // src
8413 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
8414 // GIR_Coverage, 2767,
8415 GIR_EraseRootFromParent_Done,
8416 // Label 523: @22743
8417 GIM_Try, /*On fail goto*//*Label 524*/ GIMT_Encode4(22775), // Rule ID 2768 //
8418 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
8419 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
8420 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8421 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8422 // (bitconvert:{ *:[v2f32] } DPR:{ *:[v4f16] }:$src) => DPR:{ *:[v2f32] }:$src
8423 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8424 GIR_RootToRootCopy, /*OpIdx*/0, // dst
8425 GIR_RootToRootCopy, /*OpIdx*/1, // src
8426 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
8427 // GIR_Coverage, 2768,
8428 GIR_EraseRootFromParent_Done,
8429 // Label 524: @22775
8430 GIM_Try, /*On fail goto*//*Label 525*/ GIMT_Encode4(22807), // Rule ID 2769 //
8431 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
8432 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
8433 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8434 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8435 // (bitconvert:{ *:[v2f32] } DPR:{ *:[v4bf16] }:$src) => DPR:{ *:[v2f32] }:$src
8436 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8437 GIR_RootToRootCopy, /*OpIdx*/0, // dst
8438 GIR_RootToRootCopy, /*OpIdx*/1, // src
8439 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
8440 // GIR_Coverage, 2769,
8441 GIR_EraseRootFromParent_Done,
8442 // Label 525: @22807
8443 GIM_Try, /*On fail goto*//*Label 526*/ GIMT_Encode4(22839), // Rule ID 2770 //
8444 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
8445 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
8446 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8447 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8448 // (bitconvert:{ *:[v2f32] } DPR:{ *:[v4i16] }:$src) => DPR:{ *:[v2f32] }:$src
8449 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8450 GIR_RootToRootCopy, /*OpIdx*/0, // dst
8451 GIR_RootToRootCopy, /*OpIdx*/1, // src
8452 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
8453 // GIR_Coverage, 2770,
8454 GIR_EraseRootFromParent_Done,
8455 // Label 526: @22839
8456 GIM_Try, /*On fail goto*//*Label 527*/ GIMT_Encode4(22871), // Rule ID 2771 //
8457 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
8458 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s8,
8459 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8460 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8461 // (bitconvert:{ *:[v2f32] } DPR:{ *:[v8i8] }:$src) => DPR:{ *:[v2f32] }:$src
8462 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8463 GIR_RootToRootCopy, /*OpIdx*/0, // dst
8464 GIR_RootToRootCopy, /*OpIdx*/1, // src
8465 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
8466 // GIR_Coverage, 2771,
8467 GIR_EraseRootFromParent_Done,
8468 // Label 527: @22871
8469 GIM_Try, /*On fail goto*//*Label 528*/ GIMT_Encode4(22903), // Rule ID 2772 //
8470 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
8471 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
8472 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8473 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8474 // (bitconvert:{ *:[v2i32] } DPR:{ *:[f64] }:$src) => DPR:{ *:[v2i32] }:$src
8475 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8476 GIR_RootToRootCopy, /*OpIdx*/0, // dst
8477 GIR_RootToRootCopy, /*OpIdx*/1, // src
8478 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
8479 // GIR_Coverage, 2772,
8480 GIR_EraseRootFromParent_Done,
8481 // Label 528: @22903
8482 GIM_Try, /*On fail goto*//*Label 529*/ GIMT_Encode4(22935), // Rule ID 2773 //
8483 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
8484 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
8485 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8486 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8487 // (bitconvert:{ *:[v2i32] } DPR:{ *:[v1i64] }:$src) => DPR:{ *:[v2i32] }:$src
8488 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8489 GIR_RootToRootCopy, /*OpIdx*/0, // dst
8490 GIR_RootToRootCopy, /*OpIdx*/1, // src
8491 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
8492 // GIR_Coverage, 2773,
8493 GIR_EraseRootFromParent_Done,
8494 // Label 529: @22935
8495 GIM_Try, /*On fail goto*//*Label 530*/ GIMT_Encode4(22967), // Rule ID 2774 //
8496 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
8497 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
8498 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8499 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8500 // (bitconvert:{ *:[v2i32] } DPR:{ *:[v4f16] }:$src) => DPR:{ *:[v2i32] }:$src
8501 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8502 GIR_RootToRootCopy, /*OpIdx*/0, // dst
8503 GIR_RootToRootCopy, /*OpIdx*/1, // src
8504 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
8505 // GIR_Coverage, 2774,
8506 GIR_EraseRootFromParent_Done,
8507 // Label 530: @22967
8508 GIM_Try, /*On fail goto*//*Label 531*/ GIMT_Encode4(22999), // Rule ID 2775 //
8509 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
8510 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
8511 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8512 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8513 // (bitconvert:{ *:[v2i32] } DPR:{ *:[v4bf16] }:$src) => DPR:{ *:[v2i32] }:$src
8514 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8515 GIR_RootToRootCopy, /*OpIdx*/0, // dst
8516 GIR_RootToRootCopy, /*OpIdx*/1, // src
8517 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
8518 // GIR_Coverage, 2775,
8519 GIR_EraseRootFromParent_Done,
8520 // Label 531: @22999
8521 GIM_Try, /*On fail goto*//*Label 532*/ GIMT_Encode4(23031), // Rule ID 2776 //
8522 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
8523 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
8524 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8525 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8526 // (bitconvert:{ *:[v2i32] } DPR:{ *:[v4i16] }:$src) => DPR:{ *:[v2i32] }:$src
8527 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8528 GIR_RootToRootCopy, /*OpIdx*/0, // dst
8529 GIR_RootToRootCopy, /*OpIdx*/1, // src
8530 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
8531 // GIR_Coverage, 2776,
8532 GIR_EraseRootFromParent_Done,
8533 // Label 532: @23031
8534 GIM_Try, /*On fail goto*//*Label 533*/ GIMT_Encode4(23063), // Rule ID 2777 //
8535 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
8536 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s8,
8537 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8538 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8539 // (bitconvert:{ *:[v2i32] } DPR:{ *:[v8i8] }:$src) => DPR:{ *:[v2i32] }:$src
8540 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8541 GIR_RootToRootCopy, /*OpIdx*/0, // dst
8542 GIR_RootToRootCopy, /*OpIdx*/1, // src
8543 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
8544 // GIR_Coverage, 2777,
8545 GIR_EraseRootFromParent_Done,
8546 // Label 533: @23063
8547 GIM_Try, /*On fail goto*//*Label 534*/ GIMT_Encode4(23100), // Rule ID 2858 //
8548 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
8549 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
8550 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8551 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8552 // (bitconvert:{ *:[v2f32] } DPR:{ *:[f64] }:$src) => (VREV64d32:{ *:[v2f32] } DPR:{ *:[f64] }:$src)
8553 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64d32),
8554 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
8555 GIR_RootToRootCopy, /*OpIdx*/1, // src
8556 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
8557 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
8558 GIR_RootConstrainSelectedInstOperands,
8559 // GIR_Coverage, 2858,
8560 GIR_EraseRootFromParent_Done,
8561 // Label 534: @23100
8562 GIM_Try, /*On fail goto*//*Label 535*/ GIMT_Encode4(23137), // Rule ID 2859 //
8563 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
8564 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
8565 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8566 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8567 // (bitconvert:{ *:[v2f32] } DPR:{ *:[v1i64] }:$src) => (VREV64d32:{ *:[v2f32] } DPR:{ *:[v1i64] }:$src)
8568 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64d32),
8569 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
8570 GIR_RootToRootCopy, /*OpIdx*/1, // src
8571 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
8572 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
8573 GIR_RootConstrainSelectedInstOperands,
8574 // GIR_Coverage, 2859,
8575 GIR_EraseRootFromParent_Done,
8576 // Label 535: @23137
8577 GIM_Try, /*On fail goto*//*Label 536*/ GIMT_Encode4(23174), // Rule ID 2860 //
8578 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
8579 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
8580 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8581 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8582 // (bitconvert:{ *:[v2f32] } DPR:{ *:[v4f16] }:$src) => (VREV32d16:{ *:[v2f32] } DPR:{ *:[v4f16] }:$src)
8583 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV32d16),
8584 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
8585 GIR_RootToRootCopy, /*OpIdx*/1, // src
8586 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
8587 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
8588 GIR_RootConstrainSelectedInstOperands,
8589 // GIR_Coverage, 2860,
8590 GIR_EraseRootFromParent_Done,
8591 // Label 536: @23174
8592 GIM_Try, /*On fail goto*//*Label 537*/ GIMT_Encode4(23211), // Rule ID 2861 //
8593 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
8594 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
8595 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8596 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8597 // (bitconvert:{ *:[v2f32] } DPR:{ *:[v4bf16] }:$src) => (VREV32d16:{ *:[v2f32] } DPR:{ *:[v4bf16] }:$src)
8598 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV32d16),
8599 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
8600 GIR_RootToRootCopy, /*OpIdx*/1, // src
8601 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
8602 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
8603 GIR_RootConstrainSelectedInstOperands,
8604 // GIR_Coverage, 2861,
8605 GIR_EraseRootFromParent_Done,
8606 // Label 537: @23211
8607 GIM_Try, /*On fail goto*//*Label 538*/ GIMT_Encode4(23248), // Rule ID 2862 //
8608 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
8609 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
8610 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8611 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8612 // (bitconvert:{ *:[v2f32] } DPR:{ *:[v4i16] }:$src) => (VREV32d16:{ *:[v2f32] } DPR:{ *:[v4i16] }:$src)
8613 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV32d16),
8614 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
8615 GIR_RootToRootCopy, /*OpIdx*/1, // src
8616 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
8617 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
8618 GIR_RootConstrainSelectedInstOperands,
8619 // GIR_Coverage, 2862,
8620 GIR_EraseRootFromParent_Done,
8621 // Label 538: @23248
8622 GIM_Try, /*On fail goto*//*Label 539*/ GIMT_Encode4(23285), // Rule ID 2863 //
8623 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
8624 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s8,
8625 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8626 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8627 // (bitconvert:{ *:[v2f32] } DPR:{ *:[v8i8] }:$src) => (VREV32d8:{ *:[v2f32] } DPR:{ *:[v8i8] }:$src)
8628 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV32d8),
8629 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
8630 GIR_RootToRootCopy, /*OpIdx*/1, // src
8631 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
8632 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
8633 GIR_RootConstrainSelectedInstOperands,
8634 // GIR_Coverage, 2863,
8635 GIR_EraseRootFromParent_Done,
8636 // Label 539: @23285
8637 GIM_Try, /*On fail goto*//*Label 540*/ GIMT_Encode4(23322), // Rule ID 2864 //
8638 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
8639 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
8640 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8641 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8642 // (bitconvert:{ *:[v2i32] } DPR:{ *:[f64] }:$src) => (VREV64d32:{ *:[v2i32] } DPR:{ *:[f64] }:$src)
8643 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64d32),
8644 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
8645 GIR_RootToRootCopy, /*OpIdx*/1, // src
8646 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
8647 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
8648 GIR_RootConstrainSelectedInstOperands,
8649 // GIR_Coverage, 2864,
8650 GIR_EraseRootFromParent_Done,
8651 // Label 540: @23322
8652 GIM_Try, /*On fail goto*//*Label 541*/ GIMT_Encode4(23359), // Rule ID 2865 //
8653 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
8654 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
8655 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8656 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8657 // (bitconvert:{ *:[v2i32] } DPR:{ *:[v1i64] }:$src) => (VREV64d32:{ *:[v2i32] } DPR:{ *:[v1i64] }:$src)
8658 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64d32),
8659 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
8660 GIR_RootToRootCopy, /*OpIdx*/1, // src
8661 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
8662 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
8663 GIR_RootConstrainSelectedInstOperands,
8664 // GIR_Coverage, 2865,
8665 GIR_EraseRootFromParent_Done,
8666 // Label 541: @23359
8667 GIM_Try, /*On fail goto*//*Label 542*/ GIMT_Encode4(23396), // Rule ID 2866 //
8668 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
8669 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
8670 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8671 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8672 // (bitconvert:{ *:[v2i32] } DPR:{ *:[v4f16] }:$src) => (VREV32d16:{ *:[v2i32] } DPR:{ *:[v4f16] }:$src)
8673 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV32d16),
8674 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
8675 GIR_RootToRootCopy, /*OpIdx*/1, // src
8676 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
8677 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
8678 GIR_RootConstrainSelectedInstOperands,
8679 // GIR_Coverage, 2866,
8680 GIR_EraseRootFromParent_Done,
8681 // Label 542: @23396
8682 GIM_Try, /*On fail goto*//*Label 543*/ GIMT_Encode4(23433), // Rule ID 2867 //
8683 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
8684 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
8685 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8686 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8687 // (bitconvert:{ *:[v2i32] } DPR:{ *:[v4bf16] }:$src) => (VREV32d16:{ *:[v2i32] } DPR:{ *:[v4bf16] }:$src)
8688 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV32d16),
8689 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
8690 GIR_RootToRootCopy, /*OpIdx*/1, // src
8691 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
8692 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
8693 GIR_RootConstrainSelectedInstOperands,
8694 // GIR_Coverage, 2867,
8695 GIR_EraseRootFromParent_Done,
8696 // Label 543: @23433
8697 GIM_Try, /*On fail goto*//*Label 544*/ GIMT_Encode4(23470), // Rule ID 2868 //
8698 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
8699 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
8700 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8701 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8702 // (bitconvert:{ *:[v2i32] } DPR:{ *:[v4i16] }:$src) => (VREV32d16:{ *:[v2i32] } DPR:{ *:[v4i16] }:$src)
8703 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV32d16),
8704 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
8705 GIR_RootToRootCopy, /*OpIdx*/1, // src
8706 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
8707 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
8708 GIR_RootConstrainSelectedInstOperands,
8709 // GIR_Coverage, 2868,
8710 GIR_EraseRootFromParent_Done,
8711 // Label 544: @23470
8712 GIM_Try, /*On fail goto*//*Label 545*/ GIMT_Encode4(23507), // Rule ID 2869 //
8713 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
8714 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s8,
8715 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8716 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
8717 // (bitconvert:{ *:[v2i32] } DPR:{ *:[v8i8] }:$src) => (VREV32d8:{ *:[v2i32] } DPR:{ *:[v8i8] }:$src)
8718 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV32d8),
8719 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
8720 GIR_RootToRootCopy, /*OpIdx*/1, // src
8721 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
8722 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
8723 GIR_RootConstrainSelectedInstOperands,
8724 // GIR_Coverage, 2869,
8725 GIR_EraseRootFromParent_Done,
8726 // Label 545: @23507
8727 GIM_Reject,
8728 // Label 483: @23508
8729 GIM_Try, /*On fail goto*//*Label 546*/ GIMT_Encode4(23540), // Rule ID 2746 //
8730 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
8731 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
8732 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
8733 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
8734 // (bitconvert:{ *:[v2f64] } QPR:{ *:[v2i64] }:$src) => QPR:{ *:[v2f64] }:$src
8735 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8736 GIR_RootToRootCopy, /*OpIdx*/0, // dst
8737 GIR_RootToRootCopy, /*OpIdx*/1, // src
8738 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
8739 // GIR_Coverage, 2746,
8740 GIR_EraseRootFromParent_Done,
8741 // Label 546: @23540
8742 GIM_Try, /*On fail goto*//*Label 547*/ GIMT_Encode4(23572), // Rule ID 2747 //
8743 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
8744 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
8745 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
8746 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
8747 // (bitconvert:{ *:[v2i64] } QPR:{ *:[v2f64] }:$src) => QPR:{ *:[v2i64] }:$src
8748 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8749 GIR_RootToRootCopy, /*OpIdx*/0, // dst
8750 GIR_RootToRootCopy, /*OpIdx*/1, // src
8751 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
8752 // GIR_Coverage, 2747,
8753 GIR_EraseRootFromParent_Done,
8754 // Label 547: @23572
8755 GIM_Try, /*On fail goto*//*Label 548*/ GIMT_Encode4(23604), // Rule ID 2800 //
8756 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
8757 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
8758 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
8759 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
8760 // (bitconvert:{ *:[v2f64] } QPR:{ *:[v4f32] }:$src) => QPR:{ *:[v2f64] }:$src
8761 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8762 GIR_RootToRootCopy, /*OpIdx*/0, // dst
8763 GIR_RootToRootCopy, /*OpIdx*/1, // src
8764 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
8765 // GIR_Coverage, 2800,
8766 GIR_EraseRootFromParent_Done,
8767 // Label 548: @23604
8768 GIM_Try, /*On fail goto*//*Label 549*/ GIMT_Encode4(23636), // Rule ID 2801 //
8769 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
8770 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
8771 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
8772 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
8773 // (bitconvert:{ *:[v2f64] } QPR:{ *:[v4i32] }:$src) => QPR:{ *:[v2f64] }:$src
8774 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8775 GIR_RootToRootCopy, /*OpIdx*/0, // dst
8776 GIR_RootToRootCopy, /*OpIdx*/1, // src
8777 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
8778 // GIR_Coverage, 2801,
8779 GIR_EraseRootFromParent_Done,
8780 // Label 549: @23636
8781 GIM_Try, /*On fail goto*//*Label 550*/ GIMT_Encode4(23668), // Rule ID 2802 //
8782 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
8783 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
8784 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
8785 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
8786 // (bitconvert:{ *:[v2f64] } QPR:{ *:[v8f16] }:$src) => QPR:{ *:[v2f64] }:$src
8787 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8788 GIR_RootToRootCopy, /*OpIdx*/0, // dst
8789 GIR_RootToRootCopy, /*OpIdx*/1, // src
8790 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
8791 // GIR_Coverage, 2802,
8792 GIR_EraseRootFromParent_Done,
8793 // Label 550: @23668
8794 GIM_Try, /*On fail goto*//*Label 551*/ GIMT_Encode4(23700), // Rule ID 2803 //
8795 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
8796 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
8797 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
8798 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
8799 // (bitconvert:{ *:[v2f64] } QPR:{ *:[v8bf16] }:$src) => QPR:{ *:[v2f64] }:$src
8800 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8801 GIR_RootToRootCopy, /*OpIdx*/0, // dst
8802 GIR_RootToRootCopy, /*OpIdx*/1, // src
8803 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
8804 // GIR_Coverage, 2803,
8805 GIR_EraseRootFromParent_Done,
8806 // Label 551: @23700
8807 GIM_Try, /*On fail goto*//*Label 552*/ GIMT_Encode4(23732), // Rule ID 2804 //
8808 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
8809 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
8810 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
8811 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
8812 // (bitconvert:{ *:[v2f64] } QPR:{ *:[v8i16] }:$src) => QPR:{ *:[v2f64] }:$src
8813 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8814 GIR_RootToRootCopy, /*OpIdx*/0, // dst
8815 GIR_RootToRootCopy, /*OpIdx*/1, // src
8816 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
8817 // GIR_Coverage, 2804,
8818 GIR_EraseRootFromParent_Done,
8819 // Label 552: @23732
8820 GIM_Try, /*On fail goto*//*Label 553*/ GIMT_Encode4(23764), // Rule ID 2805 //
8821 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
8822 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
8823 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
8824 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
8825 // (bitconvert:{ *:[v2f64] } QPR:{ *:[v16i8] }:$src) => QPR:{ *:[v2f64] }:$src
8826 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8827 GIR_RootToRootCopy, /*OpIdx*/0, // dst
8828 GIR_RootToRootCopy, /*OpIdx*/1, // src
8829 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
8830 // GIR_Coverage, 2805,
8831 GIR_EraseRootFromParent_Done,
8832 // Label 553: @23764
8833 GIM_Try, /*On fail goto*//*Label 554*/ GIMT_Encode4(23796), // Rule ID 2806 //
8834 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
8835 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
8836 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
8837 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
8838 // (bitconvert:{ *:[v2i64] } QPR:{ *:[v4f32] }:$src) => QPR:{ *:[v2i64] }:$src
8839 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8840 GIR_RootToRootCopy, /*OpIdx*/0, // dst
8841 GIR_RootToRootCopy, /*OpIdx*/1, // src
8842 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
8843 // GIR_Coverage, 2806,
8844 GIR_EraseRootFromParent_Done,
8845 // Label 554: @23796
8846 GIM_Try, /*On fail goto*//*Label 555*/ GIMT_Encode4(23828), // Rule ID 2807 //
8847 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
8848 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
8849 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
8850 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
8851 // (bitconvert:{ *:[v2i64] } QPR:{ *:[v4i32] }:$src) => QPR:{ *:[v2i64] }:$src
8852 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8853 GIR_RootToRootCopy, /*OpIdx*/0, // dst
8854 GIR_RootToRootCopy, /*OpIdx*/1, // src
8855 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
8856 // GIR_Coverage, 2807,
8857 GIR_EraseRootFromParent_Done,
8858 // Label 555: @23828
8859 GIM_Try, /*On fail goto*//*Label 556*/ GIMT_Encode4(23860), // Rule ID 2808 //
8860 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
8861 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
8862 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
8863 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
8864 // (bitconvert:{ *:[v2i64] } QPR:{ *:[v8f16] }:$src) => QPR:{ *:[v2i64] }:$src
8865 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8866 GIR_RootToRootCopy, /*OpIdx*/0, // dst
8867 GIR_RootToRootCopy, /*OpIdx*/1, // src
8868 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
8869 // GIR_Coverage, 2808,
8870 GIR_EraseRootFromParent_Done,
8871 // Label 556: @23860
8872 GIM_Try, /*On fail goto*//*Label 557*/ GIMT_Encode4(23892), // Rule ID 2809 //
8873 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
8874 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
8875 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
8876 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
8877 // (bitconvert:{ *:[v2i64] } QPR:{ *:[v8bf16] }:$src) => QPR:{ *:[v2i64] }:$src
8878 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8879 GIR_RootToRootCopy, /*OpIdx*/0, // dst
8880 GIR_RootToRootCopy, /*OpIdx*/1, // src
8881 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
8882 // GIR_Coverage, 2809,
8883 GIR_EraseRootFromParent_Done,
8884 // Label 557: @23892
8885 GIM_Try, /*On fail goto*//*Label 558*/ GIMT_Encode4(23924), // Rule ID 2810 //
8886 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
8887 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
8888 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
8889 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
8890 // (bitconvert:{ *:[v2i64] } QPR:{ *:[v8i16] }:$src) => QPR:{ *:[v2i64] }:$src
8891 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8892 GIR_RootToRootCopy, /*OpIdx*/0, // dst
8893 GIR_RootToRootCopy, /*OpIdx*/1, // src
8894 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
8895 // GIR_Coverage, 2810,
8896 GIR_EraseRootFromParent_Done,
8897 // Label 558: @23924
8898 GIM_Try, /*On fail goto*//*Label 559*/ GIMT_Encode4(23956), // Rule ID 2811 //
8899 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
8900 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
8901 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
8902 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
8903 // (bitconvert:{ *:[v2i64] } QPR:{ *:[v16i8] }:$src) => QPR:{ *:[v2i64] }:$src
8904 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8905 GIR_RootToRootCopy, /*OpIdx*/0, // dst
8906 GIR_RootToRootCopy, /*OpIdx*/1, // src
8907 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
8908 // GIR_Coverage, 2811,
8909 GIR_EraseRootFromParent_Done,
8910 // Label 559: @23956
8911 GIM_Try, /*On fail goto*//*Label 560*/ GIMT_Encode4(23993), // Rule ID 2892 //
8912 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
8913 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
8914 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
8915 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
8916 // (bitconvert:{ *:[v2f64] } QPR:{ *:[v4f32] }:$src) => (VREV64q32:{ *:[v2f64] } QPR:{ *:[v4f32] }:$src)
8917 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64q32),
8918 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
8919 GIR_RootToRootCopy, /*OpIdx*/1, // src
8920 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
8921 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
8922 GIR_RootConstrainSelectedInstOperands,
8923 // GIR_Coverage, 2892,
8924 GIR_EraseRootFromParent_Done,
8925 // Label 560: @23993
8926 GIM_Try, /*On fail goto*//*Label 561*/ GIMT_Encode4(24030), // Rule ID 2893 //
8927 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
8928 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
8929 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
8930 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
8931 // (bitconvert:{ *:[v2f64] } QPR:{ *:[v4i32] }:$src) => (VREV64q32:{ *:[v2f64] } QPR:{ *:[v4i32] }:$src)
8932 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64q32),
8933 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
8934 GIR_RootToRootCopy, /*OpIdx*/1, // src
8935 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
8936 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
8937 GIR_RootConstrainSelectedInstOperands,
8938 // GIR_Coverage, 2893,
8939 GIR_EraseRootFromParent_Done,
8940 // Label 561: @24030
8941 GIM_Try, /*On fail goto*//*Label 562*/ GIMT_Encode4(24067), // Rule ID 2894 //
8942 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
8943 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
8944 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
8945 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
8946 // (bitconvert:{ *:[v2f64] } QPR:{ *:[v8f16] }:$src) => (VREV64q16:{ *:[v2f64] } QPR:{ *:[v8f16] }:$src)
8947 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64q16),
8948 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
8949 GIR_RootToRootCopy, /*OpIdx*/1, // src
8950 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
8951 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
8952 GIR_RootConstrainSelectedInstOperands,
8953 // GIR_Coverage, 2894,
8954 GIR_EraseRootFromParent_Done,
8955 // Label 562: @24067
8956 GIM_Try, /*On fail goto*//*Label 563*/ GIMT_Encode4(24104), // Rule ID 2895 //
8957 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
8958 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
8959 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
8960 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
8961 // (bitconvert:{ *:[v2f64] } QPR:{ *:[v8bf16] }:$src) => (VREV64q16:{ *:[v2f64] } QPR:{ *:[v8bf16] }:$src)
8962 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64q16),
8963 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
8964 GIR_RootToRootCopy, /*OpIdx*/1, // src
8965 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
8966 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
8967 GIR_RootConstrainSelectedInstOperands,
8968 // GIR_Coverage, 2895,
8969 GIR_EraseRootFromParent_Done,
8970 // Label 563: @24104
8971 GIM_Try, /*On fail goto*//*Label 564*/ GIMT_Encode4(24141), // Rule ID 2896 //
8972 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
8973 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
8974 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
8975 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
8976 // (bitconvert:{ *:[v2f64] } QPR:{ *:[v8i16] }:$src) => (VREV64q16:{ *:[v2f64] } QPR:{ *:[v8i16] }:$src)
8977 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64q16),
8978 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
8979 GIR_RootToRootCopy, /*OpIdx*/1, // src
8980 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
8981 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
8982 GIR_RootConstrainSelectedInstOperands,
8983 // GIR_Coverage, 2896,
8984 GIR_EraseRootFromParent_Done,
8985 // Label 564: @24141
8986 GIM_Try, /*On fail goto*//*Label 565*/ GIMT_Encode4(24178), // Rule ID 2897 //
8987 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
8988 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
8989 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
8990 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
8991 // (bitconvert:{ *:[v2f64] } QPR:{ *:[v16i8] }:$src) => (VREV64q8:{ *:[v2f64] } QPR:{ *:[v16i8] }:$src)
8992 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64q8),
8993 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
8994 GIR_RootToRootCopy, /*OpIdx*/1, // src
8995 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
8996 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
8997 GIR_RootConstrainSelectedInstOperands,
8998 // GIR_Coverage, 2897,
8999 GIR_EraseRootFromParent_Done,
9000 // Label 565: @24178
9001 GIM_Try, /*On fail goto*//*Label 566*/ GIMT_Encode4(24215), // Rule ID 2898 //
9002 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
9003 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
9004 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
9005 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
9006 // (bitconvert:{ *:[v2i64] } QPR:{ *:[v4f32] }:$src) => (VREV64q32:{ *:[v2i64] } QPR:{ *:[v4f32] }:$src)
9007 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64q32),
9008 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
9009 GIR_RootToRootCopy, /*OpIdx*/1, // src
9010 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
9011 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
9012 GIR_RootConstrainSelectedInstOperands,
9013 // GIR_Coverage, 2898,
9014 GIR_EraseRootFromParent_Done,
9015 // Label 566: @24215
9016 GIM_Try, /*On fail goto*//*Label 567*/ GIMT_Encode4(24252), // Rule ID 2899 //
9017 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
9018 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
9019 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
9020 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
9021 // (bitconvert:{ *:[v2i64] } QPR:{ *:[v4i32] }:$src) => (VREV64q32:{ *:[v2i64] } QPR:{ *:[v4i32] }:$src)
9022 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64q32),
9023 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
9024 GIR_RootToRootCopy, /*OpIdx*/1, // src
9025 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
9026 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
9027 GIR_RootConstrainSelectedInstOperands,
9028 // GIR_Coverage, 2899,
9029 GIR_EraseRootFromParent_Done,
9030 // Label 567: @24252
9031 GIM_Try, /*On fail goto*//*Label 568*/ GIMT_Encode4(24289), // Rule ID 2900 //
9032 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
9033 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
9034 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
9035 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
9036 // (bitconvert:{ *:[v2i64] } QPR:{ *:[v8f16] }:$src) => (VREV64q16:{ *:[v2i64] } QPR:{ *:[v8f16] }:$src)
9037 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64q16),
9038 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
9039 GIR_RootToRootCopy, /*OpIdx*/1, // src
9040 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
9041 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
9042 GIR_RootConstrainSelectedInstOperands,
9043 // GIR_Coverage, 2900,
9044 GIR_EraseRootFromParent_Done,
9045 // Label 568: @24289
9046 GIM_Try, /*On fail goto*//*Label 569*/ GIMT_Encode4(24326), // Rule ID 2901 //
9047 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
9048 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
9049 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
9050 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
9051 // (bitconvert:{ *:[v2i64] } QPR:{ *:[v8bf16] }:$src) => (VREV64q16:{ *:[v2i64] } QPR:{ *:[v8bf16] }:$src)
9052 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64q16),
9053 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
9054 GIR_RootToRootCopy, /*OpIdx*/1, // src
9055 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
9056 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
9057 GIR_RootConstrainSelectedInstOperands,
9058 // GIR_Coverage, 2901,
9059 GIR_EraseRootFromParent_Done,
9060 // Label 569: @24326
9061 GIM_Try, /*On fail goto*//*Label 570*/ GIMT_Encode4(24363), // Rule ID 2902 //
9062 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
9063 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
9064 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
9065 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
9066 // (bitconvert:{ *:[v2i64] } QPR:{ *:[v8i16] }:$src) => (VREV64q16:{ *:[v2i64] } QPR:{ *:[v8i16] }:$src)
9067 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64q16),
9068 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
9069 GIR_RootToRootCopy, /*OpIdx*/1, // src
9070 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
9071 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
9072 GIR_RootConstrainSelectedInstOperands,
9073 // GIR_Coverage, 2902,
9074 GIR_EraseRootFromParent_Done,
9075 // Label 570: @24363
9076 GIM_Try, /*On fail goto*//*Label 571*/ GIMT_Encode4(24400), // Rule ID 2903 //
9077 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
9078 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
9079 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
9080 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
9081 // (bitconvert:{ *:[v2i64] } QPR:{ *:[v16i8] }:$src) => (VREV64q8:{ *:[v2i64] } QPR:{ *:[v16i8] }:$src)
9082 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64q8),
9083 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
9084 GIR_RootToRootCopy, /*OpIdx*/1, // src
9085 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
9086 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
9087 GIR_RootConstrainSelectedInstOperands,
9088 // GIR_Coverage, 2903,
9089 GIR_EraseRootFromParent_Done,
9090 // Label 571: @24400
9091 GIM_Try, /*On fail goto*//*Label 572*/ GIMT_Encode4(24432), // Rule ID 5400 //
9092 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
9093 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
9094 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
9095 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
9096 // (bitconvert:{ *:[v2f64] } MQPR:{ *:[v2i64] }:$src) => MQPR:{ *:[v2f64] }:$src
9097 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
9098 GIR_RootToRootCopy, /*OpIdx*/0, // dst
9099 GIR_RootToRootCopy, /*OpIdx*/1, // src
9100 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::MQPRRegClassID),
9101 // GIR_Coverage, 5400,
9102 GIR_EraseRootFromParent_Done,
9103 // Label 572: @24432
9104 GIM_Try, /*On fail goto*//*Label 573*/ GIMT_Encode4(24464), // Rule ID 5401 //
9105 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
9106 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
9107 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
9108 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
9109 // (bitconvert:{ *:[v2i64] } MQPR:{ *:[v2f64] }:$src) => MQPR:{ *:[v2i64] }:$src
9110 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
9111 GIR_RootToRootCopy, /*OpIdx*/0, // dst
9112 GIR_RootToRootCopy, /*OpIdx*/1, // src
9113 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::MQPRRegClassID),
9114 // GIR_Coverage, 5401,
9115 GIR_EraseRootFromParent_Done,
9116 // Label 573: @24464
9117 GIM_Try, /*On fail goto*//*Label 574*/ GIMT_Encode4(24496), // Rule ID 5406 //
9118 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
9119 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
9120 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
9121 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
9122 // (bitconvert:{ *:[v2f64] } MQPR:{ *:[v4f32] }:$src) => MQPR:{ *:[v2f64] }:$src
9123 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
9124 GIR_RootToRootCopy, /*OpIdx*/0, // dst
9125 GIR_RootToRootCopy, /*OpIdx*/1, // src
9126 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::MQPRRegClassID),
9127 // GIR_Coverage, 5406,
9128 GIR_EraseRootFromParent_Done,
9129 // Label 574: @24496
9130 GIM_Try, /*On fail goto*//*Label 575*/ GIMT_Encode4(24528), // Rule ID 5407 //
9131 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
9132 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
9133 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
9134 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
9135 // (bitconvert:{ *:[v2f64] } MQPR:{ *:[v4i32] }:$src) => MQPR:{ *:[v2f64] }:$src
9136 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
9137 GIR_RootToRootCopy, /*OpIdx*/0, // dst
9138 GIR_RootToRootCopy, /*OpIdx*/1, // src
9139 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::MQPRRegClassID),
9140 // GIR_Coverage, 5407,
9141 GIR_EraseRootFromParent_Done,
9142 // Label 575: @24528
9143 GIM_Try, /*On fail goto*//*Label 576*/ GIMT_Encode4(24560), // Rule ID 5408 //
9144 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
9145 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
9146 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
9147 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
9148 // (bitconvert:{ *:[v2f64] } MQPR:{ *:[v8f16] }:$src) => MQPR:{ *:[v2f64] }:$src
9149 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
9150 GIR_RootToRootCopy, /*OpIdx*/0, // dst
9151 GIR_RootToRootCopy, /*OpIdx*/1, // src
9152 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::MQPRRegClassID),
9153 // GIR_Coverage, 5408,
9154 GIR_EraseRootFromParent_Done,
9155 // Label 576: @24560
9156 GIM_Try, /*On fail goto*//*Label 577*/ GIMT_Encode4(24592), // Rule ID 5409 //
9157 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
9158 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
9159 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
9160 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
9161 // (bitconvert:{ *:[v2f64] } MQPR:{ *:[v8i16] }:$src) => MQPR:{ *:[v2f64] }:$src
9162 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
9163 GIR_RootToRootCopy, /*OpIdx*/0, // dst
9164 GIR_RootToRootCopy, /*OpIdx*/1, // src
9165 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::MQPRRegClassID),
9166 // GIR_Coverage, 5409,
9167 GIR_EraseRootFromParent_Done,
9168 // Label 577: @24592
9169 GIM_Try, /*On fail goto*//*Label 578*/ GIMT_Encode4(24624), // Rule ID 5410 //
9170 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
9171 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
9172 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
9173 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
9174 // (bitconvert:{ *:[v2f64] } MQPR:{ *:[v16i8] }:$src) => MQPR:{ *:[v2f64] }:$src
9175 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
9176 GIR_RootToRootCopy, /*OpIdx*/0, // dst
9177 GIR_RootToRootCopy, /*OpIdx*/1, // src
9178 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::MQPRRegClassID),
9179 // GIR_Coverage, 5410,
9180 GIR_EraseRootFromParent_Done,
9181 // Label 578: @24624
9182 GIM_Try, /*On fail goto*//*Label 579*/ GIMT_Encode4(24656), // Rule ID 5411 //
9183 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
9184 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
9185 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
9186 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
9187 // (bitconvert:{ *:[v2i64] } MQPR:{ *:[v4f32] }:$src) => MQPR:{ *:[v2i64] }:$src
9188 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
9189 GIR_RootToRootCopy, /*OpIdx*/0, // dst
9190 GIR_RootToRootCopy, /*OpIdx*/1, // src
9191 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::MQPRRegClassID),
9192 // GIR_Coverage, 5411,
9193 GIR_EraseRootFromParent_Done,
9194 // Label 579: @24656
9195 GIM_Try, /*On fail goto*//*Label 580*/ GIMT_Encode4(24688), // Rule ID 5412 //
9196 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
9197 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
9198 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
9199 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
9200 // (bitconvert:{ *:[v2i64] } MQPR:{ *:[v4i32] }:$src) => MQPR:{ *:[v2i64] }:$src
9201 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
9202 GIR_RootToRootCopy, /*OpIdx*/0, // dst
9203 GIR_RootToRootCopy, /*OpIdx*/1, // src
9204 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::MQPRRegClassID),
9205 // GIR_Coverage, 5412,
9206 GIR_EraseRootFromParent_Done,
9207 // Label 580: @24688
9208 GIM_Try, /*On fail goto*//*Label 581*/ GIMT_Encode4(24720), // Rule ID 5413 //
9209 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
9210 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
9211 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
9212 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
9213 // (bitconvert:{ *:[v2i64] } MQPR:{ *:[v8f16] }:$src) => MQPR:{ *:[v2i64] }:$src
9214 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
9215 GIR_RootToRootCopy, /*OpIdx*/0, // dst
9216 GIR_RootToRootCopy, /*OpIdx*/1, // src
9217 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::MQPRRegClassID),
9218 // GIR_Coverage, 5413,
9219 GIR_EraseRootFromParent_Done,
9220 // Label 581: @24720
9221 GIM_Try, /*On fail goto*//*Label 582*/ GIMT_Encode4(24752), // Rule ID 5414 //
9222 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
9223 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
9224 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
9225 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
9226 // (bitconvert:{ *:[v2i64] } MQPR:{ *:[v8i16] }:$src) => MQPR:{ *:[v2i64] }:$src
9227 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
9228 GIR_RootToRootCopy, /*OpIdx*/0, // dst
9229 GIR_RootToRootCopy, /*OpIdx*/1, // src
9230 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::MQPRRegClassID),
9231 // GIR_Coverage, 5414,
9232 GIR_EraseRootFromParent_Done,
9233 // Label 582: @24752
9234 GIM_Try, /*On fail goto*//*Label 583*/ GIMT_Encode4(24784), // Rule ID 5415 //
9235 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
9236 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
9237 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
9238 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
9239 // (bitconvert:{ *:[v2i64] } MQPR:{ *:[v16i8] }:$src) => MQPR:{ *:[v2i64] }:$src
9240 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
9241 GIR_RootToRootCopy, /*OpIdx*/0, // dst
9242 GIR_RootToRootCopy, /*OpIdx*/1, // src
9243 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::MQPRRegClassID),
9244 // GIR_Coverage, 5415,
9245 GIR_EraseRootFromParent_Done,
9246 // Label 583: @24784
9247 GIM_Try, /*On fail goto*//*Label 584*/ GIMT_Encode4(24840), // Rule ID 5442 //
9248 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
9249 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
9250 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
9251 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
9252 // (bitconvert:{ *:[v2f64] } MQPR:{ *:[v4f32] }:$src) => (MVE_VREV64_32:{ *:[v2f64] } MQPR:{ *:[v4f32] }:$src)
9253 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
9254 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
9255 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
9256 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VREV64_32),
9257 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
9258 GIR_RootToRootCopy, /*OpIdx*/1, // src
9259 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
9260 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
9261 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
9262 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
9263 GIR_RootConstrainSelectedInstOperands,
9264 // GIR_Coverage, 5442,
9265 GIR_EraseRootFromParent_Done,
9266 // Label 584: @24840
9267 GIM_Try, /*On fail goto*//*Label 585*/ GIMT_Encode4(24896), // Rule ID 5443 //
9268 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
9269 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
9270 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
9271 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
9272 // (bitconvert:{ *:[v2f64] } MQPR:{ *:[v4i32] }:$src) => (MVE_VREV64_32:{ *:[v2f64] } MQPR:{ *:[v4i32] }:$src)
9273 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
9274 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
9275 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
9276 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VREV64_32),
9277 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
9278 GIR_RootToRootCopy, /*OpIdx*/1, // src
9279 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
9280 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
9281 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
9282 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
9283 GIR_RootConstrainSelectedInstOperands,
9284 // GIR_Coverage, 5443,
9285 GIR_EraseRootFromParent_Done,
9286 // Label 585: @24896
9287 GIM_Try, /*On fail goto*//*Label 586*/ GIMT_Encode4(24952), // Rule ID 5444 //
9288 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
9289 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
9290 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
9291 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
9292 // (bitconvert:{ *:[v2f64] } MQPR:{ *:[v8f16] }:$src) => (MVE_VREV64_16:{ *:[v2f64] } MQPR:{ *:[v8f16] }:$src)
9293 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
9294 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
9295 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
9296 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VREV64_16),
9297 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
9298 GIR_RootToRootCopy, /*OpIdx*/1, // src
9299 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
9300 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
9301 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
9302 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
9303 GIR_RootConstrainSelectedInstOperands,
9304 // GIR_Coverage, 5444,
9305 GIR_EraseRootFromParent_Done,
9306 // Label 586: @24952
9307 GIM_Try, /*On fail goto*//*Label 587*/ GIMT_Encode4(25008), // Rule ID 5445 //
9308 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
9309 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
9310 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
9311 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
9312 // (bitconvert:{ *:[v2f64] } MQPR:{ *:[v8i16] }:$src) => (MVE_VREV64_16:{ *:[v2f64] } MQPR:{ *:[v8i16] }:$src)
9313 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
9314 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
9315 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
9316 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VREV64_16),
9317 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
9318 GIR_RootToRootCopy, /*OpIdx*/1, // src
9319 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
9320 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
9321 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
9322 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
9323 GIR_RootConstrainSelectedInstOperands,
9324 // GIR_Coverage, 5445,
9325 GIR_EraseRootFromParent_Done,
9326 // Label 587: @25008
9327 GIM_Try, /*On fail goto*//*Label 588*/ GIMT_Encode4(25064), // Rule ID 5446 //
9328 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
9329 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
9330 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
9331 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
9332 // (bitconvert:{ *:[v2f64] } MQPR:{ *:[v16i8] }:$src) => (MVE_VREV64_8:{ *:[v2f64] } MQPR:{ *:[v16i8] }:$src)
9333 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
9334 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
9335 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
9336 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VREV64_8),
9337 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
9338 GIR_RootToRootCopy, /*OpIdx*/1, // src
9339 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
9340 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
9341 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
9342 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
9343 GIR_RootConstrainSelectedInstOperands,
9344 // GIR_Coverage, 5446,
9345 GIR_EraseRootFromParent_Done,
9346 // Label 588: @25064
9347 GIM_Try, /*On fail goto*//*Label 589*/ GIMT_Encode4(25120), // Rule ID 5447 //
9348 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
9349 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
9350 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
9351 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
9352 // (bitconvert:{ *:[v2i64] } MQPR:{ *:[v4f32] }:$src) => (MVE_VREV64_32:{ *:[v2i64] } MQPR:{ *:[v4f32] }:$src)
9353 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
9354 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
9355 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
9356 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VREV64_32),
9357 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
9358 GIR_RootToRootCopy, /*OpIdx*/1, // src
9359 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
9360 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
9361 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
9362 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
9363 GIR_RootConstrainSelectedInstOperands,
9364 // GIR_Coverage, 5447,
9365 GIR_EraseRootFromParent_Done,
9366 // Label 589: @25120
9367 GIM_Try, /*On fail goto*//*Label 590*/ GIMT_Encode4(25176), // Rule ID 5448 //
9368 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
9369 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
9370 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
9371 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
9372 // (bitconvert:{ *:[v2i64] } MQPR:{ *:[v4i32] }:$src) => (MVE_VREV64_32:{ *:[v2i64] } MQPR:{ *:[v4i32] }:$src)
9373 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
9374 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
9375 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
9376 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VREV64_32),
9377 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
9378 GIR_RootToRootCopy, /*OpIdx*/1, // src
9379 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
9380 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
9381 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
9382 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
9383 GIR_RootConstrainSelectedInstOperands,
9384 // GIR_Coverage, 5448,
9385 GIR_EraseRootFromParent_Done,
9386 // Label 590: @25176
9387 GIM_Try, /*On fail goto*//*Label 591*/ GIMT_Encode4(25232), // Rule ID 5449 //
9388 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
9389 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
9390 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
9391 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
9392 // (bitconvert:{ *:[v2i64] } MQPR:{ *:[v8f16] }:$src) => (MVE_VREV64_16:{ *:[v2i64] } MQPR:{ *:[v8f16] }:$src)
9393 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
9394 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
9395 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
9396 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VREV64_16),
9397 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
9398 GIR_RootToRootCopy, /*OpIdx*/1, // src
9399 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
9400 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
9401 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
9402 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
9403 GIR_RootConstrainSelectedInstOperands,
9404 // GIR_Coverage, 5449,
9405 GIR_EraseRootFromParent_Done,
9406 // Label 591: @25232
9407 GIM_Try, /*On fail goto*//*Label 592*/ GIMT_Encode4(25288), // Rule ID 5450 //
9408 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
9409 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
9410 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
9411 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
9412 // (bitconvert:{ *:[v2i64] } MQPR:{ *:[v8i16] }:$src) => (MVE_VREV64_16:{ *:[v2i64] } MQPR:{ *:[v8i16] }:$src)
9413 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
9414 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
9415 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
9416 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VREV64_16),
9417 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
9418 GIR_RootToRootCopy, /*OpIdx*/1, // src
9419 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
9420 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
9421 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
9422 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
9423 GIR_RootConstrainSelectedInstOperands,
9424 // GIR_Coverage, 5450,
9425 GIR_EraseRootFromParent_Done,
9426 // Label 592: @25288
9427 GIM_Try, /*On fail goto*//*Label 593*/ GIMT_Encode4(25344), // Rule ID 5451 //
9428 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
9429 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
9430 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
9431 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
9432 // (bitconvert:{ *:[v2i64] } MQPR:{ *:[v16i8] }:$src) => (MVE_VREV64_8:{ *:[v2i64] } MQPR:{ *:[v16i8] }:$src)
9433 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
9434 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
9435 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
9436 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VREV64_8),
9437 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
9438 GIR_RootToRootCopy, /*OpIdx*/1, // src
9439 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
9440 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
9441 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
9442 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
9443 GIR_RootConstrainSelectedInstOperands,
9444 // GIR_Coverage, 5451,
9445 GIR_EraseRootFromParent_Done,
9446 // Label 593: @25344
9447 GIM_Reject,
9448 // Label 484: @25345
9449 GIM_Try, /*On fail goto*//*Label 594*/ GIMT_Encode4(25377), // Rule ID 2742 //
9450 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
9451 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
9452 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9453 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9454 // (bitconvert:{ *:[v4i16] } DPR:{ *:[v4f16] }:$src) => DPR:{ *:[v4i16] }:$src
9455 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
9456 GIR_RootToRootCopy, /*OpIdx*/0, // dst
9457 GIR_RootToRootCopy, /*OpIdx*/1, // src
9458 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
9459 // GIR_Coverage, 2742,
9460 GIR_EraseRootFromParent_Done,
9461 // Label 594: @25377
9462 GIM_Try, /*On fail goto*//*Label 595*/ GIMT_Encode4(25409), // Rule ID 2743 //
9463 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
9464 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
9465 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9466 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9467 // (bitconvert:{ *:[v4f16] } DPR:{ *:[v4i16] }:$src) => DPR:{ *:[v4f16] }:$src
9468 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
9469 GIR_RootToRootCopy, /*OpIdx*/0, // dst
9470 GIR_RootToRootCopy, /*OpIdx*/1, // src
9471 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
9472 // GIR_Coverage, 2743,
9473 GIR_EraseRootFromParent_Done,
9474 // Label 595: @25409
9475 GIM_Try, /*On fail goto*//*Label 596*/ GIMT_Encode4(25441), // Rule ID 2744 //
9476 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
9477 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
9478 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9479 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9480 // (bitconvert:{ *:[v4i16] } DPR:{ *:[v4bf16] }:$src) => DPR:{ *:[v4i16] }:$src
9481 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
9482 GIR_RootToRootCopy, /*OpIdx*/0, // dst
9483 GIR_RootToRootCopy, /*OpIdx*/1, // src
9484 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
9485 // GIR_Coverage, 2744,
9486 GIR_EraseRootFromParent_Done,
9487 // Label 596: @25441
9488 GIM_Try, /*On fail goto*//*Label 597*/ GIMT_Encode4(25473), // Rule ID 2745 //
9489 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
9490 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
9491 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9492 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9493 // (bitconvert:{ *:[v4bf16] } DPR:{ *:[v4i16] }:$src) => DPR:{ *:[v4bf16] }:$src
9494 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
9495 GIR_RootToRootCopy, /*OpIdx*/0, // dst
9496 GIR_RootToRootCopy, /*OpIdx*/1, // src
9497 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
9498 // GIR_Coverage, 2745,
9499 GIR_EraseRootFromParent_Done,
9500 // Label 597: @25473
9501 GIM_Try, /*On fail goto*//*Label 598*/ GIMT_Encode4(25505), // Rule ID 2778 //
9502 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
9503 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
9504 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9505 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9506 // (bitconvert:{ *:[v4f16] } DPR:{ *:[f64] }:$src) => DPR:{ *:[v4f16] }:$src
9507 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
9508 GIR_RootToRootCopy, /*OpIdx*/0, // dst
9509 GIR_RootToRootCopy, /*OpIdx*/1, // src
9510 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
9511 // GIR_Coverage, 2778,
9512 GIR_EraseRootFromParent_Done,
9513 // Label 598: @25505
9514 GIM_Try, /*On fail goto*//*Label 599*/ GIMT_Encode4(25537), // Rule ID 2779 //
9515 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
9516 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
9517 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9518 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9519 // (bitconvert:{ *:[v4f16] } DPR:{ *:[v1i64] }:$src) => DPR:{ *:[v4f16] }:$src
9520 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
9521 GIR_RootToRootCopy, /*OpIdx*/0, // dst
9522 GIR_RootToRootCopy, /*OpIdx*/1, // src
9523 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
9524 // GIR_Coverage, 2779,
9525 GIR_EraseRootFromParent_Done,
9526 // Label 599: @25537
9527 GIM_Try, /*On fail goto*//*Label 600*/ GIMT_Encode4(25569), // Rule ID 2780 //
9528 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
9529 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
9530 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9531 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9532 // (bitconvert:{ *:[v4f16] } DPR:{ *:[v2f32] }:$src) => DPR:{ *:[v4f16] }:$src
9533 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
9534 GIR_RootToRootCopy, /*OpIdx*/0, // dst
9535 GIR_RootToRootCopy, /*OpIdx*/1, // src
9536 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
9537 // GIR_Coverage, 2780,
9538 GIR_EraseRootFromParent_Done,
9539 // Label 600: @25569
9540 GIM_Try, /*On fail goto*//*Label 601*/ GIMT_Encode4(25601), // Rule ID 2781 //
9541 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
9542 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
9543 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9544 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9545 // (bitconvert:{ *:[v4f16] } DPR:{ *:[v2i32] }:$src) => DPR:{ *:[v4f16] }:$src
9546 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
9547 GIR_RootToRootCopy, /*OpIdx*/0, // dst
9548 GIR_RootToRootCopy, /*OpIdx*/1, // src
9549 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
9550 // GIR_Coverage, 2781,
9551 GIR_EraseRootFromParent_Done,
9552 // Label 601: @25601
9553 GIM_Try, /*On fail goto*//*Label 602*/ GIMT_Encode4(25633), // Rule ID 2782 //
9554 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
9555 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s8,
9556 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9557 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9558 // (bitconvert:{ *:[v4f16] } DPR:{ *:[v8i8] }:$src) => DPR:{ *:[v4f16] }:$src
9559 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
9560 GIR_RootToRootCopy, /*OpIdx*/0, // dst
9561 GIR_RootToRootCopy, /*OpIdx*/1, // src
9562 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
9563 // GIR_Coverage, 2782,
9564 GIR_EraseRootFromParent_Done,
9565 // Label 602: @25633
9566 GIM_Try, /*On fail goto*//*Label 603*/ GIMT_Encode4(25665), // Rule ID 2783 //
9567 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
9568 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
9569 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9570 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9571 // (bitconvert:{ *:[v4bf16] } DPR:{ *:[f64] }:$src) => DPR:{ *:[v4bf16] }:$src
9572 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
9573 GIR_RootToRootCopy, /*OpIdx*/0, // dst
9574 GIR_RootToRootCopy, /*OpIdx*/1, // src
9575 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
9576 // GIR_Coverage, 2783,
9577 GIR_EraseRootFromParent_Done,
9578 // Label 603: @25665
9579 GIM_Try, /*On fail goto*//*Label 604*/ GIMT_Encode4(25697), // Rule ID 2784 //
9580 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
9581 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
9582 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9583 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9584 // (bitconvert:{ *:[v4bf16] } DPR:{ *:[v1i64] }:$src) => DPR:{ *:[v4bf16] }:$src
9585 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
9586 GIR_RootToRootCopy, /*OpIdx*/0, // dst
9587 GIR_RootToRootCopy, /*OpIdx*/1, // src
9588 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
9589 // GIR_Coverage, 2784,
9590 GIR_EraseRootFromParent_Done,
9591 // Label 604: @25697
9592 GIM_Try, /*On fail goto*//*Label 605*/ GIMT_Encode4(25729), // Rule ID 2785 //
9593 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
9594 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
9595 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9596 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9597 // (bitconvert:{ *:[v4bf16] } DPR:{ *:[v2f32] }:$src) => DPR:{ *:[v4bf16] }:$src
9598 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
9599 GIR_RootToRootCopy, /*OpIdx*/0, // dst
9600 GIR_RootToRootCopy, /*OpIdx*/1, // src
9601 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
9602 // GIR_Coverage, 2785,
9603 GIR_EraseRootFromParent_Done,
9604 // Label 605: @25729
9605 GIM_Try, /*On fail goto*//*Label 606*/ GIMT_Encode4(25761), // Rule ID 2786 //
9606 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
9607 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
9608 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9609 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9610 // (bitconvert:{ *:[v4bf16] } DPR:{ *:[v2i32] }:$src) => DPR:{ *:[v4bf16] }:$src
9611 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
9612 GIR_RootToRootCopy, /*OpIdx*/0, // dst
9613 GIR_RootToRootCopy, /*OpIdx*/1, // src
9614 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
9615 // GIR_Coverage, 2786,
9616 GIR_EraseRootFromParent_Done,
9617 // Label 606: @25761
9618 GIM_Try, /*On fail goto*//*Label 607*/ GIMT_Encode4(25793), // Rule ID 2787 //
9619 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
9620 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s8,
9621 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9622 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9623 // (bitconvert:{ *:[v4bf16] } DPR:{ *:[v8i8] }:$src) => DPR:{ *:[v4bf16] }:$src
9624 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
9625 GIR_RootToRootCopy, /*OpIdx*/0, // dst
9626 GIR_RootToRootCopy, /*OpIdx*/1, // src
9627 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
9628 // GIR_Coverage, 2787,
9629 GIR_EraseRootFromParent_Done,
9630 // Label 607: @25793
9631 GIM_Try, /*On fail goto*//*Label 608*/ GIMT_Encode4(25825), // Rule ID 2788 //
9632 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
9633 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
9634 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9635 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9636 // (bitconvert:{ *:[v4i16] } DPR:{ *:[f64] }:$src) => DPR:{ *:[v4i16] }:$src
9637 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
9638 GIR_RootToRootCopy, /*OpIdx*/0, // dst
9639 GIR_RootToRootCopy, /*OpIdx*/1, // src
9640 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
9641 // GIR_Coverage, 2788,
9642 GIR_EraseRootFromParent_Done,
9643 // Label 608: @25825
9644 GIM_Try, /*On fail goto*//*Label 609*/ GIMT_Encode4(25857), // Rule ID 2789 //
9645 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
9646 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
9647 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9648 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9649 // (bitconvert:{ *:[v4i16] } DPR:{ *:[v1i64] }:$src) => DPR:{ *:[v4i16] }:$src
9650 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
9651 GIR_RootToRootCopy, /*OpIdx*/0, // dst
9652 GIR_RootToRootCopy, /*OpIdx*/1, // src
9653 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
9654 // GIR_Coverage, 2789,
9655 GIR_EraseRootFromParent_Done,
9656 // Label 609: @25857
9657 GIM_Try, /*On fail goto*//*Label 610*/ GIMT_Encode4(25889), // Rule ID 2790 //
9658 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
9659 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
9660 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9661 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9662 // (bitconvert:{ *:[v4i16] } DPR:{ *:[v2f32] }:$src) => DPR:{ *:[v4i16] }:$src
9663 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
9664 GIR_RootToRootCopy, /*OpIdx*/0, // dst
9665 GIR_RootToRootCopy, /*OpIdx*/1, // src
9666 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
9667 // GIR_Coverage, 2790,
9668 GIR_EraseRootFromParent_Done,
9669 // Label 610: @25889
9670 GIM_Try, /*On fail goto*//*Label 611*/ GIMT_Encode4(25921), // Rule ID 2791 //
9671 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
9672 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
9673 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9674 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9675 // (bitconvert:{ *:[v4i16] } DPR:{ *:[v2i32] }:$src) => DPR:{ *:[v4i16] }:$src
9676 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
9677 GIR_RootToRootCopy, /*OpIdx*/0, // dst
9678 GIR_RootToRootCopy, /*OpIdx*/1, // src
9679 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
9680 // GIR_Coverage, 2791,
9681 GIR_EraseRootFromParent_Done,
9682 // Label 611: @25921
9683 GIM_Try, /*On fail goto*//*Label 612*/ GIMT_Encode4(25953), // Rule ID 2792 //
9684 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
9685 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s8,
9686 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9687 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9688 // (bitconvert:{ *:[v4i16] } DPR:{ *:[v8i8] }:$src) => DPR:{ *:[v4i16] }:$src
9689 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
9690 GIR_RootToRootCopy, /*OpIdx*/0, // dst
9691 GIR_RootToRootCopy, /*OpIdx*/1, // src
9692 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
9693 // GIR_Coverage, 2792,
9694 GIR_EraseRootFromParent_Done,
9695 // Label 612: @25953
9696 GIM_Try, /*On fail goto*//*Label 613*/ GIMT_Encode4(25990), // Rule ID 2870 //
9697 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
9698 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
9699 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9700 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9701 // (bitconvert:{ *:[v4f16] } DPR:{ *:[f64] }:$src) => (VREV64d16:{ *:[v4f16] } DPR:{ *:[f64] }:$src)
9702 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64d16),
9703 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
9704 GIR_RootToRootCopy, /*OpIdx*/1, // src
9705 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
9706 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
9707 GIR_RootConstrainSelectedInstOperands,
9708 // GIR_Coverage, 2870,
9709 GIR_EraseRootFromParent_Done,
9710 // Label 613: @25990
9711 GIM_Try, /*On fail goto*//*Label 614*/ GIMT_Encode4(26027), // Rule ID 2871 //
9712 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
9713 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
9714 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9715 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9716 // (bitconvert:{ *:[v4f16] } DPR:{ *:[v1i64] }:$src) => (VREV64d16:{ *:[v4f16] } DPR:{ *:[v1i64] }:$src)
9717 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64d16),
9718 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
9719 GIR_RootToRootCopy, /*OpIdx*/1, // src
9720 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
9721 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
9722 GIR_RootConstrainSelectedInstOperands,
9723 // GIR_Coverage, 2871,
9724 GIR_EraseRootFromParent_Done,
9725 // Label 614: @26027
9726 GIM_Try, /*On fail goto*//*Label 615*/ GIMT_Encode4(26064), // Rule ID 2872 //
9727 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
9728 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
9729 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9730 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9731 // (bitconvert:{ *:[v4f16] } DPR:{ *:[v2f32] }:$src) => (VREV32d16:{ *:[v4f16] } DPR:{ *:[v2f32] }:$src)
9732 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV32d16),
9733 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
9734 GIR_RootToRootCopy, /*OpIdx*/1, // src
9735 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
9736 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
9737 GIR_RootConstrainSelectedInstOperands,
9738 // GIR_Coverage, 2872,
9739 GIR_EraseRootFromParent_Done,
9740 // Label 615: @26064
9741 GIM_Try, /*On fail goto*//*Label 616*/ GIMT_Encode4(26101), // Rule ID 2873 //
9742 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
9743 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
9744 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9745 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9746 // (bitconvert:{ *:[v4f16] } DPR:{ *:[v2i32] }:$src) => (VREV32d16:{ *:[v4f16] } DPR:{ *:[v2i32] }:$src)
9747 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV32d16),
9748 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
9749 GIR_RootToRootCopy, /*OpIdx*/1, // src
9750 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
9751 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
9752 GIR_RootConstrainSelectedInstOperands,
9753 // GIR_Coverage, 2873,
9754 GIR_EraseRootFromParent_Done,
9755 // Label 616: @26101
9756 GIM_Try, /*On fail goto*//*Label 617*/ GIMT_Encode4(26138), // Rule ID 2874 //
9757 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
9758 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s8,
9759 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9760 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9761 // (bitconvert:{ *:[v4f16] } DPR:{ *:[v8i8] }:$src) => (VREV16d8:{ *:[v4f16] } DPR:{ *:[v8i8] }:$src)
9762 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV16d8),
9763 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
9764 GIR_RootToRootCopy, /*OpIdx*/1, // src
9765 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
9766 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
9767 GIR_RootConstrainSelectedInstOperands,
9768 // GIR_Coverage, 2874,
9769 GIR_EraseRootFromParent_Done,
9770 // Label 617: @26138
9771 GIM_Try, /*On fail goto*//*Label 618*/ GIMT_Encode4(26175), // Rule ID 2875 //
9772 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
9773 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
9774 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9775 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9776 // (bitconvert:{ *:[v4bf16] } DPR:{ *:[f64] }:$src) => (VREV64d16:{ *:[v4bf16] } DPR:{ *:[f64] }:$src)
9777 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64d16),
9778 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
9779 GIR_RootToRootCopy, /*OpIdx*/1, // src
9780 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
9781 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
9782 GIR_RootConstrainSelectedInstOperands,
9783 // GIR_Coverage, 2875,
9784 GIR_EraseRootFromParent_Done,
9785 // Label 618: @26175
9786 GIM_Try, /*On fail goto*//*Label 619*/ GIMT_Encode4(26212), // Rule ID 2876 //
9787 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
9788 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
9789 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9790 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9791 // (bitconvert:{ *:[v4bf16] } DPR:{ *:[v1i64] }:$src) => (VREV64d16:{ *:[v4bf16] } DPR:{ *:[v1i64] }:$src)
9792 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64d16),
9793 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
9794 GIR_RootToRootCopy, /*OpIdx*/1, // src
9795 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
9796 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
9797 GIR_RootConstrainSelectedInstOperands,
9798 // GIR_Coverage, 2876,
9799 GIR_EraseRootFromParent_Done,
9800 // Label 619: @26212
9801 GIM_Try, /*On fail goto*//*Label 620*/ GIMT_Encode4(26249), // Rule ID 2877 //
9802 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
9803 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
9804 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9805 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9806 // (bitconvert:{ *:[v4bf16] } DPR:{ *:[v2f32] }:$src) => (VREV32d16:{ *:[v4bf16] } DPR:{ *:[v2f32] }:$src)
9807 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV32d16),
9808 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
9809 GIR_RootToRootCopy, /*OpIdx*/1, // src
9810 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
9811 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
9812 GIR_RootConstrainSelectedInstOperands,
9813 // GIR_Coverage, 2877,
9814 GIR_EraseRootFromParent_Done,
9815 // Label 620: @26249
9816 GIM_Try, /*On fail goto*//*Label 621*/ GIMT_Encode4(26286), // Rule ID 2878 //
9817 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
9818 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
9819 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9820 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9821 // (bitconvert:{ *:[v4bf16] } DPR:{ *:[v2i32] }:$src) => (VREV32d16:{ *:[v4bf16] } DPR:{ *:[v2i32] }:$src)
9822 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV32d16),
9823 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
9824 GIR_RootToRootCopy, /*OpIdx*/1, // src
9825 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
9826 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
9827 GIR_RootConstrainSelectedInstOperands,
9828 // GIR_Coverage, 2878,
9829 GIR_EraseRootFromParent_Done,
9830 // Label 621: @26286
9831 GIM_Try, /*On fail goto*//*Label 622*/ GIMT_Encode4(26323), // Rule ID 2879 //
9832 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
9833 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s8,
9834 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9835 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9836 // (bitconvert:{ *:[v4bf16] } DPR:{ *:[v8i8] }:$src) => (VREV16d8:{ *:[v4bf16] } DPR:{ *:[v8i8] }:$src)
9837 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV16d8),
9838 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
9839 GIR_RootToRootCopy, /*OpIdx*/1, // src
9840 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
9841 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
9842 GIR_RootConstrainSelectedInstOperands,
9843 // GIR_Coverage, 2879,
9844 GIR_EraseRootFromParent_Done,
9845 // Label 622: @26323
9846 GIM_Try, /*On fail goto*//*Label 623*/ GIMT_Encode4(26360), // Rule ID 2880 //
9847 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
9848 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
9849 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9850 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9851 // (bitconvert:{ *:[v4i16] } DPR:{ *:[f64] }:$src) => (VREV64d16:{ *:[v4i16] } DPR:{ *:[f64] }:$src)
9852 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64d16),
9853 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
9854 GIR_RootToRootCopy, /*OpIdx*/1, // src
9855 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
9856 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
9857 GIR_RootConstrainSelectedInstOperands,
9858 // GIR_Coverage, 2880,
9859 GIR_EraseRootFromParent_Done,
9860 // Label 623: @26360
9861 GIM_Try, /*On fail goto*//*Label 624*/ GIMT_Encode4(26397), // Rule ID 2881 //
9862 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
9863 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
9864 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9865 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9866 // (bitconvert:{ *:[v4i16] } DPR:{ *:[v1i64] }:$src) => (VREV64d16:{ *:[v4i16] } DPR:{ *:[v1i64] }:$src)
9867 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64d16),
9868 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
9869 GIR_RootToRootCopy, /*OpIdx*/1, // src
9870 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
9871 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
9872 GIR_RootConstrainSelectedInstOperands,
9873 // GIR_Coverage, 2881,
9874 GIR_EraseRootFromParent_Done,
9875 // Label 624: @26397
9876 GIM_Try, /*On fail goto*//*Label 625*/ GIMT_Encode4(26434), // Rule ID 2882 //
9877 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
9878 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
9879 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9880 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9881 // (bitconvert:{ *:[v4i16] } DPR:{ *:[v2f32] }:$src) => (VREV32d16:{ *:[v4i16] } DPR:{ *:[v2f32] }:$src)
9882 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV32d16),
9883 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
9884 GIR_RootToRootCopy, /*OpIdx*/1, // src
9885 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
9886 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
9887 GIR_RootConstrainSelectedInstOperands,
9888 // GIR_Coverage, 2882,
9889 GIR_EraseRootFromParent_Done,
9890 // Label 625: @26434
9891 GIM_Try, /*On fail goto*//*Label 626*/ GIMT_Encode4(26471), // Rule ID 2883 //
9892 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
9893 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
9894 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9895 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9896 // (bitconvert:{ *:[v4i16] } DPR:{ *:[v2i32] }:$src) => (VREV32d16:{ *:[v4i16] } DPR:{ *:[v2i32] }:$src)
9897 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV32d16),
9898 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
9899 GIR_RootToRootCopy, /*OpIdx*/1, // src
9900 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
9901 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
9902 GIR_RootConstrainSelectedInstOperands,
9903 // GIR_Coverage, 2883,
9904 GIR_EraseRootFromParent_Done,
9905 // Label 626: @26471
9906 GIM_Try, /*On fail goto*//*Label 627*/ GIMT_Encode4(26508), // Rule ID 2884 //
9907 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
9908 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s8,
9909 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9910 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
9911 // (bitconvert:{ *:[v4i16] } DPR:{ *:[v8i8] }:$src) => (VREV16d8:{ *:[v4i16] } DPR:{ *:[v8i8] }:$src)
9912 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV16d8),
9913 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
9914 GIR_RootToRootCopy, /*OpIdx*/1, // src
9915 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
9916 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
9917 GIR_RootConstrainSelectedInstOperands,
9918 // GIR_Coverage, 2884,
9919 GIR_EraseRootFromParent_Done,
9920 // Label 627: @26508
9921 GIM_Reject,
9922 // Label 485: @26509
9923 GIM_Try, /*On fail goto*//*Label 628*/ GIMT_Encode4(26541), // Rule ID 2748 //
9924 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
9925 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
9926 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
9927 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
9928 // (bitconvert:{ *:[v4i32] } QPR:{ *:[v4f32] }:$src) => QPR:{ *:[v4i32] }:$src
9929 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
9930 GIR_RootToRootCopy, /*OpIdx*/0, // dst
9931 GIR_RootToRootCopy, /*OpIdx*/1, // src
9932 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
9933 // GIR_Coverage, 2748,
9934 GIR_EraseRootFromParent_Done,
9935 // Label 628: @26541
9936 GIM_Try, /*On fail goto*//*Label 629*/ GIMT_Encode4(26573), // Rule ID 2749 //
9937 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
9938 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
9939 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
9940 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
9941 // (bitconvert:{ *:[v4f32] } QPR:{ *:[v4i32] }:$src) => QPR:{ *:[v4f32] }:$src
9942 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
9943 GIR_RootToRootCopy, /*OpIdx*/0, // dst
9944 GIR_RootToRootCopy, /*OpIdx*/1, // src
9945 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
9946 // GIR_Coverage, 2749,
9947 GIR_EraseRootFromParent_Done,
9948 // Label 629: @26573
9949 GIM_Try, /*On fail goto*//*Label 630*/ GIMT_Encode4(26605), // Rule ID 2812 //
9950 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
9951 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
9952 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
9953 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
9954 // (bitconvert:{ *:[v4f32] } QPR:{ *:[v2f64] }:$src) => QPR:{ *:[v4f32] }:$src
9955 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
9956 GIR_RootToRootCopy, /*OpIdx*/0, // dst
9957 GIR_RootToRootCopy, /*OpIdx*/1, // src
9958 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
9959 // GIR_Coverage, 2812,
9960 GIR_EraseRootFromParent_Done,
9961 // Label 630: @26605
9962 GIM_Try, /*On fail goto*//*Label 631*/ GIMT_Encode4(26637), // Rule ID 2813 //
9963 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
9964 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
9965 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
9966 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
9967 // (bitconvert:{ *:[v4f32] } QPR:{ *:[v2i64] }:$src) => QPR:{ *:[v4f32] }:$src
9968 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
9969 GIR_RootToRootCopy, /*OpIdx*/0, // dst
9970 GIR_RootToRootCopy, /*OpIdx*/1, // src
9971 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
9972 // GIR_Coverage, 2813,
9973 GIR_EraseRootFromParent_Done,
9974 // Label 631: @26637
9975 GIM_Try, /*On fail goto*//*Label 632*/ GIMT_Encode4(26669), // Rule ID 2814 //
9976 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
9977 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
9978 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
9979 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
9980 // (bitconvert:{ *:[v4f32] } QPR:{ *:[v8f16] }:$src) => QPR:{ *:[v4f32] }:$src
9981 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
9982 GIR_RootToRootCopy, /*OpIdx*/0, // dst
9983 GIR_RootToRootCopy, /*OpIdx*/1, // src
9984 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
9985 // GIR_Coverage, 2814,
9986 GIR_EraseRootFromParent_Done,
9987 // Label 632: @26669
9988 GIM_Try, /*On fail goto*//*Label 633*/ GIMT_Encode4(26701), // Rule ID 2815 //
9989 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
9990 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
9991 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
9992 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
9993 // (bitconvert:{ *:[v4f32] } QPR:{ *:[v8bf16] }:$src) => QPR:{ *:[v4f32] }:$src
9994 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
9995 GIR_RootToRootCopy, /*OpIdx*/0, // dst
9996 GIR_RootToRootCopy, /*OpIdx*/1, // src
9997 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
9998 // GIR_Coverage, 2815,
9999 GIR_EraseRootFromParent_Done,
10000 // Label 633: @26701
10001 GIM_Try, /*On fail goto*//*Label 634*/ GIMT_Encode4(26733), // Rule ID 2816 //
10002 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
10003 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
10004 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10005 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10006 // (bitconvert:{ *:[v4f32] } QPR:{ *:[v8i16] }:$src) => QPR:{ *:[v4f32] }:$src
10007 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
10008 GIR_RootToRootCopy, /*OpIdx*/0, // dst
10009 GIR_RootToRootCopy, /*OpIdx*/1, // src
10010 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
10011 // GIR_Coverage, 2816,
10012 GIR_EraseRootFromParent_Done,
10013 // Label 634: @26733
10014 GIM_Try, /*On fail goto*//*Label 635*/ GIMT_Encode4(26765), // Rule ID 2817 //
10015 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
10016 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
10017 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10018 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10019 // (bitconvert:{ *:[v4f32] } QPR:{ *:[v16i8] }:$src) => QPR:{ *:[v4f32] }:$src
10020 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
10021 GIR_RootToRootCopy, /*OpIdx*/0, // dst
10022 GIR_RootToRootCopy, /*OpIdx*/1, // src
10023 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
10024 // GIR_Coverage, 2817,
10025 GIR_EraseRootFromParent_Done,
10026 // Label 635: @26765
10027 GIM_Try, /*On fail goto*//*Label 636*/ GIMT_Encode4(26797), // Rule ID 2818 //
10028 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
10029 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
10030 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10031 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10032 // (bitconvert:{ *:[v4i32] } QPR:{ *:[v2f64] }:$src) => QPR:{ *:[v4i32] }:$src
10033 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
10034 GIR_RootToRootCopy, /*OpIdx*/0, // dst
10035 GIR_RootToRootCopy, /*OpIdx*/1, // src
10036 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
10037 // GIR_Coverage, 2818,
10038 GIR_EraseRootFromParent_Done,
10039 // Label 636: @26797
10040 GIM_Try, /*On fail goto*//*Label 637*/ GIMT_Encode4(26829), // Rule ID 2819 //
10041 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
10042 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
10043 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10044 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10045 // (bitconvert:{ *:[v4i32] } QPR:{ *:[v2i64] }:$src) => QPR:{ *:[v4i32] }:$src
10046 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
10047 GIR_RootToRootCopy, /*OpIdx*/0, // dst
10048 GIR_RootToRootCopy, /*OpIdx*/1, // src
10049 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
10050 // GIR_Coverage, 2819,
10051 GIR_EraseRootFromParent_Done,
10052 // Label 637: @26829
10053 GIM_Try, /*On fail goto*//*Label 638*/ GIMT_Encode4(26861), // Rule ID 2820 //
10054 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
10055 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
10056 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10057 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10058 // (bitconvert:{ *:[v4i32] } QPR:{ *:[v8f16] }:$src) => QPR:{ *:[v4i32] }:$src
10059 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
10060 GIR_RootToRootCopy, /*OpIdx*/0, // dst
10061 GIR_RootToRootCopy, /*OpIdx*/1, // src
10062 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
10063 // GIR_Coverage, 2820,
10064 GIR_EraseRootFromParent_Done,
10065 // Label 638: @26861
10066 GIM_Try, /*On fail goto*//*Label 639*/ GIMT_Encode4(26893), // Rule ID 2821 //
10067 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
10068 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
10069 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10070 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10071 // (bitconvert:{ *:[v4i32] } QPR:{ *:[v8bf16] }:$src) => QPR:{ *:[v4i32] }:$src
10072 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
10073 GIR_RootToRootCopy, /*OpIdx*/0, // dst
10074 GIR_RootToRootCopy, /*OpIdx*/1, // src
10075 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
10076 // GIR_Coverage, 2821,
10077 GIR_EraseRootFromParent_Done,
10078 // Label 639: @26893
10079 GIM_Try, /*On fail goto*//*Label 640*/ GIMT_Encode4(26925), // Rule ID 2822 //
10080 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
10081 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
10082 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10083 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10084 // (bitconvert:{ *:[v4i32] } QPR:{ *:[v8i16] }:$src) => QPR:{ *:[v4i32] }:$src
10085 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
10086 GIR_RootToRootCopy, /*OpIdx*/0, // dst
10087 GIR_RootToRootCopy, /*OpIdx*/1, // src
10088 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
10089 // GIR_Coverage, 2822,
10090 GIR_EraseRootFromParent_Done,
10091 // Label 640: @26925
10092 GIM_Try, /*On fail goto*//*Label 641*/ GIMT_Encode4(26957), // Rule ID 2823 //
10093 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
10094 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
10095 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10096 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10097 // (bitconvert:{ *:[v4i32] } QPR:{ *:[v16i8] }:$src) => QPR:{ *:[v4i32] }:$src
10098 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
10099 GIR_RootToRootCopy, /*OpIdx*/0, // dst
10100 GIR_RootToRootCopy, /*OpIdx*/1, // src
10101 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
10102 // GIR_Coverage, 2823,
10103 GIR_EraseRootFromParent_Done,
10104 // Label 641: @26957
10105 GIM_Try, /*On fail goto*//*Label 642*/ GIMT_Encode4(26994), // Rule ID 2904 //
10106 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
10107 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
10108 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10109 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10110 // (bitconvert:{ *:[v4f32] } QPR:{ *:[v2f64] }:$src) => (VREV64q32:{ *:[v4f32] } QPR:{ *:[v2f64] }:$src)
10111 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64q32),
10112 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
10113 GIR_RootToRootCopy, /*OpIdx*/1, // src
10114 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
10115 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
10116 GIR_RootConstrainSelectedInstOperands,
10117 // GIR_Coverage, 2904,
10118 GIR_EraseRootFromParent_Done,
10119 // Label 642: @26994
10120 GIM_Try, /*On fail goto*//*Label 643*/ GIMT_Encode4(27031), // Rule ID 2905 //
10121 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
10122 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
10123 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10124 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10125 // (bitconvert:{ *:[v4f32] } QPR:{ *:[v2i64] }:$src) => (VREV64q32:{ *:[v4f32] } QPR:{ *:[v2i64] }:$src)
10126 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64q32),
10127 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
10128 GIR_RootToRootCopy, /*OpIdx*/1, // src
10129 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
10130 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
10131 GIR_RootConstrainSelectedInstOperands,
10132 // GIR_Coverage, 2905,
10133 GIR_EraseRootFromParent_Done,
10134 // Label 643: @27031
10135 GIM_Try, /*On fail goto*//*Label 644*/ GIMT_Encode4(27068), // Rule ID 2906 //
10136 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
10137 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
10138 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10139 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10140 // (bitconvert:{ *:[v4f32] } QPR:{ *:[v8f16] }:$src) => (VREV32q16:{ *:[v4f32] } QPR:{ *:[v8f16] }:$src)
10141 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV32q16),
10142 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
10143 GIR_RootToRootCopy, /*OpIdx*/1, // src
10144 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
10145 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
10146 GIR_RootConstrainSelectedInstOperands,
10147 // GIR_Coverage, 2906,
10148 GIR_EraseRootFromParent_Done,
10149 // Label 644: @27068
10150 GIM_Try, /*On fail goto*//*Label 645*/ GIMT_Encode4(27105), // Rule ID 2907 //
10151 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
10152 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
10153 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10154 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10155 // (bitconvert:{ *:[v4f32] } QPR:{ *:[v8bf16] }:$src) => (VREV32q16:{ *:[v4f32] } QPR:{ *:[v8bf16] }:$src)
10156 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV32q16),
10157 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
10158 GIR_RootToRootCopy, /*OpIdx*/1, // src
10159 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
10160 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
10161 GIR_RootConstrainSelectedInstOperands,
10162 // GIR_Coverage, 2907,
10163 GIR_EraseRootFromParent_Done,
10164 // Label 645: @27105
10165 GIM_Try, /*On fail goto*//*Label 646*/ GIMT_Encode4(27142), // Rule ID 2908 //
10166 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
10167 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
10168 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10169 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10170 // (bitconvert:{ *:[v4f32] } QPR:{ *:[v8i16] }:$src) => (VREV32q16:{ *:[v4f32] } QPR:{ *:[v8i16] }:$src)
10171 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV32q16),
10172 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
10173 GIR_RootToRootCopy, /*OpIdx*/1, // src
10174 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
10175 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
10176 GIR_RootConstrainSelectedInstOperands,
10177 // GIR_Coverage, 2908,
10178 GIR_EraseRootFromParent_Done,
10179 // Label 646: @27142
10180 GIM_Try, /*On fail goto*//*Label 647*/ GIMT_Encode4(27179), // Rule ID 2909 //
10181 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
10182 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
10183 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10184 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10185 // (bitconvert:{ *:[v4f32] } QPR:{ *:[v16i8] }:$src) => (VREV32q8:{ *:[v4f32] } QPR:{ *:[v16i8] }:$src)
10186 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV32q8),
10187 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
10188 GIR_RootToRootCopy, /*OpIdx*/1, // src
10189 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
10190 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
10191 GIR_RootConstrainSelectedInstOperands,
10192 // GIR_Coverage, 2909,
10193 GIR_EraseRootFromParent_Done,
10194 // Label 647: @27179
10195 GIM_Try, /*On fail goto*//*Label 648*/ GIMT_Encode4(27216), // Rule ID 2910 //
10196 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
10197 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
10198 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10199 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10200 // (bitconvert:{ *:[v4i32] } QPR:{ *:[v2f64] }:$src) => (VREV64q32:{ *:[v4i32] } QPR:{ *:[v2f64] }:$src)
10201 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64q32),
10202 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
10203 GIR_RootToRootCopy, /*OpIdx*/1, // src
10204 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
10205 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
10206 GIR_RootConstrainSelectedInstOperands,
10207 // GIR_Coverage, 2910,
10208 GIR_EraseRootFromParent_Done,
10209 // Label 648: @27216
10210 GIM_Try, /*On fail goto*//*Label 649*/ GIMT_Encode4(27253), // Rule ID 2911 //
10211 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
10212 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
10213 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10214 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10215 // (bitconvert:{ *:[v4i32] } QPR:{ *:[v2i64] }:$src) => (VREV64q32:{ *:[v4i32] } QPR:{ *:[v2i64] }:$src)
10216 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64q32),
10217 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
10218 GIR_RootToRootCopy, /*OpIdx*/1, // src
10219 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
10220 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
10221 GIR_RootConstrainSelectedInstOperands,
10222 // GIR_Coverage, 2911,
10223 GIR_EraseRootFromParent_Done,
10224 // Label 649: @27253
10225 GIM_Try, /*On fail goto*//*Label 650*/ GIMT_Encode4(27290), // Rule ID 2912 //
10226 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
10227 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
10228 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10229 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10230 // (bitconvert:{ *:[v4i32] } QPR:{ *:[v8f16] }:$src) => (VREV32q16:{ *:[v4i32] } QPR:{ *:[v8f16] }:$src)
10231 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV32q16),
10232 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
10233 GIR_RootToRootCopy, /*OpIdx*/1, // src
10234 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
10235 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
10236 GIR_RootConstrainSelectedInstOperands,
10237 // GIR_Coverage, 2912,
10238 GIR_EraseRootFromParent_Done,
10239 // Label 650: @27290
10240 GIM_Try, /*On fail goto*//*Label 651*/ GIMT_Encode4(27327), // Rule ID 2913 //
10241 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
10242 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
10243 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10244 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10245 // (bitconvert:{ *:[v4i32] } QPR:{ *:[v8bf16] }:$src) => (VREV32q16:{ *:[v4i32] } QPR:{ *:[v8bf16] }:$src)
10246 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV32q16),
10247 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
10248 GIR_RootToRootCopy, /*OpIdx*/1, // src
10249 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
10250 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
10251 GIR_RootConstrainSelectedInstOperands,
10252 // GIR_Coverage, 2913,
10253 GIR_EraseRootFromParent_Done,
10254 // Label 651: @27327
10255 GIM_Try, /*On fail goto*//*Label 652*/ GIMT_Encode4(27364), // Rule ID 2914 //
10256 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
10257 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
10258 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10259 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10260 // (bitconvert:{ *:[v4i32] } QPR:{ *:[v8i16] }:$src) => (VREV32q16:{ *:[v4i32] } QPR:{ *:[v8i16] }:$src)
10261 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV32q16),
10262 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
10263 GIR_RootToRootCopy, /*OpIdx*/1, // src
10264 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
10265 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
10266 GIR_RootConstrainSelectedInstOperands,
10267 // GIR_Coverage, 2914,
10268 GIR_EraseRootFromParent_Done,
10269 // Label 652: @27364
10270 GIM_Try, /*On fail goto*//*Label 653*/ GIMT_Encode4(27401), // Rule ID 2915 //
10271 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
10272 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
10273 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10274 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10275 // (bitconvert:{ *:[v4i32] } QPR:{ *:[v16i8] }:$src) => (VREV32q8:{ *:[v4i32] } QPR:{ *:[v16i8] }:$src)
10276 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV32q8),
10277 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
10278 GIR_RootToRootCopy, /*OpIdx*/1, // src
10279 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
10280 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
10281 GIR_RootConstrainSelectedInstOperands,
10282 // GIR_Coverage, 2915,
10283 GIR_EraseRootFromParent_Done,
10284 // Label 653: @27401
10285 GIM_Try, /*On fail goto*//*Label 654*/ GIMT_Encode4(27433), // Rule ID 5402 //
10286 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
10287 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
10288 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
10289 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
10290 // (bitconvert:{ *:[v4i32] } MQPR:{ *:[v4f32] }:$src) => MQPR:{ *:[v4i32] }:$src
10291 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
10292 GIR_RootToRootCopy, /*OpIdx*/0, // dst
10293 GIR_RootToRootCopy, /*OpIdx*/1, // src
10294 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::MQPRRegClassID),
10295 // GIR_Coverage, 5402,
10296 GIR_EraseRootFromParent_Done,
10297 // Label 654: @27433
10298 GIM_Try, /*On fail goto*//*Label 655*/ GIMT_Encode4(27465), // Rule ID 5403 //
10299 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
10300 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
10301 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
10302 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
10303 // (bitconvert:{ *:[v4f32] } MQPR:{ *:[v4i32] }:$src) => MQPR:{ *:[v4f32] }:$src
10304 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
10305 GIR_RootToRootCopy, /*OpIdx*/0, // dst
10306 GIR_RootToRootCopy, /*OpIdx*/1, // src
10307 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::MQPRRegClassID),
10308 // GIR_Coverage, 5403,
10309 GIR_EraseRootFromParent_Done,
10310 // Label 655: @27465
10311 GIM_Try, /*On fail goto*//*Label 656*/ GIMT_Encode4(27497), // Rule ID 5416 //
10312 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
10313 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
10314 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
10315 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
10316 // (bitconvert:{ *:[v4f32] } MQPR:{ *:[v2f64] }:$src) => MQPR:{ *:[v4f32] }:$src
10317 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
10318 GIR_RootToRootCopy, /*OpIdx*/0, // dst
10319 GIR_RootToRootCopy, /*OpIdx*/1, // src
10320 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::MQPRRegClassID),
10321 // GIR_Coverage, 5416,
10322 GIR_EraseRootFromParent_Done,
10323 // Label 656: @27497
10324 GIM_Try, /*On fail goto*//*Label 657*/ GIMT_Encode4(27529), // Rule ID 5417 //
10325 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
10326 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
10327 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
10328 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
10329 // (bitconvert:{ *:[v4f32] } MQPR:{ *:[v2i64] }:$src) => MQPR:{ *:[v4f32] }:$src
10330 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
10331 GIR_RootToRootCopy, /*OpIdx*/0, // dst
10332 GIR_RootToRootCopy, /*OpIdx*/1, // src
10333 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::MQPRRegClassID),
10334 // GIR_Coverage, 5417,
10335 GIR_EraseRootFromParent_Done,
10336 // Label 657: @27529
10337 GIM_Try, /*On fail goto*//*Label 658*/ GIMT_Encode4(27561), // Rule ID 5418 //
10338 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
10339 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
10340 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
10341 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
10342 // (bitconvert:{ *:[v4f32] } MQPR:{ *:[v8f16] }:$src) => MQPR:{ *:[v4f32] }:$src
10343 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
10344 GIR_RootToRootCopy, /*OpIdx*/0, // dst
10345 GIR_RootToRootCopy, /*OpIdx*/1, // src
10346 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::MQPRRegClassID),
10347 // GIR_Coverage, 5418,
10348 GIR_EraseRootFromParent_Done,
10349 // Label 658: @27561
10350 GIM_Try, /*On fail goto*//*Label 659*/ GIMT_Encode4(27593), // Rule ID 5419 //
10351 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
10352 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
10353 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
10354 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
10355 // (bitconvert:{ *:[v4f32] } MQPR:{ *:[v8i16] }:$src) => MQPR:{ *:[v4f32] }:$src
10356 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
10357 GIR_RootToRootCopy, /*OpIdx*/0, // dst
10358 GIR_RootToRootCopy, /*OpIdx*/1, // src
10359 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::MQPRRegClassID),
10360 // GIR_Coverage, 5419,
10361 GIR_EraseRootFromParent_Done,
10362 // Label 659: @27593
10363 GIM_Try, /*On fail goto*//*Label 660*/ GIMT_Encode4(27625), // Rule ID 5420 //
10364 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
10365 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
10366 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
10367 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
10368 // (bitconvert:{ *:[v4f32] } MQPR:{ *:[v16i8] }:$src) => MQPR:{ *:[v4f32] }:$src
10369 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
10370 GIR_RootToRootCopy, /*OpIdx*/0, // dst
10371 GIR_RootToRootCopy, /*OpIdx*/1, // src
10372 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::MQPRRegClassID),
10373 // GIR_Coverage, 5420,
10374 GIR_EraseRootFromParent_Done,
10375 // Label 660: @27625
10376 GIM_Try, /*On fail goto*//*Label 661*/ GIMT_Encode4(27657), // Rule ID 5421 //
10377 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
10378 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
10379 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
10380 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
10381 // (bitconvert:{ *:[v4i32] } MQPR:{ *:[v2f64] }:$src) => MQPR:{ *:[v4i32] }:$src
10382 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
10383 GIR_RootToRootCopy, /*OpIdx*/0, // dst
10384 GIR_RootToRootCopy, /*OpIdx*/1, // src
10385 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::MQPRRegClassID),
10386 // GIR_Coverage, 5421,
10387 GIR_EraseRootFromParent_Done,
10388 // Label 661: @27657
10389 GIM_Try, /*On fail goto*//*Label 662*/ GIMT_Encode4(27689), // Rule ID 5422 //
10390 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
10391 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
10392 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
10393 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
10394 // (bitconvert:{ *:[v4i32] } MQPR:{ *:[v2i64] }:$src) => MQPR:{ *:[v4i32] }:$src
10395 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
10396 GIR_RootToRootCopy, /*OpIdx*/0, // dst
10397 GIR_RootToRootCopy, /*OpIdx*/1, // src
10398 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::MQPRRegClassID),
10399 // GIR_Coverage, 5422,
10400 GIR_EraseRootFromParent_Done,
10401 // Label 662: @27689
10402 GIM_Try, /*On fail goto*//*Label 663*/ GIMT_Encode4(27721), // Rule ID 5423 //
10403 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
10404 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
10405 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
10406 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
10407 // (bitconvert:{ *:[v4i32] } MQPR:{ *:[v8f16] }:$src) => MQPR:{ *:[v4i32] }:$src
10408 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
10409 GIR_RootToRootCopy, /*OpIdx*/0, // dst
10410 GIR_RootToRootCopy, /*OpIdx*/1, // src
10411 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::MQPRRegClassID),
10412 // GIR_Coverage, 5423,
10413 GIR_EraseRootFromParent_Done,
10414 // Label 663: @27721
10415 GIM_Try, /*On fail goto*//*Label 664*/ GIMT_Encode4(27753), // Rule ID 5424 //
10416 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
10417 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
10418 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
10419 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
10420 // (bitconvert:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$src) => MQPR:{ *:[v4i32] }:$src
10421 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
10422 GIR_RootToRootCopy, /*OpIdx*/0, // dst
10423 GIR_RootToRootCopy, /*OpIdx*/1, // src
10424 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::MQPRRegClassID),
10425 // GIR_Coverage, 5424,
10426 GIR_EraseRootFromParent_Done,
10427 // Label 664: @27753
10428 GIM_Try, /*On fail goto*//*Label 665*/ GIMT_Encode4(27785), // Rule ID 5425 //
10429 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
10430 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
10431 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
10432 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
10433 // (bitconvert:{ *:[v4i32] } MQPR:{ *:[v16i8] }:$src) => MQPR:{ *:[v4i32] }:$src
10434 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
10435 GIR_RootToRootCopy, /*OpIdx*/0, // dst
10436 GIR_RootToRootCopy, /*OpIdx*/1, // src
10437 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::MQPRRegClassID),
10438 // GIR_Coverage, 5425,
10439 GIR_EraseRootFromParent_Done,
10440 // Label 665: @27785
10441 GIM_Try, /*On fail goto*//*Label 666*/ GIMT_Encode4(27841), // Rule ID 5452 //
10442 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
10443 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
10444 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
10445 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
10446 // (bitconvert:{ *:[v4f32] } MQPR:{ *:[v2f64] }:$src) => (MVE_VREV64_32:{ *:[v4f32] } MQPR:{ *:[v2f64] }:$src)
10447 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
10448 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
10449 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
10450 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VREV64_32),
10451 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
10452 GIR_RootToRootCopy, /*OpIdx*/1, // src
10453 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
10454 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
10455 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
10456 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
10457 GIR_RootConstrainSelectedInstOperands,
10458 // GIR_Coverage, 5452,
10459 GIR_EraseRootFromParent_Done,
10460 // Label 666: @27841
10461 GIM_Try, /*On fail goto*//*Label 667*/ GIMT_Encode4(27897), // Rule ID 5453 //
10462 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
10463 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
10464 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
10465 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
10466 // (bitconvert:{ *:[v4f32] } MQPR:{ *:[v2i64] }:$src) => (MVE_VREV64_32:{ *:[v4f32] } MQPR:{ *:[v2i64] }:$src)
10467 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
10468 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
10469 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
10470 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VREV64_32),
10471 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
10472 GIR_RootToRootCopy, /*OpIdx*/1, // src
10473 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
10474 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
10475 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
10476 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
10477 GIR_RootConstrainSelectedInstOperands,
10478 // GIR_Coverage, 5453,
10479 GIR_EraseRootFromParent_Done,
10480 // Label 667: @27897
10481 GIM_Try, /*On fail goto*//*Label 668*/ GIMT_Encode4(27953), // Rule ID 5454 //
10482 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
10483 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
10484 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
10485 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
10486 // (bitconvert:{ *:[v4f32] } MQPR:{ *:[v8f16] }:$src) => (MVE_VREV32_16:{ *:[v4f32] } MQPR:{ *:[v8f16] }:$src)
10487 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
10488 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
10489 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
10490 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VREV32_16),
10491 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
10492 GIR_RootToRootCopy, /*OpIdx*/1, // src
10493 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
10494 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
10495 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
10496 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
10497 GIR_RootConstrainSelectedInstOperands,
10498 // GIR_Coverage, 5454,
10499 GIR_EraseRootFromParent_Done,
10500 // Label 668: @27953
10501 GIM_Try, /*On fail goto*//*Label 669*/ GIMT_Encode4(28009), // Rule ID 5455 //
10502 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
10503 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
10504 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
10505 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
10506 // (bitconvert:{ *:[v4f32] } MQPR:{ *:[v8i16] }:$src) => (MVE_VREV32_16:{ *:[v4f32] } MQPR:{ *:[v8i16] }:$src)
10507 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
10508 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
10509 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
10510 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VREV32_16),
10511 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
10512 GIR_RootToRootCopy, /*OpIdx*/1, // src
10513 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
10514 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
10515 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
10516 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
10517 GIR_RootConstrainSelectedInstOperands,
10518 // GIR_Coverage, 5455,
10519 GIR_EraseRootFromParent_Done,
10520 // Label 669: @28009
10521 GIM_Try, /*On fail goto*//*Label 670*/ GIMT_Encode4(28065), // Rule ID 5456 //
10522 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
10523 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
10524 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
10525 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
10526 // (bitconvert:{ *:[v4f32] } MQPR:{ *:[v16i8] }:$src) => (MVE_VREV32_8:{ *:[v4f32] } MQPR:{ *:[v16i8] }:$src)
10527 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
10528 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
10529 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
10530 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VREV32_8),
10531 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
10532 GIR_RootToRootCopy, /*OpIdx*/1, // src
10533 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
10534 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
10535 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
10536 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
10537 GIR_RootConstrainSelectedInstOperands,
10538 // GIR_Coverage, 5456,
10539 GIR_EraseRootFromParent_Done,
10540 // Label 670: @28065
10541 GIM_Try, /*On fail goto*//*Label 671*/ GIMT_Encode4(28121), // Rule ID 5457 //
10542 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
10543 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
10544 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
10545 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
10546 // (bitconvert:{ *:[v4i32] } MQPR:{ *:[v2f64] }:$src) => (MVE_VREV64_32:{ *:[v4i32] } MQPR:{ *:[v2f64] }:$src)
10547 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
10548 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
10549 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
10550 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VREV64_32),
10551 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
10552 GIR_RootToRootCopy, /*OpIdx*/1, // src
10553 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
10554 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
10555 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
10556 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
10557 GIR_RootConstrainSelectedInstOperands,
10558 // GIR_Coverage, 5457,
10559 GIR_EraseRootFromParent_Done,
10560 // Label 671: @28121
10561 GIM_Try, /*On fail goto*//*Label 672*/ GIMT_Encode4(28177), // Rule ID 5458 //
10562 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
10563 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
10564 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
10565 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
10566 // (bitconvert:{ *:[v4i32] } MQPR:{ *:[v2i64] }:$src) => (MVE_VREV64_32:{ *:[v4i32] } MQPR:{ *:[v2i64] }:$src)
10567 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
10568 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
10569 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
10570 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VREV64_32),
10571 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
10572 GIR_RootToRootCopy, /*OpIdx*/1, // src
10573 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
10574 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
10575 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
10576 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
10577 GIR_RootConstrainSelectedInstOperands,
10578 // GIR_Coverage, 5458,
10579 GIR_EraseRootFromParent_Done,
10580 // Label 672: @28177
10581 GIM_Try, /*On fail goto*//*Label 673*/ GIMT_Encode4(28233), // Rule ID 5459 //
10582 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
10583 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
10584 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
10585 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
10586 // (bitconvert:{ *:[v4i32] } MQPR:{ *:[v8f16] }:$src) => (MVE_VREV32_16:{ *:[v4i32] } MQPR:{ *:[v8f16] }:$src)
10587 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
10588 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
10589 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
10590 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VREV32_16),
10591 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
10592 GIR_RootToRootCopy, /*OpIdx*/1, // src
10593 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
10594 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
10595 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
10596 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
10597 GIR_RootConstrainSelectedInstOperands,
10598 // GIR_Coverage, 5459,
10599 GIR_EraseRootFromParent_Done,
10600 // Label 673: @28233
10601 GIM_Try, /*On fail goto*//*Label 674*/ GIMT_Encode4(28289), // Rule ID 5460 //
10602 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
10603 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
10604 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
10605 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
10606 // (bitconvert:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$src) => (MVE_VREV32_16:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$src)
10607 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
10608 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
10609 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
10610 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VREV32_16),
10611 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
10612 GIR_RootToRootCopy, /*OpIdx*/1, // src
10613 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
10614 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
10615 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
10616 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
10617 GIR_RootConstrainSelectedInstOperands,
10618 // GIR_Coverage, 5460,
10619 GIR_EraseRootFromParent_Done,
10620 // Label 674: @28289
10621 GIM_Try, /*On fail goto*//*Label 675*/ GIMT_Encode4(28345), // Rule ID 5461 //
10622 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
10623 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
10624 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
10625 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
10626 // (bitconvert:{ *:[v4i32] } MQPR:{ *:[v16i8] }:$src) => (MVE_VREV32_8:{ *:[v4i32] } MQPR:{ *:[v16i8] }:$src)
10627 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
10628 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
10629 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
10630 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VREV32_8),
10631 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
10632 GIR_RootToRootCopy, /*OpIdx*/1, // src
10633 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
10634 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
10635 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
10636 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
10637 GIR_RootConstrainSelectedInstOperands,
10638 // GIR_Coverage, 5461,
10639 GIR_EraseRootFromParent_Done,
10640 // Label 675: @28345
10641 GIM_Reject,
10642 // Label 486: @28346
10643 GIM_Try, /*On fail goto*//*Label 676*/ GIMT_Encode4(28378), // Rule ID 2793 //
10644 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
10645 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
10646 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
10647 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
10648 // (bitconvert:{ *:[v8i8] } DPR:{ *:[f64] }:$src) => DPR:{ *:[v8i8] }:$src
10649 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
10650 GIR_RootToRootCopy, /*OpIdx*/0, // dst
10651 GIR_RootToRootCopy, /*OpIdx*/1, // src
10652 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
10653 // GIR_Coverage, 2793,
10654 GIR_EraseRootFromParent_Done,
10655 // Label 676: @28378
10656 GIM_Try, /*On fail goto*//*Label 677*/ GIMT_Encode4(28410), // Rule ID 2794 //
10657 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
10658 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
10659 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
10660 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
10661 // (bitconvert:{ *:[v8i8] } DPR:{ *:[v1i64] }:$src) => DPR:{ *:[v8i8] }:$src
10662 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
10663 GIR_RootToRootCopy, /*OpIdx*/0, // dst
10664 GIR_RootToRootCopy, /*OpIdx*/1, // src
10665 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
10666 // GIR_Coverage, 2794,
10667 GIR_EraseRootFromParent_Done,
10668 // Label 677: @28410
10669 GIM_Try, /*On fail goto*//*Label 678*/ GIMT_Encode4(28442), // Rule ID 2795 //
10670 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
10671 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
10672 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
10673 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
10674 // (bitconvert:{ *:[v8i8] } DPR:{ *:[v2f32] }:$src) => DPR:{ *:[v8i8] }:$src
10675 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
10676 GIR_RootToRootCopy, /*OpIdx*/0, // dst
10677 GIR_RootToRootCopy, /*OpIdx*/1, // src
10678 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
10679 // GIR_Coverage, 2795,
10680 GIR_EraseRootFromParent_Done,
10681 // Label 678: @28442
10682 GIM_Try, /*On fail goto*//*Label 679*/ GIMT_Encode4(28474), // Rule ID 2796 //
10683 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
10684 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
10685 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
10686 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
10687 // (bitconvert:{ *:[v8i8] } DPR:{ *:[v2i32] }:$src) => DPR:{ *:[v8i8] }:$src
10688 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
10689 GIR_RootToRootCopy, /*OpIdx*/0, // dst
10690 GIR_RootToRootCopy, /*OpIdx*/1, // src
10691 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
10692 // GIR_Coverage, 2796,
10693 GIR_EraseRootFromParent_Done,
10694 // Label 679: @28474
10695 GIM_Try, /*On fail goto*//*Label 680*/ GIMT_Encode4(28506), // Rule ID 2797 //
10696 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
10697 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
10698 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
10699 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
10700 // (bitconvert:{ *:[v8i8] } DPR:{ *:[v4f16] }:$src) => DPR:{ *:[v8i8] }:$src
10701 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
10702 GIR_RootToRootCopy, /*OpIdx*/0, // dst
10703 GIR_RootToRootCopy, /*OpIdx*/1, // src
10704 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
10705 // GIR_Coverage, 2797,
10706 GIR_EraseRootFromParent_Done,
10707 // Label 680: @28506
10708 GIM_Try, /*On fail goto*//*Label 681*/ GIMT_Encode4(28538), // Rule ID 2798 //
10709 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
10710 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
10711 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
10712 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
10713 // (bitconvert:{ *:[v8i8] } DPR:{ *:[v4bf16] }:$src) => DPR:{ *:[v8i8] }:$src
10714 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
10715 GIR_RootToRootCopy, /*OpIdx*/0, // dst
10716 GIR_RootToRootCopy, /*OpIdx*/1, // src
10717 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
10718 // GIR_Coverage, 2798,
10719 GIR_EraseRootFromParent_Done,
10720 // Label 681: @28538
10721 GIM_Try, /*On fail goto*//*Label 682*/ GIMT_Encode4(28570), // Rule ID 2799 //
10722 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
10723 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
10724 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
10725 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
10726 // (bitconvert:{ *:[v8i8] } DPR:{ *:[v4i16] }:$src) => DPR:{ *:[v8i8] }:$src
10727 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
10728 GIR_RootToRootCopy, /*OpIdx*/0, // dst
10729 GIR_RootToRootCopy, /*OpIdx*/1, // src
10730 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::DPRRegClassID),
10731 // GIR_Coverage, 2799,
10732 GIR_EraseRootFromParent_Done,
10733 // Label 682: @28570
10734 GIM_Try, /*On fail goto*//*Label 683*/ GIMT_Encode4(28607), // Rule ID 2885 //
10735 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
10736 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
10737 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
10738 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
10739 // (bitconvert:{ *:[v8i8] } DPR:{ *:[f64] }:$src) => (VREV64d8:{ *:[v8i8] } DPR:{ *:[f64] }:$src)
10740 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64d8),
10741 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
10742 GIR_RootToRootCopy, /*OpIdx*/1, // src
10743 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
10744 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
10745 GIR_RootConstrainSelectedInstOperands,
10746 // GIR_Coverage, 2885,
10747 GIR_EraseRootFromParent_Done,
10748 // Label 683: @28607
10749 GIM_Try, /*On fail goto*//*Label 684*/ GIMT_Encode4(28644), // Rule ID 2886 //
10750 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
10751 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
10752 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
10753 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
10754 // (bitconvert:{ *:[v8i8] } DPR:{ *:[v1i64] }:$src) => (VREV64d8:{ *:[v8i8] } DPR:{ *:[v1i64] }:$src)
10755 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64d8),
10756 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
10757 GIR_RootToRootCopy, /*OpIdx*/1, // src
10758 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
10759 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
10760 GIR_RootConstrainSelectedInstOperands,
10761 // GIR_Coverage, 2886,
10762 GIR_EraseRootFromParent_Done,
10763 // Label 684: @28644
10764 GIM_Try, /*On fail goto*//*Label 685*/ GIMT_Encode4(28681), // Rule ID 2887 //
10765 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
10766 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
10767 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
10768 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
10769 // (bitconvert:{ *:[v8i8] } DPR:{ *:[v2f32] }:$src) => (VREV32d8:{ *:[v8i8] } DPR:{ *:[v2f32] }:$src)
10770 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV32d8),
10771 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
10772 GIR_RootToRootCopy, /*OpIdx*/1, // src
10773 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
10774 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
10775 GIR_RootConstrainSelectedInstOperands,
10776 // GIR_Coverage, 2887,
10777 GIR_EraseRootFromParent_Done,
10778 // Label 685: @28681
10779 GIM_Try, /*On fail goto*//*Label 686*/ GIMT_Encode4(28718), // Rule ID 2888 //
10780 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
10781 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
10782 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
10783 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
10784 // (bitconvert:{ *:[v8i8] } DPR:{ *:[v2i32] }:$src) => (VREV32d8:{ *:[v8i8] } DPR:{ *:[v2i32] }:$src)
10785 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV32d8),
10786 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
10787 GIR_RootToRootCopy, /*OpIdx*/1, // src
10788 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
10789 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
10790 GIR_RootConstrainSelectedInstOperands,
10791 // GIR_Coverage, 2888,
10792 GIR_EraseRootFromParent_Done,
10793 // Label 686: @28718
10794 GIM_Try, /*On fail goto*//*Label 687*/ GIMT_Encode4(28755), // Rule ID 2889 //
10795 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
10796 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
10797 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
10798 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
10799 // (bitconvert:{ *:[v8i8] } DPR:{ *:[v4f16] }:$src) => (VREV16d8:{ *:[v8i8] } DPR:{ *:[v4f16] }:$src)
10800 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV16d8),
10801 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
10802 GIR_RootToRootCopy, /*OpIdx*/1, // src
10803 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
10804 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
10805 GIR_RootConstrainSelectedInstOperands,
10806 // GIR_Coverage, 2889,
10807 GIR_EraseRootFromParent_Done,
10808 // Label 687: @28755
10809 GIM_Try, /*On fail goto*//*Label 688*/ GIMT_Encode4(28792), // Rule ID 2890 //
10810 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
10811 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
10812 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
10813 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
10814 // (bitconvert:{ *:[v8i8] } DPR:{ *:[v4bf16] }:$src) => (VREV16d8:{ *:[v8i8] } DPR:{ *:[v4bf16] }:$src)
10815 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV16d8),
10816 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
10817 GIR_RootToRootCopy, /*OpIdx*/1, // src
10818 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
10819 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
10820 GIR_RootConstrainSelectedInstOperands,
10821 // GIR_Coverage, 2890,
10822 GIR_EraseRootFromParent_Done,
10823 // Label 688: @28792
10824 GIM_Try, /*On fail goto*//*Label 689*/ GIMT_Encode4(28829), // Rule ID 2891 //
10825 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
10826 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
10827 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
10828 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
10829 // (bitconvert:{ *:[v8i8] } DPR:{ *:[v4i16] }:$src) => (VREV16d8:{ *:[v8i8] } DPR:{ *:[v4i16] }:$src)
10830 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV16d8),
10831 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
10832 GIR_RootToRootCopy, /*OpIdx*/1, // src
10833 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
10834 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
10835 GIR_RootConstrainSelectedInstOperands,
10836 // GIR_Coverage, 2891,
10837 GIR_EraseRootFromParent_Done,
10838 // Label 689: @28829
10839 GIM_Reject,
10840 // Label 487: @28830
10841 GIM_Try, /*On fail goto*//*Label 690*/ GIMT_Encode4(28862), // Rule ID 2750 //
10842 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
10843 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
10844 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10845 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10846 // (bitconvert:{ *:[v8i16] } QPR:{ *:[v8f16] }:$src) => QPR:{ *:[v8i16] }:$src
10847 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
10848 GIR_RootToRootCopy, /*OpIdx*/0, // dst
10849 GIR_RootToRootCopy, /*OpIdx*/1, // src
10850 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
10851 // GIR_Coverage, 2750,
10852 GIR_EraseRootFromParent_Done,
10853 // Label 690: @28862
10854 GIM_Try, /*On fail goto*//*Label 691*/ GIMT_Encode4(28894), // Rule ID 2751 //
10855 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
10856 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
10857 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10858 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10859 // (bitconvert:{ *:[v8f16] } QPR:{ *:[v8i16] }:$src) => QPR:{ *:[v8f16] }:$src
10860 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
10861 GIR_RootToRootCopy, /*OpIdx*/0, // dst
10862 GIR_RootToRootCopy, /*OpIdx*/1, // src
10863 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
10864 // GIR_Coverage, 2751,
10865 GIR_EraseRootFromParent_Done,
10866 // Label 691: @28894
10867 GIM_Try, /*On fail goto*//*Label 692*/ GIMT_Encode4(28926), // Rule ID 2752 //
10868 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
10869 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
10870 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10871 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10872 // (bitconvert:{ *:[v8i16] } QPR:{ *:[v8bf16] }:$src) => QPR:{ *:[v8i16] }:$src
10873 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
10874 GIR_RootToRootCopy, /*OpIdx*/0, // dst
10875 GIR_RootToRootCopy, /*OpIdx*/1, // src
10876 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
10877 // GIR_Coverage, 2752,
10878 GIR_EraseRootFromParent_Done,
10879 // Label 692: @28926
10880 GIM_Try, /*On fail goto*//*Label 693*/ GIMT_Encode4(28958), // Rule ID 2753 //
10881 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
10882 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
10883 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10884 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10885 // (bitconvert:{ *:[v8bf16] } QPR:{ *:[v8i16] }:$src) => QPR:{ *:[v8bf16] }:$src
10886 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
10887 GIR_RootToRootCopy, /*OpIdx*/0, // dst
10888 GIR_RootToRootCopy, /*OpIdx*/1, // src
10889 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
10890 // GIR_Coverage, 2753,
10891 GIR_EraseRootFromParent_Done,
10892 // Label 693: @28958
10893 GIM_Try, /*On fail goto*//*Label 694*/ GIMT_Encode4(28990), // Rule ID 2824 //
10894 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
10895 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
10896 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10897 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10898 // (bitconvert:{ *:[v8f16] } QPR:{ *:[v2f64] }:$src) => QPR:{ *:[v8f16] }:$src
10899 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
10900 GIR_RootToRootCopy, /*OpIdx*/0, // dst
10901 GIR_RootToRootCopy, /*OpIdx*/1, // src
10902 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
10903 // GIR_Coverage, 2824,
10904 GIR_EraseRootFromParent_Done,
10905 // Label 694: @28990
10906 GIM_Try, /*On fail goto*//*Label 695*/ GIMT_Encode4(29022), // Rule ID 2825 //
10907 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
10908 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
10909 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10910 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10911 // (bitconvert:{ *:[v8f16] } QPR:{ *:[v2i64] }:$src) => QPR:{ *:[v8f16] }:$src
10912 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
10913 GIR_RootToRootCopy, /*OpIdx*/0, // dst
10914 GIR_RootToRootCopy, /*OpIdx*/1, // src
10915 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
10916 // GIR_Coverage, 2825,
10917 GIR_EraseRootFromParent_Done,
10918 // Label 695: @29022
10919 GIM_Try, /*On fail goto*//*Label 696*/ GIMT_Encode4(29054), // Rule ID 2826 //
10920 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
10921 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
10922 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10923 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10924 // (bitconvert:{ *:[v8f16] } QPR:{ *:[v4f32] }:$src) => QPR:{ *:[v8f16] }:$src
10925 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
10926 GIR_RootToRootCopy, /*OpIdx*/0, // dst
10927 GIR_RootToRootCopy, /*OpIdx*/1, // src
10928 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
10929 // GIR_Coverage, 2826,
10930 GIR_EraseRootFromParent_Done,
10931 // Label 696: @29054
10932 GIM_Try, /*On fail goto*//*Label 697*/ GIMT_Encode4(29086), // Rule ID 2827 //
10933 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
10934 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
10935 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10936 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10937 // (bitconvert:{ *:[v8f16] } QPR:{ *:[v4i32] }:$src) => QPR:{ *:[v8f16] }:$src
10938 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
10939 GIR_RootToRootCopy, /*OpIdx*/0, // dst
10940 GIR_RootToRootCopy, /*OpIdx*/1, // src
10941 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
10942 // GIR_Coverage, 2827,
10943 GIR_EraseRootFromParent_Done,
10944 // Label 697: @29086
10945 GIM_Try, /*On fail goto*//*Label 698*/ GIMT_Encode4(29118), // Rule ID 2828 //
10946 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
10947 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
10948 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10949 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10950 // (bitconvert:{ *:[v8f16] } QPR:{ *:[v16i8] }:$src) => QPR:{ *:[v8f16] }:$src
10951 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
10952 GIR_RootToRootCopy, /*OpIdx*/0, // dst
10953 GIR_RootToRootCopy, /*OpIdx*/1, // src
10954 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
10955 // GIR_Coverage, 2828,
10956 GIR_EraseRootFromParent_Done,
10957 // Label 698: @29118
10958 GIM_Try, /*On fail goto*//*Label 699*/ GIMT_Encode4(29150), // Rule ID 2829 //
10959 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
10960 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
10961 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10962 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10963 // (bitconvert:{ *:[v8bf16] } QPR:{ *:[v2f64] }:$src) => QPR:{ *:[v8bf16] }:$src
10964 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
10965 GIR_RootToRootCopy, /*OpIdx*/0, // dst
10966 GIR_RootToRootCopy, /*OpIdx*/1, // src
10967 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
10968 // GIR_Coverage, 2829,
10969 GIR_EraseRootFromParent_Done,
10970 // Label 699: @29150
10971 GIM_Try, /*On fail goto*//*Label 700*/ GIMT_Encode4(29182), // Rule ID 2830 //
10972 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
10973 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
10974 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10975 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10976 // (bitconvert:{ *:[v8bf16] } QPR:{ *:[v2i64] }:$src) => QPR:{ *:[v8bf16] }:$src
10977 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
10978 GIR_RootToRootCopy, /*OpIdx*/0, // dst
10979 GIR_RootToRootCopy, /*OpIdx*/1, // src
10980 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
10981 // GIR_Coverage, 2830,
10982 GIR_EraseRootFromParent_Done,
10983 // Label 700: @29182
10984 GIM_Try, /*On fail goto*//*Label 701*/ GIMT_Encode4(29214), // Rule ID 2831 //
10985 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
10986 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
10987 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10988 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
10989 // (bitconvert:{ *:[v8bf16] } QPR:{ *:[v4f32] }:$src) => QPR:{ *:[v8bf16] }:$src
10990 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
10991 GIR_RootToRootCopy, /*OpIdx*/0, // dst
10992 GIR_RootToRootCopy, /*OpIdx*/1, // src
10993 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
10994 // GIR_Coverage, 2831,
10995 GIR_EraseRootFromParent_Done,
10996 // Label 701: @29214
10997 GIM_Try, /*On fail goto*//*Label 702*/ GIMT_Encode4(29246), // Rule ID 2832 //
10998 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
10999 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
11000 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11001 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11002 // (bitconvert:{ *:[v8bf16] } QPR:{ *:[v4i32] }:$src) => QPR:{ *:[v8bf16] }:$src
11003 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
11004 GIR_RootToRootCopy, /*OpIdx*/0, // dst
11005 GIR_RootToRootCopy, /*OpIdx*/1, // src
11006 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
11007 // GIR_Coverage, 2832,
11008 GIR_EraseRootFromParent_Done,
11009 // Label 702: @29246
11010 GIM_Try, /*On fail goto*//*Label 703*/ GIMT_Encode4(29278), // Rule ID 2833 //
11011 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
11012 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
11013 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11014 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11015 // (bitconvert:{ *:[v8bf16] } QPR:{ *:[v16i8] }:$src) => QPR:{ *:[v8bf16] }:$src
11016 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
11017 GIR_RootToRootCopy, /*OpIdx*/0, // dst
11018 GIR_RootToRootCopy, /*OpIdx*/1, // src
11019 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
11020 // GIR_Coverage, 2833,
11021 GIR_EraseRootFromParent_Done,
11022 // Label 703: @29278
11023 GIM_Try, /*On fail goto*//*Label 704*/ GIMT_Encode4(29310), // Rule ID 2834 //
11024 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
11025 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
11026 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11027 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11028 // (bitconvert:{ *:[v8i16] } QPR:{ *:[v2f64] }:$src) => QPR:{ *:[v8i16] }:$src
11029 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
11030 GIR_RootToRootCopy, /*OpIdx*/0, // dst
11031 GIR_RootToRootCopy, /*OpIdx*/1, // src
11032 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
11033 // GIR_Coverage, 2834,
11034 GIR_EraseRootFromParent_Done,
11035 // Label 704: @29310
11036 GIM_Try, /*On fail goto*//*Label 705*/ GIMT_Encode4(29342), // Rule ID 2835 //
11037 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
11038 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
11039 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11040 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11041 // (bitconvert:{ *:[v8i16] } QPR:{ *:[v2i64] }:$src) => QPR:{ *:[v8i16] }:$src
11042 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
11043 GIR_RootToRootCopy, /*OpIdx*/0, // dst
11044 GIR_RootToRootCopy, /*OpIdx*/1, // src
11045 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
11046 // GIR_Coverage, 2835,
11047 GIR_EraseRootFromParent_Done,
11048 // Label 705: @29342
11049 GIM_Try, /*On fail goto*//*Label 706*/ GIMT_Encode4(29374), // Rule ID 2836 //
11050 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
11051 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
11052 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11053 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11054 // (bitconvert:{ *:[v8i16] } QPR:{ *:[v4f32] }:$src) => QPR:{ *:[v8i16] }:$src
11055 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
11056 GIR_RootToRootCopy, /*OpIdx*/0, // dst
11057 GIR_RootToRootCopy, /*OpIdx*/1, // src
11058 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
11059 // GIR_Coverage, 2836,
11060 GIR_EraseRootFromParent_Done,
11061 // Label 706: @29374
11062 GIM_Try, /*On fail goto*//*Label 707*/ GIMT_Encode4(29406), // Rule ID 2837 //
11063 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
11064 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
11065 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11066 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11067 // (bitconvert:{ *:[v8i16] } QPR:{ *:[v4i32] }:$src) => QPR:{ *:[v8i16] }:$src
11068 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
11069 GIR_RootToRootCopy, /*OpIdx*/0, // dst
11070 GIR_RootToRootCopy, /*OpIdx*/1, // src
11071 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
11072 // GIR_Coverage, 2837,
11073 GIR_EraseRootFromParent_Done,
11074 // Label 707: @29406
11075 GIM_Try, /*On fail goto*//*Label 708*/ GIMT_Encode4(29438), // Rule ID 2838 //
11076 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
11077 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
11078 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11079 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11080 // (bitconvert:{ *:[v8i16] } QPR:{ *:[v16i8] }:$src) => QPR:{ *:[v8i16] }:$src
11081 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
11082 GIR_RootToRootCopy, /*OpIdx*/0, // dst
11083 GIR_RootToRootCopy, /*OpIdx*/1, // src
11084 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
11085 // GIR_Coverage, 2838,
11086 GIR_EraseRootFromParent_Done,
11087 // Label 708: @29438
11088 GIM_Try, /*On fail goto*//*Label 709*/ GIMT_Encode4(29475), // Rule ID 2916 //
11089 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
11090 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
11091 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11092 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11093 // (bitconvert:{ *:[v8f16] } QPR:{ *:[v2f64] }:$src) => (VREV64q16:{ *:[v8f16] } QPR:{ *:[v2f64] }:$src)
11094 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64q16),
11095 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
11096 GIR_RootToRootCopy, /*OpIdx*/1, // src
11097 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
11098 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11099 GIR_RootConstrainSelectedInstOperands,
11100 // GIR_Coverage, 2916,
11101 GIR_EraseRootFromParent_Done,
11102 // Label 709: @29475
11103 GIM_Try, /*On fail goto*//*Label 710*/ GIMT_Encode4(29512), // Rule ID 2917 //
11104 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
11105 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
11106 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11107 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11108 // (bitconvert:{ *:[v8f16] } QPR:{ *:[v2i64] }:$src) => (VREV64q16:{ *:[v8f16] } QPR:{ *:[v2i64] }:$src)
11109 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64q16),
11110 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
11111 GIR_RootToRootCopy, /*OpIdx*/1, // src
11112 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
11113 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11114 GIR_RootConstrainSelectedInstOperands,
11115 // GIR_Coverage, 2917,
11116 GIR_EraseRootFromParent_Done,
11117 // Label 710: @29512
11118 GIM_Try, /*On fail goto*//*Label 711*/ GIMT_Encode4(29549), // Rule ID 2918 //
11119 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
11120 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
11121 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11122 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11123 // (bitconvert:{ *:[v8f16] } QPR:{ *:[v4f32] }:$src) => (VREV32q16:{ *:[v8f16] } QPR:{ *:[v4f32] }:$src)
11124 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV32q16),
11125 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
11126 GIR_RootToRootCopy, /*OpIdx*/1, // src
11127 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
11128 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11129 GIR_RootConstrainSelectedInstOperands,
11130 // GIR_Coverage, 2918,
11131 GIR_EraseRootFromParent_Done,
11132 // Label 711: @29549
11133 GIM_Try, /*On fail goto*//*Label 712*/ GIMT_Encode4(29586), // Rule ID 2919 //
11134 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
11135 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
11136 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11137 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11138 // (bitconvert:{ *:[v8f16] } QPR:{ *:[v4i32] }:$src) => (VREV32q16:{ *:[v8f16] } QPR:{ *:[v4i32] }:$src)
11139 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV32q16),
11140 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
11141 GIR_RootToRootCopy, /*OpIdx*/1, // src
11142 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
11143 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11144 GIR_RootConstrainSelectedInstOperands,
11145 // GIR_Coverage, 2919,
11146 GIR_EraseRootFromParent_Done,
11147 // Label 712: @29586
11148 GIM_Try, /*On fail goto*//*Label 713*/ GIMT_Encode4(29623), // Rule ID 2920 //
11149 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
11150 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
11151 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11152 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11153 // (bitconvert:{ *:[v8f16] } QPR:{ *:[v16i8] }:$src) => (VREV16q8:{ *:[v8f16] } QPR:{ *:[v16i8] }:$src)
11154 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV16q8),
11155 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
11156 GIR_RootToRootCopy, /*OpIdx*/1, // src
11157 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
11158 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11159 GIR_RootConstrainSelectedInstOperands,
11160 // GIR_Coverage, 2920,
11161 GIR_EraseRootFromParent_Done,
11162 // Label 713: @29623
11163 GIM_Try, /*On fail goto*//*Label 714*/ GIMT_Encode4(29660), // Rule ID 2921 //
11164 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
11165 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
11166 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11167 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11168 // (bitconvert:{ *:[v8bf16] } QPR:{ *:[v2f64] }:$src) => (VREV64q16:{ *:[v8bf16] } QPR:{ *:[v2f64] }:$src)
11169 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64q16),
11170 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
11171 GIR_RootToRootCopy, /*OpIdx*/1, // src
11172 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
11173 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11174 GIR_RootConstrainSelectedInstOperands,
11175 // GIR_Coverage, 2921,
11176 GIR_EraseRootFromParent_Done,
11177 // Label 714: @29660
11178 GIM_Try, /*On fail goto*//*Label 715*/ GIMT_Encode4(29697), // Rule ID 2922 //
11179 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
11180 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
11181 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11182 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11183 // (bitconvert:{ *:[v8bf16] } QPR:{ *:[v2i64] }:$src) => (VREV64q16:{ *:[v8bf16] } QPR:{ *:[v2i64] }:$src)
11184 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64q16),
11185 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
11186 GIR_RootToRootCopy, /*OpIdx*/1, // src
11187 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
11188 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11189 GIR_RootConstrainSelectedInstOperands,
11190 // GIR_Coverage, 2922,
11191 GIR_EraseRootFromParent_Done,
11192 // Label 715: @29697
11193 GIM_Try, /*On fail goto*//*Label 716*/ GIMT_Encode4(29734), // Rule ID 2923 //
11194 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
11195 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
11196 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11197 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11198 // (bitconvert:{ *:[v8bf16] } QPR:{ *:[v4f32] }:$src) => (VREV32q16:{ *:[v8bf16] } QPR:{ *:[v4f32] }:$src)
11199 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV32q16),
11200 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
11201 GIR_RootToRootCopy, /*OpIdx*/1, // src
11202 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
11203 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11204 GIR_RootConstrainSelectedInstOperands,
11205 // GIR_Coverage, 2923,
11206 GIR_EraseRootFromParent_Done,
11207 // Label 716: @29734
11208 GIM_Try, /*On fail goto*//*Label 717*/ GIMT_Encode4(29771), // Rule ID 2924 //
11209 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
11210 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
11211 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11212 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11213 // (bitconvert:{ *:[v8bf16] } QPR:{ *:[v4i32] }:$src) => (VREV32q16:{ *:[v8bf16] } QPR:{ *:[v4i32] }:$src)
11214 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV32q16),
11215 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
11216 GIR_RootToRootCopy, /*OpIdx*/1, // src
11217 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
11218 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11219 GIR_RootConstrainSelectedInstOperands,
11220 // GIR_Coverage, 2924,
11221 GIR_EraseRootFromParent_Done,
11222 // Label 717: @29771
11223 GIM_Try, /*On fail goto*//*Label 718*/ GIMT_Encode4(29808), // Rule ID 2925 //
11224 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
11225 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
11226 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11227 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11228 // (bitconvert:{ *:[v8bf16] } QPR:{ *:[v16i8] }:$src) => (VREV16q8:{ *:[v8bf16] } QPR:{ *:[v16i8] }:$src)
11229 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV16q8),
11230 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
11231 GIR_RootToRootCopy, /*OpIdx*/1, // src
11232 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
11233 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11234 GIR_RootConstrainSelectedInstOperands,
11235 // GIR_Coverage, 2925,
11236 GIR_EraseRootFromParent_Done,
11237 // Label 718: @29808
11238 GIM_Try, /*On fail goto*//*Label 719*/ GIMT_Encode4(29845), // Rule ID 2926 //
11239 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
11240 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
11241 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11242 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11243 // (bitconvert:{ *:[v8i16] } QPR:{ *:[v2f64] }:$src) => (VREV64q16:{ *:[v8i16] } QPR:{ *:[v2f64] }:$src)
11244 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64q16),
11245 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
11246 GIR_RootToRootCopy, /*OpIdx*/1, // src
11247 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
11248 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11249 GIR_RootConstrainSelectedInstOperands,
11250 // GIR_Coverage, 2926,
11251 GIR_EraseRootFromParent_Done,
11252 // Label 719: @29845
11253 GIM_Try, /*On fail goto*//*Label 720*/ GIMT_Encode4(29882), // Rule ID 2927 //
11254 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
11255 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
11256 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11257 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11258 // (bitconvert:{ *:[v8i16] } QPR:{ *:[v2i64] }:$src) => (VREV64q16:{ *:[v8i16] } QPR:{ *:[v2i64] }:$src)
11259 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64q16),
11260 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
11261 GIR_RootToRootCopy, /*OpIdx*/1, // src
11262 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
11263 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11264 GIR_RootConstrainSelectedInstOperands,
11265 // GIR_Coverage, 2927,
11266 GIR_EraseRootFromParent_Done,
11267 // Label 720: @29882
11268 GIM_Try, /*On fail goto*//*Label 721*/ GIMT_Encode4(29919), // Rule ID 2928 //
11269 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
11270 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
11271 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11272 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11273 // (bitconvert:{ *:[v8i16] } QPR:{ *:[v4f32] }:$src) => (VREV32q16:{ *:[v8i16] } QPR:{ *:[v4f32] }:$src)
11274 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV32q16),
11275 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
11276 GIR_RootToRootCopy, /*OpIdx*/1, // src
11277 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
11278 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11279 GIR_RootConstrainSelectedInstOperands,
11280 // GIR_Coverage, 2928,
11281 GIR_EraseRootFromParent_Done,
11282 // Label 721: @29919
11283 GIM_Try, /*On fail goto*//*Label 722*/ GIMT_Encode4(29956), // Rule ID 2929 //
11284 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
11285 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
11286 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11287 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11288 // (bitconvert:{ *:[v8i16] } QPR:{ *:[v4i32] }:$src) => (VREV32q16:{ *:[v8i16] } QPR:{ *:[v4i32] }:$src)
11289 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV32q16),
11290 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
11291 GIR_RootToRootCopy, /*OpIdx*/1, // src
11292 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
11293 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11294 GIR_RootConstrainSelectedInstOperands,
11295 // GIR_Coverage, 2929,
11296 GIR_EraseRootFromParent_Done,
11297 // Label 722: @29956
11298 GIM_Try, /*On fail goto*//*Label 723*/ GIMT_Encode4(29993), // Rule ID 2930 //
11299 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
11300 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
11301 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11302 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11303 // (bitconvert:{ *:[v8i16] } QPR:{ *:[v16i8] }:$src) => (VREV16q8:{ *:[v8i16] } QPR:{ *:[v16i8] }:$src)
11304 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV16q8),
11305 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
11306 GIR_RootToRootCopy, /*OpIdx*/1, // src
11307 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
11308 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11309 GIR_RootConstrainSelectedInstOperands,
11310 // GIR_Coverage, 2930,
11311 GIR_EraseRootFromParent_Done,
11312 // Label 723: @29993
11313 GIM_Try, /*On fail goto*//*Label 724*/ GIMT_Encode4(30025), // Rule ID 5404 //
11314 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
11315 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
11316 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11317 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11318 // (bitconvert:{ *:[v8i16] } MQPR:{ *:[v8f16] }:$src) => MQPR:{ *:[v8i16] }:$src
11319 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
11320 GIR_RootToRootCopy, /*OpIdx*/0, // dst
11321 GIR_RootToRootCopy, /*OpIdx*/1, // src
11322 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::MQPRRegClassID),
11323 // GIR_Coverage, 5404,
11324 GIR_EraseRootFromParent_Done,
11325 // Label 724: @30025
11326 GIM_Try, /*On fail goto*//*Label 725*/ GIMT_Encode4(30057), // Rule ID 5405 //
11327 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
11328 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
11329 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11330 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11331 // (bitconvert:{ *:[v8f16] } MQPR:{ *:[v8i16] }:$src) => MQPR:{ *:[v8f16] }:$src
11332 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
11333 GIR_RootToRootCopy, /*OpIdx*/0, // dst
11334 GIR_RootToRootCopy, /*OpIdx*/1, // src
11335 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::MQPRRegClassID),
11336 // GIR_Coverage, 5405,
11337 GIR_EraseRootFromParent_Done,
11338 // Label 725: @30057
11339 GIM_Try, /*On fail goto*//*Label 726*/ GIMT_Encode4(30089), // Rule ID 5426 //
11340 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
11341 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
11342 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11343 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11344 // (bitconvert:{ *:[v8f16] } MQPR:{ *:[v2f64] }:$src) => MQPR:{ *:[v8f16] }:$src
11345 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
11346 GIR_RootToRootCopy, /*OpIdx*/0, // dst
11347 GIR_RootToRootCopy, /*OpIdx*/1, // src
11348 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::MQPRRegClassID),
11349 // GIR_Coverage, 5426,
11350 GIR_EraseRootFromParent_Done,
11351 // Label 726: @30089
11352 GIM_Try, /*On fail goto*//*Label 727*/ GIMT_Encode4(30121), // Rule ID 5427 //
11353 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
11354 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
11355 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11356 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11357 // (bitconvert:{ *:[v8f16] } MQPR:{ *:[v2i64] }:$src) => MQPR:{ *:[v8f16] }:$src
11358 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
11359 GIR_RootToRootCopy, /*OpIdx*/0, // dst
11360 GIR_RootToRootCopy, /*OpIdx*/1, // src
11361 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::MQPRRegClassID),
11362 // GIR_Coverage, 5427,
11363 GIR_EraseRootFromParent_Done,
11364 // Label 727: @30121
11365 GIM_Try, /*On fail goto*//*Label 728*/ GIMT_Encode4(30153), // Rule ID 5428 //
11366 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
11367 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
11368 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11369 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11370 // (bitconvert:{ *:[v8f16] } MQPR:{ *:[v4f32] }:$src) => MQPR:{ *:[v8f16] }:$src
11371 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
11372 GIR_RootToRootCopy, /*OpIdx*/0, // dst
11373 GIR_RootToRootCopy, /*OpIdx*/1, // src
11374 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::MQPRRegClassID),
11375 // GIR_Coverage, 5428,
11376 GIR_EraseRootFromParent_Done,
11377 // Label 728: @30153
11378 GIM_Try, /*On fail goto*//*Label 729*/ GIMT_Encode4(30185), // Rule ID 5429 //
11379 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
11380 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
11381 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11382 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11383 // (bitconvert:{ *:[v8f16] } MQPR:{ *:[v4i32] }:$src) => MQPR:{ *:[v8f16] }:$src
11384 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
11385 GIR_RootToRootCopy, /*OpIdx*/0, // dst
11386 GIR_RootToRootCopy, /*OpIdx*/1, // src
11387 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::MQPRRegClassID),
11388 // GIR_Coverage, 5429,
11389 GIR_EraseRootFromParent_Done,
11390 // Label 729: @30185
11391 GIM_Try, /*On fail goto*//*Label 730*/ GIMT_Encode4(30217), // Rule ID 5430 //
11392 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
11393 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
11394 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11395 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11396 // (bitconvert:{ *:[v8f16] } MQPR:{ *:[v16i8] }:$src) => MQPR:{ *:[v8f16] }:$src
11397 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
11398 GIR_RootToRootCopy, /*OpIdx*/0, // dst
11399 GIR_RootToRootCopy, /*OpIdx*/1, // src
11400 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::MQPRRegClassID),
11401 // GIR_Coverage, 5430,
11402 GIR_EraseRootFromParent_Done,
11403 // Label 730: @30217
11404 GIM_Try, /*On fail goto*//*Label 731*/ GIMT_Encode4(30249), // Rule ID 5431 //
11405 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
11406 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
11407 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11408 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11409 // (bitconvert:{ *:[v8i16] } MQPR:{ *:[v2f64] }:$src) => MQPR:{ *:[v8i16] }:$src
11410 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
11411 GIR_RootToRootCopy, /*OpIdx*/0, // dst
11412 GIR_RootToRootCopy, /*OpIdx*/1, // src
11413 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::MQPRRegClassID),
11414 // GIR_Coverage, 5431,
11415 GIR_EraseRootFromParent_Done,
11416 // Label 731: @30249
11417 GIM_Try, /*On fail goto*//*Label 732*/ GIMT_Encode4(30281), // Rule ID 5432 //
11418 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
11419 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
11420 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11421 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11422 // (bitconvert:{ *:[v8i16] } MQPR:{ *:[v2i64] }:$src) => MQPR:{ *:[v8i16] }:$src
11423 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
11424 GIR_RootToRootCopy, /*OpIdx*/0, // dst
11425 GIR_RootToRootCopy, /*OpIdx*/1, // src
11426 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::MQPRRegClassID),
11427 // GIR_Coverage, 5432,
11428 GIR_EraseRootFromParent_Done,
11429 // Label 732: @30281
11430 GIM_Try, /*On fail goto*//*Label 733*/ GIMT_Encode4(30313), // Rule ID 5433 //
11431 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
11432 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
11433 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11434 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11435 // (bitconvert:{ *:[v8i16] } MQPR:{ *:[v4f32] }:$src) => MQPR:{ *:[v8i16] }:$src
11436 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
11437 GIR_RootToRootCopy, /*OpIdx*/0, // dst
11438 GIR_RootToRootCopy, /*OpIdx*/1, // src
11439 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::MQPRRegClassID),
11440 // GIR_Coverage, 5433,
11441 GIR_EraseRootFromParent_Done,
11442 // Label 733: @30313
11443 GIM_Try, /*On fail goto*//*Label 734*/ GIMT_Encode4(30345), // Rule ID 5434 //
11444 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
11445 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
11446 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11447 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11448 // (bitconvert:{ *:[v8i16] } MQPR:{ *:[v4i32] }:$src) => MQPR:{ *:[v8i16] }:$src
11449 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
11450 GIR_RootToRootCopy, /*OpIdx*/0, // dst
11451 GIR_RootToRootCopy, /*OpIdx*/1, // src
11452 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::MQPRRegClassID),
11453 // GIR_Coverage, 5434,
11454 GIR_EraseRootFromParent_Done,
11455 // Label 734: @30345
11456 GIM_Try, /*On fail goto*//*Label 735*/ GIMT_Encode4(30377), // Rule ID 5435 //
11457 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
11458 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
11459 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11460 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11461 // (bitconvert:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$src) => MQPR:{ *:[v8i16] }:$src
11462 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
11463 GIR_RootToRootCopy, /*OpIdx*/0, // dst
11464 GIR_RootToRootCopy, /*OpIdx*/1, // src
11465 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::MQPRRegClassID),
11466 // GIR_Coverage, 5435,
11467 GIR_EraseRootFromParent_Done,
11468 // Label 735: @30377
11469 GIM_Try, /*On fail goto*//*Label 736*/ GIMT_Encode4(30433), // Rule ID 5462 //
11470 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
11471 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
11472 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11473 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11474 // (bitconvert:{ *:[v8f16] } MQPR:{ *:[v2f64] }:$src) => (MVE_VREV64_16:{ *:[v8f16] } MQPR:{ *:[v2f64] }:$src)
11475 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
11476 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
11477 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
11478 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VREV64_16),
11479 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
11480 GIR_RootToRootCopy, /*OpIdx*/1, // src
11481 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
11482 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11483 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11484 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
11485 GIR_RootConstrainSelectedInstOperands,
11486 // GIR_Coverage, 5462,
11487 GIR_EraseRootFromParent_Done,
11488 // Label 736: @30433
11489 GIM_Try, /*On fail goto*//*Label 737*/ GIMT_Encode4(30489), // Rule ID 5463 //
11490 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
11491 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
11492 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11493 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11494 // (bitconvert:{ *:[v8f16] } MQPR:{ *:[v2i64] }:$src) => (MVE_VREV64_16:{ *:[v8f16] } MQPR:{ *:[v2i64] }:$src)
11495 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
11496 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
11497 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
11498 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VREV64_16),
11499 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
11500 GIR_RootToRootCopy, /*OpIdx*/1, // src
11501 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
11502 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11503 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11504 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
11505 GIR_RootConstrainSelectedInstOperands,
11506 // GIR_Coverage, 5463,
11507 GIR_EraseRootFromParent_Done,
11508 // Label 737: @30489
11509 GIM_Try, /*On fail goto*//*Label 738*/ GIMT_Encode4(30545), // Rule ID 5464 //
11510 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
11511 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
11512 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11513 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11514 // (bitconvert:{ *:[v8f16] } MQPR:{ *:[v4f32] }:$src) => (MVE_VREV32_16:{ *:[v8f16] } MQPR:{ *:[v4f32] }:$src)
11515 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
11516 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
11517 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
11518 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VREV32_16),
11519 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
11520 GIR_RootToRootCopy, /*OpIdx*/1, // src
11521 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
11522 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11523 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11524 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
11525 GIR_RootConstrainSelectedInstOperands,
11526 // GIR_Coverage, 5464,
11527 GIR_EraseRootFromParent_Done,
11528 // Label 738: @30545
11529 GIM_Try, /*On fail goto*//*Label 739*/ GIMT_Encode4(30601), // Rule ID 5465 //
11530 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
11531 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
11532 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11533 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11534 // (bitconvert:{ *:[v8f16] } MQPR:{ *:[v4i32] }:$src) => (MVE_VREV32_16:{ *:[v8f16] } MQPR:{ *:[v4i32] }:$src)
11535 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
11536 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
11537 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
11538 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VREV32_16),
11539 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
11540 GIR_RootToRootCopy, /*OpIdx*/1, // src
11541 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
11542 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11543 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11544 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
11545 GIR_RootConstrainSelectedInstOperands,
11546 // GIR_Coverage, 5465,
11547 GIR_EraseRootFromParent_Done,
11548 // Label 739: @30601
11549 GIM_Try, /*On fail goto*//*Label 740*/ GIMT_Encode4(30657), // Rule ID 5466 //
11550 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
11551 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
11552 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11553 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11554 // (bitconvert:{ *:[v8f16] } MQPR:{ *:[v16i8] }:$src) => (MVE_VREV16_8:{ *:[v8f16] } MQPR:{ *:[v16i8] }:$src)
11555 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
11556 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
11557 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
11558 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VREV16_8),
11559 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
11560 GIR_RootToRootCopy, /*OpIdx*/1, // src
11561 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
11562 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11563 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11564 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
11565 GIR_RootConstrainSelectedInstOperands,
11566 // GIR_Coverage, 5466,
11567 GIR_EraseRootFromParent_Done,
11568 // Label 740: @30657
11569 GIM_Try, /*On fail goto*//*Label 741*/ GIMT_Encode4(30713), // Rule ID 5467 //
11570 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
11571 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
11572 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11573 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11574 // (bitconvert:{ *:[v8i16] } MQPR:{ *:[v2f64] }:$src) => (MVE_VREV64_16:{ *:[v8i16] } MQPR:{ *:[v2f64] }:$src)
11575 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
11576 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
11577 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
11578 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VREV64_16),
11579 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
11580 GIR_RootToRootCopy, /*OpIdx*/1, // src
11581 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
11582 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11583 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11584 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
11585 GIR_RootConstrainSelectedInstOperands,
11586 // GIR_Coverage, 5467,
11587 GIR_EraseRootFromParent_Done,
11588 // Label 741: @30713
11589 GIM_Try, /*On fail goto*//*Label 742*/ GIMT_Encode4(30769), // Rule ID 5468 //
11590 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
11591 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
11592 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11593 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11594 // (bitconvert:{ *:[v8i16] } MQPR:{ *:[v2i64] }:$src) => (MVE_VREV64_16:{ *:[v8i16] } MQPR:{ *:[v2i64] }:$src)
11595 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
11596 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
11597 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
11598 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VREV64_16),
11599 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
11600 GIR_RootToRootCopy, /*OpIdx*/1, // src
11601 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
11602 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11603 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11604 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
11605 GIR_RootConstrainSelectedInstOperands,
11606 // GIR_Coverage, 5468,
11607 GIR_EraseRootFromParent_Done,
11608 // Label 742: @30769
11609 GIM_Try, /*On fail goto*//*Label 743*/ GIMT_Encode4(30825), // Rule ID 5469 //
11610 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
11611 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
11612 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11613 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11614 // (bitconvert:{ *:[v8i16] } MQPR:{ *:[v4f32] }:$src) => (MVE_VREV32_16:{ *:[v8i16] } MQPR:{ *:[v4f32] }:$src)
11615 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
11616 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
11617 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
11618 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VREV32_16),
11619 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
11620 GIR_RootToRootCopy, /*OpIdx*/1, // src
11621 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
11622 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11623 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11624 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
11625 GIR_RootConstrainSelectedInstOperands,
11626 // GIR_Coverage, 5469,
11627 GIR_EraseRootFromParent_Done,
11628 // Label 743: @30825
11629 GIM_Try, /*On fail goto*//*Label 744*/ GIMT_Encode4(30881), // Rule ID 5470 //
11630 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
11631 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
11632 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11633 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11634 // (bitconvert:{ *:[v8i16] } MQPR:{ *:[v4i32] }:$src) => (MVE_VREV32_16:{ *:[v8i16] } MQPR:{ *:[v4i32] }:$src)
11635 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
11636 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
11637 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
11638 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VREV32_16),
11639 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
11640 GIR_RootToRootCopy, /*OpIdx*/1, // src
11641 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
11642 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11643 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11644 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
11645 GIR_RootConstrainSelectedInstOperands,
11646 // GIR_Coverage, 5470,
11647 GIR_EraseRootFromParent_Done,
11648 // Label 744: @30881
11649 GIM_Try, /*On fail goto*//*Label 745*/ GIMT_Encode4(30937), // Rule ID 5471 //
11650 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
11651 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
11652 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11653 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11654 // (bitconvert:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$src) => (MVE_VREV16_8:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$src)
11655 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
11656 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
11657 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
11658 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VREV16_8),
11659 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
11660 GIR_RootToRootCopy, /*OpIdx*/1, // src
11661 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
11662 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11663 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11664 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
11665 GIR_RootConstrainSelectedInstOperands,
11666 // GIR_Coverage, 5471,
11667 GIR_EraseRootFromParent_Done,
11668 // Label 745: @30937
11669 GIM_Reject,
11670 // Label 488: @30938
11671 GIM_Try, /*On fail goto*//*Label 746*/ GIMT_Encode4(30970), // Rule ID 2839 //
11672 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
11673 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
11674 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11675 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11676 // (bitconvert:{ *:[v16i8] } QPR:{ *:[v2f64] }:$src) => QPR:{ *:[v16i8] }:$src
11677 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
11678 GIR_RootToRootCopy, /*OpIdx*/0, // dst
11679 GIR_RootToRootCopy, /*OpIdx*/1, // src
11680 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
11681 // GIR_Coverage, 2839,
11682 GIR_EraseRootFromParent_Done,
11683 // Label 746: @30970
11684 GIM_Try, /*On fail goto*//*Label 747*/ GIMT_Encode4(31002), // Rule ID 2840 //
11685 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
11686 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
11687 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11688 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11689 // (bitconvert:{ *:[v16i8] } QPR:{ *:[v2i64] }:$src) => QPR:{ *:[v16i8] }:$src
11690 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
11691 GIR_RootToRootCopy, /*OpIdx*/0, // dst
11692 GIR_RootToRootCopy, /*OpIdx*/1, // src
11693 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
11694 // GIR_Coverage, 2840,
11695 GIR_EraseRootFromParent_Done,
11696 // Label 747: @31002
11697 GIM_Try, /*On fail goto*//*Label 748*/ GIMT_Encode4(31034), // Rule ID 2841 //
11698 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
11699 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
11700 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11701 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11702 // (bitconvert:{ *:[v16i8] } QPR:{ *:[v4f32] }:$src) => QPR:{ *:[v16i8] }:$src
11703 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
11704 GIR_RootToRootCopy, /*OpIdx*/0, // dst
11705 GIR_RootToRootCopy, /*OpIdx*/1, // src
11706 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
11707 // GIR_Coverage, 2841,
11708 GIR_EraseRootFromParent_Done,
11709 // Label 748: @31034
11710 GIM_Try, /*On fail goto*//*Label 749*/ GIMT_Encode4(31066), // Rule ID 2842 //
11711 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
11712 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
11713 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11714 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11715 // (bitconvert:{ *:[v16i8] } QPR:{ *:[v4i32] }:$src) => QPR:{ *:[v16i8] }:$src
11716 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
11717 GIR_RootToRootCopy, /*OpIdx*/0, // dst
11718 GIR_RootToRootCopy, /*OpIdx*/1, // src
11719 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
11720 // GIR_Coverage, 2842,
11721 GIR_EraseRootFromParent_Done,
11722 // Label 749: @31066
11723 GIM_Try, /*On fail goto*//*Label 750*/ GIMT_Encode4(31098), // Rule ID 2843 //
11724 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
11725 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
11726 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11727 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11728 // (bitconvert:{ *:[v16i8] } QPR:{ *:[v8f16] }:$src) => QPR:{ *:[v16i8] }:$src
11729 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
11730 GIR_RootToRootCopy, /*OpIdx*/0, // dst
11731 GIR_RootToRootCopy, /*OpIdx*/1, // src
11732 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
11733 // GIR_Coverage, 2843,
11734 GIR_EraseRootFromParent_Done,
11735 // Label 750: @31098
11736 GIM_Try, /*On fail goto*//*Label 751*/ GIMT_Encode4(31130), // Rule ID 2844 //
11737 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
11738 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
11739 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11740 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11741 // (bitconvert:{ *:[v16i8] } QPR:{ *:[v8bf16] }:$src) => QPR:{ *:[v16i8] }:$src
11742 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
11743 GIR_RootToRootCopy, /*OpIdx*/0, // dst
11744 GIR_RootToRootCopy, /*OpIdx*/1, // src
11745 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
11746 // GIR_Coverage, 2844,
11747 GIR_EraseRootFromParent_Done,
11748 // Label 751: @31130
11749 GIM_Try, /*On fail goto*//*Label 752*/ GIMT_Encode4(31162), // Rule ID 2845 //
11750 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
11751 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
11752 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11753 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11754 // (bitconvert:{ *:[v16i8] } QPR:{ *:[v8i16] }:$src) => QPR:{ *:[v16i8] }:$src
11755 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
11756 GIR_RootToRootCopy, /*OpIdx*/0, // dst
11757 GIR_RootToRootCopy, /*OpIdx*/1, // src
11758 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::QPRRegClassID),
11759 // GIR_Coverage, 2845,
11760 GIR_EraseRootFromParent_Done,
11761 // Label 752: @31162
11762 GIM_Try, /*On fail goto*//*Label 753*/ GIMT_Encode4(31199), // Rule ID 2931 //
11763 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
11764 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
11765 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11766 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11767 // (bitconvert:{ *:[v16i8] } QPR:{ *:[v2f64] }:$src) => (VREV64q8:{ *:[v16i8] } QPR:{ *:[v2f64] }:$src)
11768 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64q8),
11769 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
11770 GIR_RootToRootCopy, /*OpIdx*/1, // src
11771 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
11772 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11773 GIR_RootConstrainSelectedInstOperands,
11774 // GIR_Coverage, 2931,
11775 GIR_EraseRootFromParent_Done,
11776 // Label 753: @31199
11777 GIM_Try, /*On fail goto*//*Label 754*/ GIMT_Encode4(31236), // Rule ID 2932 //
11778 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
11779 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
11780 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11781 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11782 // (bitconvert:{ *:[v16i8] } QPR:{ *:[v2i64] }:$src) => (VREV64q8:{ *:[v16i8] } QPR:{ *:[v2i64] }:$src)
11783 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV64q8),
11784 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
11785 GIR_RootToRootCopy, /*OpIdx*/1, // src
11786 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
11787 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11788 GIR_RootConstrainSelectedInstOperands,
11789 // GIR_Coverage, 2932,
11790 GIR_EraseRootFromParent_Done,
11791 // Label 754: @31236
11792 GIM_Try, /*On fail goto*//*Label 755*/ GIMT_Encode4(31273), // Rule ID 2933 //
11793 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
11794 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
11795 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11796 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11797 // (bitconvert:{ *:[v16i8] } QPR:{ *:[v4f32] }:$src) => (VREV32q8:{ *:[v16i8] } QPR:{ *:[v4f32] }:$src)
11798 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV32q8),
11799 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
11800 GIR_RootToRootCopy, /*OpIdx*/1, // src
11801 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
11802 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11803 GIR_RootConstrainSelectedInstOperands,
11804 // GIR_Coverage, 2933,
11805 GIR_EraseRootFromParent_Done,
11806 // Label 755: @31273
11807 GIM_Try, /*On fail goto*//*Label 756*/ GIMT_Encode4(31310), // Rule ID 2934 //
11808 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
11809 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
11810 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11811 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11812 // (bitconvert:{ *:[v16i8] } QPR:{ *:[v4i32] }:$src) => (VREV32q8:{ *:[v16i8] } QPR:{ *:[v4i32] }:$src)
11813 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV32q8),
11814 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
11815 GIR_RootToRootCopy, /*OpIdx*/1, // src
11816 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
11817 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11818 GIR_RootConstrainSelectedInstOperands,
11819 // GIR_Coverage, 2934,
11820 GIR_EraseRootFromParent_Done,
11821 // Label 756: @31310
11822 GIM_Try, /*On fail goto*//*Label 757*/ GIMT_Encode4(31347), // Rule ID 2935 //
11823 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
11824 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
11825 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11826 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11827 // (bitconvert:{ *:[v16i8] } QPR:{ *:[v8f16] }:$src) => (VREV16q8:{ *:[v16i8] } QPR:{ *:[v8f16] }:$src)
11828 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV16q8),
11829 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
11830 GIR_RootToRootCopy, /*OpIdx*/1, // src
11831 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
11832 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11833 GIR_RootConstrainSelectedInstOperands,
11834 // GIR_Coverage, 2935,
11835 GIR_EraseRootFromParent_Done,
11836 // Label 757: @31347
11837 GIM_Try, /*On fail goto*//*Label 758*/ GIMT_Encode4(31384), // Rule ID 2936 //
11838 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
11839 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
11840 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11841 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11842 // (bitconvert:{ *:[v16i8] } QPR:{ *:[v8bf16] }:$src) => (VREV16q8:{ *:[v16i8] } QPR:{ *:[v8bf16] }:$src)
11843 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV16q8),
11844 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
11845 GIR_RootToRootCopy, /*OpIdx*/1, // src
11846 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
11847 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11848 GIR_RootConstrainSelectedInstOperands,
11849 // GIR_Coverage, 2936,
11850 GIR_EraseRootFromParent_Done,
11851 // Label 758: @31384
11852 GIM_Try, /*On fail goto*//*Label 759*/ GIMT_Encode4(31421), // Rule ID 2937 //
11853 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
11854 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
11855 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11856 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
11857 // (bitconvert:{ *:[v16i8] } QPR:{ *:[v8i16] }:$src) => (VREV16q8:{ *:[v16i8] } QPR:{ *:[v8i16] }:$src)
11858 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VREV16q8),
11859 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
11860 GIR_RootToRootCopy, /*OpIdx*/1, // src
11861 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
11862 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11863 GIR_RootConstrainSelectedInstOperands,
11864 // GIR_Coverage, 2937,
11865 GIR_EraseRootFromParent_Done,
11866 // Label 759: @31421
11867 GIM_Try, /*On fail goto*//*Label 760*/ GIMT_Encode4(31453), // Rule ID 5436 //
11868 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
11869 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
11870 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11871 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11872 // (bitconvert:{ *:[v16i8] } MQPR:{ *:[v2f64] }:$src) => MQPR:{ *:[v16i8] }:$src
11873 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
11874 GIR_RootToRootCopy, /*OpIdx*/0, // dst
11875 GIR_RootToRootCopy, /*OpIdx*/1, // src
11876 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::MQPRRegClassID),
11877 // GIR_Coverage, 5436,
11878 GIR_EraseRootFromParent_Done,
11879 // Label 760: @31453
11880 GIM_Try, /*On fail goto*//*Label 761*/ GIMT_Encode4(31485), // Rule ID 5437 //
11881 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
11882 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
11883 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11884 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11885 // (bitconvert:{ *:[v16i8] } MQPR:{ *:[v2i64] }:$src) => MQPR:{ *:[v16i8] }:$src
11886 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
11887 GIR_RootToRootCopy, /*OpIdx*/0, // dst
11888 GIR_RootToRootCopy, /*OpIdx*/1, // src
11889 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::MQPRRegClassID),
11890 // GIR_Coverage, 5437,
11891 GIR_EraseRootFromParent_Done,
11892 // Label 761: @31485
11893 GIM_Try, /*On fail goto*//*Label 762*/ GIMT_Encode4(31517), // Rule ID 5438 //
11894 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
11895 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
11896 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11897 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11898 // (bitconvert:{ *:[v16i8] } MQPR:{ *:[v4f32] }:$src) => MQPR:{ *:[v16i8] }:$src
11899 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
11900 GIR_RootToRootCopy, /*OpIdx*/0, // dst
11901 GIR_RootToRootCopy, /*OpIdx*/1, // src
11902 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::MQPRRegClassID),
11903 // GIR_Coverage, 5438,
11904 GIR_EraseRootFromParent_Done,
11905 // Label 762: @31517
11906 GIM_Try, /*On fail goto*//*Label 763*/ GIMT_Encode4(31549), // Rule ID 5439 //
11907 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
11908 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
11909 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11910 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11911 // (bitconvert:{ *:[v16i8] } MQPR:{ *:[v4i32] }:$src) => MQPR:{ *:[v16i8] }:$src
11912 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
11913 GIR_RootToRootCopy, /*OpIdx*/0, // dst
11914 GIR_RootToRootCopy, /*OpIdx*/1, // src
11915 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::MQPRRegClassID),
11916 // GIR_Coverage, 5439,
11917 GIR_EraseRootFromParent_Done,
11918 // Label 763: @31549
11919 GIM_Try, /*On fail goto*//*Label 764*/ GIMT_Encode4(31581), // Rule ID 5440 //
11920 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
11921 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
11922 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11923 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11924 // (bitconvert:{ *:[v16i8] } MQPR:{ *:[v8f16] }:$src) => MQPR:{ *:[v16i8] }:$src
11925 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
11926 GIR_RootToRootCopy, /*OpIdx*/0, // dst
11927 GIR_RootToRootCopy, /*OpIdx*/1, // src
11928 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::MQPRRegClassID),
11929 // GIR_Coverage, 5440,
11930 GIR_EraseRootFromParent_Done,
11931 // Label 764: @31581
11932 GIM_Try, /*On fail goto*//*Label 765*/ GIMT_Encode4(31613), // Rule ID 5441 //
11933 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
11934 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
11935 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11936 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11937 // (bitconvert:{ *:[v16i8] } MQPR:{ *:[v8i16] }:$src) => MQPR:{ *:[v16i8] }:$src
11938 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
11939 GIR_RootToRootCopy, /*OpIdx*/0, // dst
11940 GIR_RootToRootCopy, /*OpIdx*/1, // src
11941 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::MQPRRegClassID),
11942 // GIR_Coverage, 5441,
11943 GIR_EraseRootFromParent_Done,
11944 // Label 765: @31613
11945 GIM_Try, /*On fail goto*//*Label 766*/ GIMT_Encode4(31669), // Rule ID 5472 //
11946 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
11947 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
11948 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11949 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11950 // (bitconvert:{ *:[v16i8] } MQPR:{ *:[v2f64] }:$src) => (MVE_VREV64_8:{ *:[v16i8] } MQPR:{ *:[v2f64] }:$src)
11951 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
11952 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
11953 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
11954 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VREV64_8),
11955 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
11956 GIR_RootToRootCopy, /*OpIdx*/1, // src
11957 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
11958 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11959 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11960 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
11961 GIR_RootConstrainSelectedInstOperands,
11962 // GIR_Coverage, 5472,
11963 GIR_EraseRootFromParent_Done,
11964 // Label 766: @31669
11965 GIM_Try, /*On fail goto*//*Label 767*/ GIMT_Encode4(31725), // Rule ID 5473 //
11966 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
11967 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
11968 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11969 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11970 // (bitconvert:{ *:[v16i8] } MQPR:{ *:[v2i64] }:$src) => (MVE_VREV64_8:{ *:[v16i8] } MQPR:{ *:[v2i64] }:$src)
11971 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
11972 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
11973 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
11974 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VREV64_8),
11975 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
11976 GIR_RootToRootCopy, /*OpIdx*/1, // src
11977 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
11978 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11979 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11980 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
11981 GIR_RootConstrainSelectedInstOperands,
11982 // GIR_Coverage, 5473,
11983 GIR_EraseRootFromParent_Done,
11984 // Label 767: @31725
11985 GIM_Try, /*On fail goto*//*Label 768*/ GIMT_Encode4(31781), // Rule ID 5474 //
11986 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
11987 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
11988 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11989 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
11990 // (bitconvert:{ *:[v16i8] } MQPR:{ *:[v4f32] }:$src) => (MVE_VREV32_8:{ *:[v16i8] } MQPR:{ *:[v4f32] }:$src)
11991 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
11992 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
11993 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
11994 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VREV32_8),
11995 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
11996 GIR_RootToRootCopy, /*OpIdx*/1, // src
11997 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
11998 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
11999 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12000 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
12001 GIR_RootConstrainSelectedInstOperands,
12002 // GIR_Coverage, 5474,
12003 GIR_EraseRootFromParent_Done,
12004 // Label 768: @31781
12005 GIM_Try, /*On fail goto*//*Label 769*/ GIMT_Encode4(31837), // Rule ID 5475 //
12006 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
12007 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
12008 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
12009 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
12010 // (bitconvert:{ *:[v16i8] } MQPR:{ *:[v4i32] }:$src) => (MVE_VREV32_8:{ *:[v16i8] } MQPR:{ *:[v4i32] }:$src)
12011 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
12012 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
12013 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
12014 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VREV32_8),
12015 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
12016 GIR_RootToRootCopy, /*OpIdx*/1, // src
12017 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
12018 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12019 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12020 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
12021 GIR_RootConstrainSelectedInstOperands,
12022 // GIR_Coverage, 5475,
12023 GIR_EraseRootFromParent_Done,
12024 // Label 769: @31837
12025 GIM_Try, /*On fail goto*//*Label 770*/ GIMT_Encode4(31893), // Rule ID 5476 //
12026 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
12027 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
12028 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
12029 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
12030 // (bitconvert:{ *:[v16i8] } MQPR:{ *:[v8f16] }:$src) => (MVE_VREV16_8:{ *:[v16i8] } MQPR:{ *:[v8f16] }:$src)
12031 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
12032 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
12033 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
12034 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VREV16_8),
12035 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
12036 GIR_RootToRootCopy, /*OpIdx*/1, // src
12037 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
12038 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12039 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12040 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
12041 GIR_RootConstrainSelectedInstOperands,
12042 // GIR_Coverage, 5476,
12043 GIR_EraseRootFromParent_Done,
12044 // Label 770: @31893
12045 GIM_Try, /*On fail goto*//*Label 771*/ GIMT_Encode4(31949), // Rule ID 5477 //
12046 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
12047 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
12048 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
12049 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
12050 // (bitconvert:{ *:[v16i8] } MQPR:{ *:[v8i16] }:$src) => (MVE_VREV16_8:{ *:[v16i8] } MQPR:{ *:[v8i16] }:$src)
12051 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
12052 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
12053 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
12054 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VREV16_8),
12055 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
12056 GIR_RootToRootCopy, /*OpIdx*/1, // src
12057 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
12058 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12059 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12060 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
12061 GIR_RootConstrainSelectedInstOperands,
12062 // GIR_Coverage, 5477,
12063 GIR_EraseRootFromParent_Done,
12064 // Label 771: @31949
12065 GIM_Reject,
12066 // Label 489: @31950
12067 GIM_Reject,
12068 // Label 10: @31951
12069 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(0), GIMT_Encode2(13), /*)*//*default:*//*Label 777*/ GIMT_Encode4(32242),
12070 /*GILLT_s16*//*Label 772*/ GIMT_Encode4(32014),
12071 /*GILLT_s32*//*Label 773*/ GIMT_Encode4(32052),
12072 /*GILLT_s64*//*Label 774*/ GIMT_Encode4(32090), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
12073 /*GILLT_v4s32*//*Label 775*/ GIMT_Encode4(32128), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
12074 /*GILLT_v8s16*//*Label 776*/ GIMT_Encode4(32185),
12075 // Label 772: @32014
12076 GIM_Try, /*On fail goto*//*Label 778*/ GIMT_Encode4(32051), // Rule ID 682 //
12077 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16),
12078 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s16,
12079 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
12080 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
12081 // (ftrunc:{ *:[f16] } HPR:{ *:[f16] }:$Sm) => (VRINTZH:{ *:[f16] } HPR:{ *:[f16] }:$Sm)
12082 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRINTZH),
12083 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
12084 GIR_RootToRootCopy, /*OpIdx*/1, // Sm
12085 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
12086 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12087 GIR_RootConstrainSelectedInstOperands,
12088 // GIR_Coverage, 682,
12089 GIR_EraseRootFromParent_Done,
12090 // Label 778: @32051
12091 GIM_Reject,
12092 // Label 773: @32052
12093 GIM_Try, /*On fail goto*//*Label 779*/ GIMT_Encode4(32089), // Rule ID 683 //
12094 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFPARMv8),
12095 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
12096 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
12097 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
12098 // (ftrunc:{ *:[f32] } SPR:{ *:[f32] }:$Sm) => (VRINTZS:{ *:[f32] } SPR:{ *:[f32] }:$Sm)
12099 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRINTZS),
12100 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
12101 GIR_RootToRootCopy, /*OpIdx*/1, // Sm
12102 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
12103 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12104 GIR_RootConstrainSelectedInstOperands,
12105 // GIR_Coverage, 683,
12106 GIR_EraseRootFromParent_Done,
12107 // Label 779: @32089
12108 GIM_Reject,
12109 // Label 774: @32090
12110 GIM_Try, /*On fail goto*//*Label 780*/ GIMT_Encode4(32127), // Rule ID 684 //
12111 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasFPARMv8),
12112 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
12113 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
12114 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
12115 // (ftrunc:{ *:[f64] } DPR:{ *:[f64] }:$Dm) => (VRINTZD:{ *:[f64] } DPR:{ *:[f64] }:$Dm)
12116 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRINTZD),
12117 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Dd]
12118 GIR_RootToRootCopy, /*OpIdx*/1, // Dm
12119 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
12120 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12121 GIR_RootConstrainSelectedInstOperands,
12122 // GIR_Coverage, 684,
12123 GIR_EraseRootFromParent_Done,
12124 // Label 780: @32127
12125 GIM_Reject,
12126 // Label 775: @32128
12127 GIM_Try, /*On fail goto*//*Label 781*/ GIMT_Encode4(32184), // Rule ID 4097 //
12128 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
12129 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
12130 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
12131 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
12132 // (ftrunc:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$val) => (MVE_VRINTf32Z:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$val)
12133 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
12134 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
12135 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
12136 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRINTf32Z),
12137 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
12138 GIR_RootToRootCopy, /*OpIdx*/1, // val
12139 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
12140 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12141 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12142 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
12143 GIR_RootConstrainSelectedInstOperands,
12144 // GIR_Coverage, 4097,
12145 GIR_EraseRootFromParent_Done,
12146 // Label 781: @32184
12147 GIM_Reject,
12148 // Label 776: @32185
12149 GIM_Try, /*On fail goto*//*Label 782*/ GIMT_Encode4(32241), // Rule ID 4085 //
12150 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
12151 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
12152 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
12153 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
12154 // (ftrunc:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$val) => (MVE_VRINTf16Z:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$val)
12155 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
12156 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
12157 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
12158 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRINTf16Z),
12159 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
12160 GIR_RootToRootCopy, /*OpIdx*/1, // val
12161 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
12162 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12163 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12164 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
12165 GIR_RootConstrainSelectedInstOperands,
12166 // GIR_Coverage, 4085,
12167 GIR_EraseRootFromParent_Done,
12168 // Label 782: @32241
12169 GIM_Reject,
12170 // Label 777: @32242
12171 GIM_Reject,
12172 // Label 11: @32243
12173 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(0), GIMT_Encode2(13), /*)*//*default:*//*Label 788*/ GIMT_Encode4(32501),
12174 /*GILLT_s16*//*Label 783*/ GIMT_Encode4(32306),
12175 /*GILLT_s32*//*Label 784*/ GIMT_Encode4(32333),
12176 /*GILLT_s64*//*Label 785*/ GIMT_Encode4(32360), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
12177 /*GILLT_v4s32*//*Label 786*/ GIMT_Encode4(32387), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
12178 /*GILLT_v8s16*//*Label 787*/ GIMT_Encode4(32444),
12179 // Label 783: @32306
12180 GIM_Try, /*On fail goto*//*Label 789*/ GIMT_Encode4(32332), // Rule ID 691 //
12181 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16),
12182 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s16,
12183 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
12184 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
12185 // (fround:{ *:[f16] } HPR:{ *:[f16] }:$Sm) => (VRINTAH:{ *:[f16] } HPR:{ *:[f16] }:$Sm)
12186 GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/GIMT_Encode2(ARM::VRINTAH),
12187 GIR_RootConstrainSelectedInstOperands,
12188 // GIR_Coverage, 691,
12189 GIR_Done,
12190 // Label 789: @32332
12191 GIM_Reject,
12192 // Label 784: @32333
12193 GIM_Try, /*On fail goto*//*Label 790*/ GIMT_Encode4(32359), // Rule ID 692 //
12194 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFPARMv8),
12195 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
12196 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
12197 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
12198 // (fround:{ *:[f32] } SPR:{ *:[f32] }:$Sm) => (VRINTAS:{ *:[f32] } SPR:{ *:[f32] }:$Sm)
12199 GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/GIMT_Encode2(ARM::VRINTAS),
12200 GIR_RootConstrainSelectedInstOperands,
12201 // GIR_Coverage, 692,
12202 GIR_Done,
12203 // Label 790: @32359
12204 GIM_Reject,
12205 // Label 785: @32360
12206 GIM_Try, /*On fail goto*//*Label 791*/ GIMT_Encode4(32386), // Rule ID 693 //
12207 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasFPARMv8),
12208 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
12209 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
12210 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
12211 // (fround:{ *:[f64] } DPR:{ *:[f64] }:$Dm) => (VRINTAD:{ *:[f64] } DPR:{ *:[f64] }:$Dm)
12212 GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/GIMT_Encode2(ARM::VRINTAD),
12213 GIR_RootConstrainSelectedInstOperands,
12214 // GIR_Coverage, 693,
12215 GIR_Done,
12216 // Label 791: @32386
12217 GIM_Reject,
12218 // Label 786: @32387
12219 GIM_Try, /*On fail goto*//*Label 792*/ GIMT_Encode4(32443), // Rule ID 4095 //
12220 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
12221 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
12222 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
12223 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
12224 // (fround:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$val) => (MVE_VRINTf32A:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$val)
12225 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
12226 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
12227 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
12228 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRINTf32A),
12229 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
12230 GIR_RootToRootCopy, /*OpIdx*/1, // val
12231 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
12232 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12233 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12234 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
12235 GIR_RootConstrainSelectedInstOperands,
12236 // GIR_Coverage, 4095,
12237 GIR_EraseRootFromParent_Done,
12238 // Label 792: @32443
12239 GIM_Reject,
12240 // Label 787: @32444
12241 GIM_Try, /*On fail goto*//*Label 793*/ GIMT_Encode4(32500), // Rule ID 4083 //
12242 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
12243 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
12244 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
12245 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
12246 // (fround:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$val) => (MVE_VRINTf16A:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$val)
12247 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
12248 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
12249 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
12250 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRINTf16A),
12251 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
12252 GIR_RootToRootCopy, /*OpIdx*/1, // val
12253 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
12254 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12255 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12256 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
12257 GIR_RootConstrainSelectedInstOperands,
12258 // GIR_Coverage, 4083,
12259 GIR_EraseRootFromParent_Done,
12260 // Label 793: @32500
12261 GIM_Reject,
12262 // Label 788: @32501
12263 GIM_Reject,
12264 // Label 12: @32502
12265 GIM_Try, /*On fail goto*//*Label 794*/ GIMT_Encode4(32522), // Rule ID 5538 //
12266 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
12267 // MIs[0] Operand 0
12268 GIM_CheckIsImm, /*MI*/0, /*Op*/0,
12269 GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
12270 // (atomic_fence (timm:{ *:[i32] }), 0:{ *:[i32] }) => (MEMBARRIER)
12271 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::MEMBARRIER),
12272 GIR_RootConstrainSelectedInstOperands,
12273 // GIR_Coverage, 5538,
12274 GIR_EraseRootFromParent_Done,
12275 // Label 794: @32522
12276 GIM_Reject,
12277 // Label 13: @32523
12278 GIM_Try, /*On fail goto*//*Label 795*/ GIMT_Encode4(38325),
12279 GIM_CheckNumOperands, /*MI*/0, /*Expected*/3,
12280 GIM_Try, /*On fail goto*//*Label 796*/ GIMT_Encode4(32579), // Rule ID 1880 //
12281 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
12282 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_uxtb16),
12283 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
12284 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
12285 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
12286 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
12287 // (intrinsic_wo_chain:{ *:[i32] } 3614:{ *:[iPTR] }, GPR:{ *:[i32] }:$Src) => (UXTB16:{ *:[i32] } GPR:{ *:[i32] }:$Src, 0:{ *:[i32] })
12288 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::UXTB16),
12289 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
12290 GIR_RootToRootCopy, /*OpIdx*/2, // Src
12291 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
12292 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
12293 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12294 GIR_RootConstrainSelectedInstOperands,
12295 // GIR_Coverage, 1880,
12296 GIR_EraseRootFromParent_Done,
12297 // Label 796: @32579
12298 GIM_Try, /*On fail goto*//*Label 797*/ GIMT_Encode4(32627), // Rule ID 2117 //
12299 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
12300 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_uxtb16),
12301 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
12302 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
12303 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
12304 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
12305 // (intrinsic_wo_chain:{ *:[i32] } 3614:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rm) => (t2UXTB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
12306 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2UXTB16),
12307 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
12308 GIR_RootToRootCopy, /*OpIdx*/2, // Rm
12309 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
12310 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
12311 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12312 GIR_RootConstrainSelectedInstOperands,
12313 // GIR_Coverage, 2117,
12314 GIR_EraseRootFromParent_Done,
12315 // Label 797: @32627
12316 GIM_Try, /*On fail goto*//*Label 798*/ GIMT_Encode4(32663), // Rule ID 694 //
12317 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16),
12318 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrintn),
12319 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s16,
12320 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s16,
12321 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
12322 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
12323 // (intrinsic_wo_chain:{ *:[f16] } 3500:{ *:[iPTR] }, HPR:{ *:[f16] }:$Sm) => (VRINTNH:{ *:[f16] } HPR:{ *:[f16] }:$Sm)
12324 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRINTNH),
12325 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
12326 GIR_RootToRootCopy, /*OpIdx*/2, // Sm
12327 GIR_RootConstrainSelectedInstOperands,
12328 // GIR_Coverage, 694,
12329 GIR_EraseRootFromParent_Done,
12330 // Label 798: @32663
12331 GIM_Try, /*On fail goto*//*Label 799*/ GIMT_Encode4(32699), // Rule ID 695 //
12332 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFPARMv8),
12333 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrintn),
12334 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
12335 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
12336 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
12337 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
12338 // (intrinsic_wo_chain:{ *:[f32] } 3500:{ *:[iPTR] }, SPR:{ *:[f32] }:$Sm) => (VRINTNS:{ *:[f32] } SPR:{ *:[f32] }:$Sm)
12339 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRINTNS),
12340 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
12341 GIR_RootToRootCopy, /*OpIdx*/2, // Sm
12342 GIR_RootConstrainSelectedInstOperands,
12343 // GIR_Coverage, 695,
12344 GIR_EraseRootFromParent_Done,
12345 // Label 799: @32699
12346 GIM_Try, /*On fail goto*//*Label 800*/ GIMT_Encode4(32735), // Rule ID 696 //
12347 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasFPARMv8),
12348 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrintn),
12349 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s64,
12350 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
12351 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
12352 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
12353 // (intrinsic_wo_chain:{ *:[f64] } 3500:{ *:[iPTR] }, DPR:{ *:[f64] }:$Dm) => (VRINTND:{ *:[f64] } DPR:{ *:[f64] }:$Dm)
12354 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRINTND),
12355 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Dd]
12356 GIR_RootToRootCopy, /*OpIdx*/2, // Dm
12357 GIR_RootConstrainSelectedInstOperands,
12358 // GIR_Coverage, 696,
12359 GIR_EraseRootFromParent_Done,
12360 // Label 800: @32735
12361 GIM_Try, /*On fail goto*//*Label 801*/ GIMT_Encode4(32780), // Rule ID 710 //
12362 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasVFP2),
12363 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_vcvtr),
12364 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
12365 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
12366 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
12367 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
12368 // (intrinsic_wo_chain:{ *:[f32] } 3615:{ *:[iPTR] }, DPR:{ *:[f64] }:$Dm) => (VTOSIRD:{ *:[f32] } DPR:{ *:[f64] }:$Dm)
12369 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VTOSIRD),
12370 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
12371 GIR_RootToRootCopy, /*OpIdx*/2, // Dm
12372 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
12373 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12374 GIR_RootConstrainSelectedInstOperands,
12375 // GIR_Coverage, 710,
12376 GIR_EraseRootFromParent_Done,
12377 // Label 801: @32780
12378 GIM_Try, /*On fail goto*//*Label 802*/ GIMT_Encode4(32825), // Rule ID 711 //
12379 GIM_CheckFeatures, GIMT_Encode2(GIFBS_DontUseNEONForFP_HasVFP2),
12380 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_vcvtr),
12381 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
12382 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
12383 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
12384 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
12385 // (intrinsic_wo_chain:{ *:[f32] } 3615:{ *:[iPTR] }, SPR:{ *:[f32] }:$Sm) => (VTOSIRS:{ *:[f32] } SPR:{ *:[f32] }:$Sm)
12386 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VTOSIRS),
12387 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
12388 GIR_RootToRootCopy, /*OpIdx*/2, // Sm
12389 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
12390 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12391 GIR_RootConstrainSelectedInstOperands,
12392 // GIR_Coverage, 711,
12393 GIR_EraseRootFromParent_Done,
12394 // Label 802: @32825
12395 GIM_Try, /*On fail goto*//*Label 803*/ GIMT_Encode4(32870), // Rule ID 712 //
12396 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasVFP2),
12397 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_vcvtru),
12398 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
12399 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
12400 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
12401 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
12402 // (intrinsic_wo_chain:{ *:[f32] } 3616:{ *:[iPTR] }, DPR:{ *:[f64] }:$Dm) => (VTOUIRD:{ *:[f32] } DPR:{ *:[f64] }:$Dm)
12403 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VTOUIRD),
12404 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
12405 GIR_RootToRootCopy, /*OpIdx*/2, // Dm
12406 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
12407 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12408 GIR_RootConstrainSelectedInstOperands,
12409 // GIR_Coverage, 712,
12410 GIR_EraseRootFromParent_Done,
12411 // Label 803: @32870
12412 GIM_Try, /*On fail goto*//*Label 804*/ GIMT_Encode4(32915), // Rule ID 713 //
12413 GIM_CheckFeatures, GIMT_Encode2(GIFBS_DontUseNEONForFP_HasVFP2),
12414 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_vcvtru),
12415 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
12416 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
12417 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
12418 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
12419 // (intrinsic_wo_chain:{ *:[f32] } 3616:{ *:[iPTR] }, SPR:{ *:[f32] }:$Sm) => (VTOUIRS:{ *:[f32] } SPR:{ *:[f32] }:$Sm)
12420 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VTOUIRS),
12421 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
12422 GIR_RootToRootCopy, /*OpIdx*/2, // Sm
12423 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
12424 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12425 GIR_RootConstrainSelectedInstOperands,
12426 // GIR_Coverage, 713,
12427 GIR_EraseRootFromParent_Done,
12428 // Label 804: @32915
12429 GIM_Try, /*On fail goto*//*Label 805*/ GIMT_Encode4(32960), // Rule ID 1261 //
12430 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
12431 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpaddls),
12432 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
12433 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
12434 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
12435 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
12436 // (intrinsic_wo_chain:{ *:[v4i16] } 3466:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm) => (VPADDLsv8i8:{ *:[v4i16] } DPR:{ *:[v8i8] }:$Vm)
12437 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPADDLsv8i8),
12438 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
12439 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
12440 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
12441 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12442 GIR_RootConstrainSelectedInstOperands,
12443 // GIR_Coverage, 1261,
12444 GIR_EraseRootFromParent_Done,
12445 // Label 805: @32960
12446 GIM_Try, /*On fail goto*//*Label 806*/ GIMT_Encode4(33005), // Rule ID 1262 //
12447 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
12448 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpaddls),
12449 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
12450 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
12451 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
12452 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
12453 // (intrinsic_wo_chain:{ *:[v2i32] } 3466:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm) => (VPADDLsv4i16:{ *:[v2i32] } DPR:{ *:[v4i16] }:$Vm)
12454 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPADDLsv4i16),
12455 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
12456 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
12457 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
12458 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12459 GIR_RootConstrainSelectedInstOperands,
12460 // GIR_Coverage, 1262,
12461 GIR_EraseRootFromParent_Done,
12462 // Label 806: @33005
12463 GIM_Try, /*On fail goto*//*Label 807*/ GIMT_Encode4(33050), // Rule ID 1263 //
12464 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
12465 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpaddls),
12466 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s64,
12467 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
12468 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
12469 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
12470 // (intrinsic_wo_chain:{ *:[v1i64] } 3466:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm) => (VPADDLsv2i32:{ *:[v1i64] } DPR:{ *:[v2i32] }:$Vm)
12471 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPADDLsv2i32),
12472 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
12473 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
12474 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
12475 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12476 GIR_RootConstrainSelectedInstOperands,
12477 // GIR_Coverage, 1263,
12478 GIR_EraseRootFromParent_Done,
12479 // Label 807: @33050
12480 GIM_Try, /*On fail goto*//*Label 808*/ GIMT_Encode4(33095), // Rule ID 1264 //
12481 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
12482 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpaddls),
12483 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
12484 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
12485 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
12486 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
12487 // (intrinsic_wo_chain:{ *:[v8i16] } 3466:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm) => (VPADDLsv16i8:{ *:[v8i16] } QPR:{ *:[v16i8] }:$Vm)
12488 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPADDLsv16i8),
12489 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
12490 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
12491 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
12492 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12493 GIR_RootConstrainSelectedInstOperands,
12494 // GIR_Coverage, 1264,
12495 GIR_EraseRootFromParent_Done,
12496 // Label 808: @33095
12497 GIM_Try, /*On fail goto*//*Label 809*/ GIMT_Encode4(33140), // Rule ID 1265 //
12498 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
12499 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpaddls),
12500 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
12501 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
12502 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
12503 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
12504 // (intrinsic_wo_chain:{ *:[v4i32] } 3466:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm) => (VPADDLsv8i16:{ *:[v4i32] } QPR:{ *:[v8i16] }:$Vm)
12505 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPADDLsv8i16),
12506 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
12507 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
12508 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
12509 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12510 GIR_RootConstrainSelectedInstOperands,
12511 // GIR_Coverage, 1265,
12512 GIR_EraseRootFromParent_Done,
12513 // Label 809: @33140
12514 GIM_Try, /*On fail goto*//*Label 810*/ GIMT_Encode4(33185), // Rule ID 1266 //
12515 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
12516 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpaddls),
12517 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s64,
12518 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
12519 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
12520 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
12521 // (intrinsic_wo_chain:{ *:[v2i64] } 3466:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) => (VPADDLsv4i32:{ *:[v2i64] } QPR:{ *:[v4i32] }:$Vm)
12522 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPADDLsv4i32),
12523 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
12524 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
12525 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
12526 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12527 GIR_RootConstrainSelectedInstOperands,
12528 // GIR_Coverage, 1266,
12529 GIR_EraseRootFromParent_Done,
12530 // Label 810: @33185
12531 GIM_Try, /*On fail goto*//*Label 811*/ GIMT_Encode4(33230), // Rule ID 1267 //
12532 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
12533 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpaddlu),
12534 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
12535 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
12536 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
12537 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
12538 // (intrinsic_wo_chain:{ *:[v4i16] } 3467:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm) => (VPADDLuv8i8:{ *:[v4i16] } DPR:{ *:[v8i8] }:$Vm)
12539 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPADDLuv8i8),
12540 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
12541 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
12542 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
12543 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12544 GIR_RootConstrainSelectedInstOperands,
12545 // GIR_Coverage, 1267,
12546 GIR_EraseRootFromParent_Done,
12547 // Label 811: @33230
12548 GIM_Try, /*On fail goto*//*Label 812*/ GIMT_Encode4(33275), // Rule ID 1268 //
12549 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
12550 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpaddlu),
12551 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
12552 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
12553 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
12554 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
12555 // (intrinsic_wo_chain:{ *:[v2i32] } 3467:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm) => (VPADDLuv4i16:{ *:[v2i32] } DPR:{ *:[v4i16] }:$Vm)
12556 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPADDLuv4i16),
12557 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
12558 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
12559 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
12560 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12561 GIR_RootConstrainSelectedInstOperands,
12562 // GIR_Coverage, 1268,
12563 GIR_EraseRootFromParent_Done,
12564 // Label 812: @33275
12565 GIM_Try, /*On fail goto*//*Label 813*/ GIMT_Encode4(33320), // Rule ID 1269 //
12566 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
12567 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpaddlu),
12568 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s64,
12569 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
12570 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
12571 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
12572 // (intrinsic_wo_chain:{ *:[v1i64] } 3467:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm) => (VPADDLuv2i32:{ *:[v1i64] } DPR:{ *:[v2i32] }:$Vm)
12573 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPADDLuv2i32),
12574 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
12575 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
12576 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
12577 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12578 GIR_RootConstrainSelectedInstOperands,
12579 // GIR_Coverage, 1269,
12580 GIR_EraseRootFromParent_Done,
12581 // Label 813: @33320
12582 GIM_Try, /*On fail goto*//*Label 814*/ GIMT_Encode4(33365), // Rule ID 1270 //
12583 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
12584 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpaddlu),
12585 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
12586 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
12587 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
12588 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
12589 // (intrinsic_wo_chain:{ *:[v8i16] } 3467:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm) => (VPADDLuv16i8:{ *:[v8i16] } QPR:{ *:[v16i8] }:$Vm)
12590 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPADDLuv16i8),
12591 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
12592 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
12593 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
12594 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12595 GIR_RootConstrainSelectedInstOperands,
12596 // GIR_Coverage, 1270,
12597 GIR_EraseRootFromParent_Done,
12598 // Label 814: @33365
12599 GIM_Try, /*On fail goto*//*Label 815*/ GIMT_Encode4(33410), // Rule ID 1271 //
12600 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
12601 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpaddlu),
12602 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
12603 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
12604 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
12605 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
12606 // (intrinsic_wo_chain:{ *:[v4i32] } 3467:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm) => (VPADDLuv8i16:{ *:[v4i32] } QPR:{ *:[v8i16] }:$Vm)
12607 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPADDLuv8i16),
12608 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
12609 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
12610 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
12611 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12612 GIR_RootConstrainSelectedInstOperands,
12613 // GIR_Coverage, 1271,
12614 GIR_EraseRootFromParent_Done,
12615 // Label 815: @33410
12616 GIM_Try, /*On fail goto*//*Label 816*/ GIMT_Encode4(33455), // Rule ID 1272 //
12617 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
12618 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpaddlu),
12619 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s64,
12620 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
12621 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
12622 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
12623 // (intrinsic_wo_chain:{ *:[v2i64] } 3467:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) => (VPADDLuv4i32:{ *:[v2i64] } QPR:{ *:[v4i32] }:$Vm)
12624 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPADDLuv4i32),
12625 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
12626 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
12627 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
12628 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12629 GIR_RootConstrainSelectedInstOperands,
12630 // GIR_Coverage, 1272,
12631 GIR_EraseRootFromParent_Done,
12632 // Label 816: @33455
12633 GIM_Try, /*On fail goto*//*Label 817*/ GIMT_Encode4(33500), // Rule ID 1301 //
12634 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
12635 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrecpe),
12636 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
12637 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
12638 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
12639 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
12640 // (intrinsic_wo_chain:{ *:[v2i32] } 3494:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm) => (VRECPEd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
12641 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRECPEd),
12642 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
12643 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
12644 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
12645 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12646 GIR_RootConstrainSelectedInstOperands,
12647 // GIR_Coverage, 1301,
12648 GIR_EraseRootFromParent_Done,
12649 // Label 817: @33500
12650 GIM_Try, /*On fail goto*//*Label 818*/ GIMT_Encode4(33545), // Rule ID 1302 //
12651 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
12652 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrecpe),
12653 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
12654 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
12655 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
12656 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
12657 // (intrinsic_wo_chain:{ *:[v4i32] } 3494:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) => (VRECPEq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
12658 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRECPEq),
12659 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
12660 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
12661 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
12662 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12663 GIR_RootConstrainSelectedInstOperands,
12664 // GIR_Coverage, 1302,
12665 GIR_EraseRootFromParent_Done,
12666 // Label 818: @33545
12667 GIM_Try, /*On fail goto*//*Label 819*/ GIMT_Encode4(33590), // Rule ID 1303 //
12668 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
12669 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrecpe),
12670 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
12671 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
12672 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
12673 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
12674 // (intrinsic_wo_chain:{ *:[v2f32] } 3494:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VRECPEfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
12675 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRECPEfd),
12676 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
12677 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
12678 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
12679 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12680 GIR_RootConstrainSelectedInstOperands,
12681 // GIR_Coverage, 1303,
12682 GIR_EraseRootFromParent_Done,
12683 // Label 819: @33590
12684 GIM_Try, /*On fail goto*//*Label 820*/ GIMT_Encode4(33635), // Rule ID 1304 //
12685 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
12686 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrecpe),
12687 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
12688 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
12689 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
12690 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
12691 // (intrinsic_wo_chain:{ *:[v4f32] } 3494:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VRECPEfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
12692 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRECPEfq),
12693 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
12694 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
12695 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
12696 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12697 GIR_RootConstrainSelectedInstOperands,
12698 // GIR_Coverage, 1304,
12699 GIR_EraseRootFromParent_Done,
12700 // Label 820: @33635
12701 GIM_Try, /*On fail goto*//*Label 821*/ GIMT_Encode4(33680), // Rule ID 1305 //
12702 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
12703 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrecpe),
12704 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
12705 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
12706 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
12707 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
12708 // (intrinsic_wo_chain:{ *:[v4f16] } 3494:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VRECPEhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
12709 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRECPEhd),
12710 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
12711 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
12712 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
12713 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12714 GIR_RootConstrainSelectedInstOperands,
12715 // GIR_Coverage, 1305,
12716 GIR_EraseRootFromParent_Done,
12717 // Label 821: @33680
12718 GIM_Try, /*On fail goto*//*Label 822*/ GIMT_Encode4(33725), // Rule ID 1306 //
12719 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
12720 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrecpe),
12721 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
12722 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
12723 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
12724 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
12725 // (intrinsic_wo_chain:{ *:[v8f16] } 3494:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VRECPEhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
12726 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRECPEhq),
12727 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
12728 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
12729 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
12730 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12731 GIR_RootConstrainSelectedInstOperands,
12732 // GIR_Coverage, 1306,
12733 GIR_EraseRootFromParent_Done,
12734 // Label 822: @33725
12735 GIM_Try, /*On fail goto*//*Label 823*/ GIMT_Encode4(33770), // Rule ID 1311 //
12736 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
12737 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrsqrte),
12738 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
12739 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
12740 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
12741 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
12742 // (intrinsic_wo_chain:{ *:[v2i32] } 3507:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm) => (VRSQRTEd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
12743 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRSQRTEd),
12744 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
12745 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
12746 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
12747 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12748 GIR_RootConstrainSelectedInstOperands,
12749 // GIR_Coverage, 1311,
12750 GIR_EraseRootFromParent_Done,
12751 // Label 823: @33770
12752 GIM_Try, /*On fail goto*//*Label 824*/ GIMT_Encode4(33815), // Rule ID 1312 //
12753 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
12754 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrsqrte),
12755 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
12756 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
12757 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
12758 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
12759 // (intrinsic_wo_chain:{ *:[v4i32] } 3507:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) => (VRSQRTEq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
12760 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRSQRTEq),
12761 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
12762 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
12763 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
12764 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12765 GIR_RootConstrainSelectedInstOperands,
12766 // GIR_Coverage, 1312,
12767 GIR_EraseRootFromParent_Done,
12768 // Label 824: @33815
12769 GIM_Try, /*On fail goto*//*Label 825*/ GIMT_Encode4(33860), // Rule ID 1313 //
12770 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
12771 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrsqrte),
12772 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
12773 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
12774 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
12775 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
12776 // (intrinsic_wo_chain:{ *:[v2f32] } 3507:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VRSQRTEfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
12777 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRSQRTEfd),
12778 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
12779 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
12780 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
12781 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12782 GIR_RootConstrainSelectedInstOperands,
12783 // GIR_Coverage, 1313,
12784 GIR_EraseRootFromParent_Done,
12785 // Label 825: @33860
12786 GIM_Try, /*On fail goto*//*Label 826*/ GIMT_Encode4(33905), // Rule ID 1314 //
12787 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
12788 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrsqrte),
12789 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
12790 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
12791 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
12792 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
12793 // (intrinsic_wo_chain:{ *:[v4f32] } 3507:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VRSQRTEfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
12794 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRSQRTEfq),
12795 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
12796 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
12797 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
12798 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12799 GIR_RootConstrainSelectedInstOperands,
12800 // GIR_Coverage, 1314,
12801 GIR_EraseRootFromParent_Done,
12802 // Label 826: @33905
12803 GIM_Try, /*On fail goto*//*Label 827*/ GIMT_Encode4(33950), // Rule ID 1315 //
12804 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
12805 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrsqrte),
12806 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
12807 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
12808 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
12809 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
12810 // (intrinsic_wo_chain:{ *:[v4f16] } 3507:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VRSQRTEhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
12811 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRSQRTEhd),
12812 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
12813 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
12814 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
12815 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12816 GIR_RootConstrainSelectedInstOperands,
12817 // GIR_Coverage, 1315,
12818 GIR_EraseRootFromParent_Done,
12819 // Label 827: @33950
12820 GIM_Try, /*On fail goto*//*Label 828*/ GIMT_Encode4(33995), // Rule ID 1316 //
12821 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
12822 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrsqrte),
12823 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
12824 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
12825 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
12826 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
12827 // (intrinsic_wo_chain:{ *:[v8f16] } 3507:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VRSQRTEhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
12828 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRSQRTEhq),
12829 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
12830 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
12831 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
12832 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12833 GIR_RootConstrainSelectedInstOperands,
12834 // GIR_Coverage, 1316,
12835 GIR_EraseRootFromParent_Done,
12836 // Label 828: @33995
12837 GIM_Try, /*On fail goto*//*Label 829*/ GIMT_Encode4(34040), // Rule ID 1537 //
12838 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
12839 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqabs),
12840 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s8,
12841 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
12842 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
12843 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
12844 // (intrinsic_wo_chain:{ *:[v8i8] } 3472:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm) => (VQABSv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm)
12845 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQABSv8i8),
12846 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
12847 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
12848 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
12849 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12850 GIR_RootConstrainSelectedInstOperands,
12851 // GIR_Coverage, 1537,
12852 GIR_EraseRootFromParent_Done,
12853 // Label 829: @34040
12854 GIM_Try, /*On fail goto*//*Label 830*/ GIMT_Encode4(34085), // Rule ID 1538 //
12855 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
12856 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqabs),
12857 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
12858 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
12859 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
12860 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
12861 // (intrinsic_wo_chain:{ *:[v4i16] } 3472:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm) => (VQABSv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm)
12862 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQABSv4i16),
12863 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
12864 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
12865 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
12866 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12867 GIR_RootConstrainSelectedInstOperands,
12868 // GIR_Coverage, 1538,
12869 GIR_EraseRootFromParent_Done,
12870 // Label 830: @34085
12871 GIM_Try, /*On fail goto*//*Label 831*/ GIMT_Encode4(34130), // Rule ID 1539 //
12872 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
12873 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqabs),
12874 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
12875 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
12876 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
12877 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
12878 // (intrinsic_wo_chain:{ *:[v2i32] } 3472:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm) => (VQABSv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
12879 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQABSv2i32),
12880 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
12881 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
12882 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
12883 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12884 GIR_RootConstrainSelectedInstOperands,
12885 // GIR_Coverage, 1539,
12886 GIR_EraseRootFromParent_Done,
12887 // Label 831: @34130
12888 GIM_Try, /*On fail goto*//*Label 832*/ GIMT_Encode4(34175), // Rule ID 1540 //
12889 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
12890 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqabs),
12891 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
12892 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
12893 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
12894 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
12895 // (intrinsic_wo_chain:{ *:[v16i8] } 3472:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm) => (VQABSv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
12896 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQABSv16i8),
12897 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
12898 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
12899 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
12900 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12901 GIR_RootConstrainSelectedInstOperands,
12902 // GIR_Coverage, 1540,
12903 GIR_EraseRootFromParent_Done,
12904 // Label 832: @34175
12905 GIM_Try, /*On fail goto*//*Label 833*/ GIMT_Encode4(34220), // Rule ID 1541 //
12906 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
12907 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqabs),
12908 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
12909 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
12910 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
12911 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
12912 // (intrinsic_wo_chain:{ *:[v8i16] } 3472:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm) => (VQABSv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm)
12913 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQABSv8i16),
12914 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
12915 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
12916 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
12917 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12918 GIR_RootConstrainSelectedInstOperands,
12919 // GIR_Coverage, 1541,
12920 GIR_EraseRootFromParent_Done,
12921 // Label 833: @34220
12922 GIM_Try, /*On fail goto*//*Label 834*/ GIMT_Encode4(34265), // Rule ID 1542 //
12923 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
12924 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqabs),
12925 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
12926 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
12927 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
12928 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
12929 // (intrinsic_wo_chain:{ *:[v4i32] } 3472:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) => (VQABSv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
12930 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQABSv4i32),
12931 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
12932 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
12933 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
12934 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12935 GIR_RootConstrainSelectedInstOperands,
12936 // GIR_Coverage, 1542,
12937 GIR_EraseRootFromParent_Done,
12938 // Label 834: @34265
12939 GIM_Try, /*On fail goto*//*Label 835*/ GIMT_Encode4(34310), // Rule ID 1553 //
12940 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
12941 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqneg),
12942 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s8,
12943 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
12944 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
12945 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
12946 // (intrinsic_wo_chain:{ *:[v8i8] } 3478:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm) => (VQNEGv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm)
12947 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQNEGv8i8),
12948 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
12949 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
12950 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
12951 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12952 GIR_RootConstrainSelectedInstOperands,
12953 // GIR_Coverage, 1553,
12954 GIR_EraseRootFromParent_Done,
12955 // Label 835: @34310
12956 GIM_Try, /*On fail goto*//*Label 836*/ GIMT_Encode4(34355), // Rule ID 1554 //
12957 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
12958 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqneg),
12959 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
12960 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
12961 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
12962 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
12963 // (intrinsic_wo_chain:{ *:[v4i16] } 3478:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm) => (VQNEGv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm)
12964 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQNEGv4i16),
12965 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
12966 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
12967 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
12968 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12969 GIR_RootConstrainSelectedInstOperands,
12970 // GIR_Coverage, 1554,
12971 GIR_EraseRootFromParent_Done,
12972 // Label 836: @34355
12973 GIM_Try, /*On fail goto*//*Label 837*/ GIMT_Encode4(34400), // Rule ID 1555 //
12974 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
12975 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqneg),
12976 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
12977 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
12978 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
12979 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
12980 // (intrinsic_wo_chain:{ *:[v2i32] } 3478:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm) => (VQNEGv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
12981 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQNEGv2i32),
12982 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
12983 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
12984 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
12985 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
12986 GIR_RootConstrainSelectedInstOperands,
12987 // GIR_Coverage, 1555,
12988 GIR_EraseRootFromParent_Done,
12989 // Label 837: @34400
12990 GIM_Try, /*On fail goto*//*Label 838*/ GIMT_Encode4(34445), // Rule ID 1556 //
12991 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
12992 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqneg),
12993 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
12994 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
12995 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
12996 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
12997 // (intrinsic_wo_chain:{ *:[v16i8] } 3478:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm) => (VQNEGv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
12998 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQNEGv16i8),
12999 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13000 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13001 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
13002 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
13003 GIR_RootConstrainSelectedInstOperands,
13004 // GIR_Coverage, 1556,
13005 GIR_EraseRootFromParent_Done,
13006 // Label 838: @34445
13007 GIM_Try, /*On fail goto*//*Label 839*/ GIMT_Encode4(34490), // Rule ID 1557 //
13008 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
13009 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqneg),
13010 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
13011 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
13012 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13013 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13014 // (intrinsic_wo_chain:{ *:[v8i16] } 3478:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm) => (VQNEGv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm)
13015 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQNEGv8i16),
13016 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13017 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13018 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
13019 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
13020 GIR_RootConstrainSelectedInstOperands,
13021 // GIR_Coverage, 1557,
13022 GIR_EraseRootFromParent_Done,
13023 // Label 839: @34490
13024 GIM_Try, /*On fail goto*//*Label 840*/ GIMT_Encode4(34535), // Rule ID 1558 //
13025 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
13026 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqneg),
13027 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
13028 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
13029 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13030 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13031 // (intrinsic_wo_chain:{ *:[v4i32] } 3478:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) => (VQNEGv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
13032 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQNEGv4i32),
13033 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13034 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13035 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
13036 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
13037 GIR_RootConstrainSelectedInstOperands,
13038 // GIR_Coverage, 1558,
13039 GIR_EraseRootFromParent_Done,
13040 // Label 840: @34535
13041 GIM_Try, /*On fail goto*//*Label 841*/ GIMT_Encode4(34580), // Rule ID 1559 //
13042 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
13043 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcls),
13044 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s8,
13045 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
13046 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13047 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13048 // (intrinsic_wo_chain:{ *:[v8i8] } 3419:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm) => (VCLSv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm)
13049 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCLSv8i8),
13050 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13051 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13052 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
13053 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
13054 GIR_RootConstrainSelectedInstOperands,
13055 // GIR_Coverage, 1559,
13056 GIR_EraseRootFromParent_Done,
13057 // Label 841: @34580
13058 GIM_Try, /*On fail goto*//*Label 842*/ GIMT_Encode4(34625), // Rule ID 1560 //
13059 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
13060 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcls),
13061 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
13062 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
13063 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13064 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13065 // (intrinsic_wo_chain:{ *:[v4i16] } 3419:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm) => (VCLSv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm)
13066 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCLSv4i16),
13067 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13068 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13069 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
13070 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
13071 GIR_RootConstrainSelectedInstOperands,
13072 // GIR_Coverage, 1560,
13073 GIR_EraseRootFromParent_Done,
13074 // Label 842: @34625
13075 GIM_Try, /*On fail goto*//*Label 843*/ GIMT_Encode4(34670), // Rule ID 1561 //
13076 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
13077 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcls),
13078 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
13079 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
13080 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13081 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13082 // (intrinsic_wo_chain:{ *:[v2i32] } 3419:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm) => (VCLSv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
13083 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCLSv2i32),
13084 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13085 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13086 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
13087 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
13088 GIR_RootConstrainSelectedInstOperands,
13089 // GIR_Coverage, 1561,
13090 GIR_EraseRootFromParent_Done,
13091 // Label 843: @34670
13092 GIM_Try, /*On fail goto*//*Label 844*/ GIMT_Encode4(34715), // Rule ID 1562 //
13093 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
13094 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcls),
13095 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
13096 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
13097 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13098 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13099 // (intrinsic_wo_chain:{ *:[v16i8] } 3419:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm) => (VCLSv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
13100 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCLSv16i8),
13101 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13102 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13103 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
13104 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
13105 GIR_RootConstrainSelectedInstOperands,
13106 // GIR_Coverage, 1562,
13107 GIR_EraseRootFromParent_Done,
13108 // Label 844: @34715
13109 GIM_Try, /*On fail goto*//*Label 845*/ GIMT_Encode4(34760), // Rule ID 1563 //
13110 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
13111 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcls),
13112 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
13113 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
13114 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13115 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13116 // (intrinsic_wo_chain:{ *:[v8i16] } 3419:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm) => (VCLSv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm)
13117 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCLSv8i16),
13118 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13119 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13120 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
13121 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
13122 GIR_RootConstrainSelectedInstOperands,
13123 // GIR_Coverage, 1563,
13124 GIR_EraseRootFromParent_Done,
13125 // Label 845: @34760
13126 GIM_Try, /*On fail goto*//*Label 846*/ GIMT_Encode4(34805), // Rule ID 1564 //
13127 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
13128 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcls),
13129 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
13130 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
13131 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13132 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13133 // (intrinsic_wo_chain:{ *:[v4i32] } 3419:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) => (VCLSv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
13134 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCLSv4i32),
13135 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13136 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13137 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
13138 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
13139 GIR_RootConstrainSelectedInstOperands,
13140 // GIR_Coverage, 1564,
13141 GIR_EraseRootFromParent_Done,
13142 // Label 846: @34805
13143 GIM_Try, /*On fail goto*//*Label 847*/ GIMT_Encode4(34850), // Rule ID 1608 //
13144 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
13145 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqmovns),
13146 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s8,
13147 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
13148 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13149 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13150 // (intrinsic_wo_chain:{ *:[v8i8] } 3475:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm) => (VQMOVNsv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm)
13151 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQMOVNsv8i8),
13152 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13153 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13154 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
13155 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
13156 GIR_RootConstrainSelectedInstOperands,
13157 // GIR_Coverage, 1608,
13158 GIR_EraseRootFromParent_Done,
13159 // Label 847: @34850
13160 GIM_Try, /*On fail goto*//*Label 848*/ GIMT_Encode4(34895), // Rule ID 1609 //
13161 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
13162 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqmovns),
13163 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
13164 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
13165 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13166 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13167 // (intrinsic_wo_chain:{ *:[v4i16] } 3475:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) => (VQMOVNsv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm)
13168 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQMOVNsv4i16),
13169 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13170 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13171 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
13172 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
13173 GIR_RootConstrainSelectedInstOperands,
13174 // GIR_Coverage, 1609,
13175 GIR_EraseRootFromParent_Done,
13176 // Label 848: @34895
13177 GIM_Try, /*On fail goto*//*Label 849*/ GIMT_Encode4(34940), // Rule ID 1610 //
13178 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
13179 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqmovns),
13180 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
13181 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s64,
13182 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13183 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13184 // (intrinsic_wo_chain:{ *:[v2i32] } 3475:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm) => (VQMOVNsv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm)
13185 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQMOVNsv2i32),
13186 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13187 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13188 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
13189 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
13190 GIR_RootConstrainSelectedInstOperands,
13191 // GIR_Coverage, 1610,
13192 GIR_EraseRootFromParent_Done,
13193 // Label 849: @34940
13194 GIM_Try, /*On fail goto*//*Label 850*/ GIMT_Encode4(34985), // Rule ID 1611 //
13195 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
13196 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqmovnu),
13197 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s8,
13198 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
13199 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13200 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13201 // (intrinsic_wo_chain:{ *:[v8i8] } 3477:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm) => (VQMOVNuv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm)
13202 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQMOVNuv8i8),
13203 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13204 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13205 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
13206 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
13207 GIR_RootConstrainSelectedInstOperands,
13208 // GIR_Coverage, 1611,
13209 GIR_EraseRootFromParent_Done,
13210 // Label 850: @34985
13211 GIM_Try, /*On fail goto*//*Label 851*/ GIMT_Encode4(35030), // Rule ID 1612 //
13212 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
13213 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqmovnu),
13214 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
13215 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
13216 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13217 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13218 // (intrinsic_wo_chain:{ *:[v4i16] } 3477:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) => (VQMOVNuv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm)
13219 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQMOVNuv4i16),
13220 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13221 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13222 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
13223 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
13224 GIR_RootConstrainSelectedInstOperands,
13225 // GIR_Coverage, 1612,
13226 GIR_EraseRootFromParent_Done,
13227 // Label 851: @35030
13228 GIM_Try, /*On fail goto*//*Label 852*/ GIMT_Encode4(35075), // Rule ID 1613 //
13229 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
13230 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqmovnu),
13231 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
13232 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s64,
13233 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13234 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13235 // (intrinsic_wo_chain:{ *:[v2i32] } 3477:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm) => (VQMOVNuv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm)
13236 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQMOVNuv2i32),
13237 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13238 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13239 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
13240 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
13241 GIR_RootConstrainSelectedInstOperands,
13242 // GIR_Coverage, 1613,
13243 GIR_EraseRootFromParent_Done,
13244 // Label 852: @35075
13245 GIM_Try, /*On fail goto*//*Label 853*/ GIMT_Encode4(35120), // Rule ID 1614 //
13246 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
13247 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqmovnsu),
13248 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s8,
13249 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
13250 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13251 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13252 // (intrinsic_wo_chain:{ *:[v8i8] } 3476:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm) => (VQMOVNsuv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm)
13253 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQMOVNsuv8i8),
13254 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13255 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13256 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
13257 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
13258 GIR_RootConstrainSelectedInstOperands,
13259 // GIR_Coverage, 1614,
13260 GIR_EraseRootFromParent_Done,
13261 // Label 853: @35120
13262 GIM_Try, /*On fail goto*//*Label 854*/ GIMT_Encode4(35165), // Rule ID 1615 //
13263 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
13264 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqmovnsu),
13265 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
13266 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
13267 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13268 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13269 // (intrinsic_wo_chain:{ *:[v4i16] } 3476:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) => (VQMOVNsuv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm)
13270 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQMOVNsuv4i16),
13271 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13272 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13273 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
13274 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
13275 GIR_RootConstrainSelectedInstOperands,
13276 // GIR_Coverage, 1615,
13277 GIR_EraseRootFromParent_Done,
13278 // Label 854: @35165
13279 GIM_Try, /*On fail goto*//*Label 855*/ GIMT_Encode4(35210), // Rule ID 1616 //
13280 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
13281 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqmovnsu),
13282 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
13283 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s64,
13284 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13285 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13286 // (intrinsic_wo_chain:{ *:[v2i32] } 3476:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm) => (VQMOVNsuv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm)
13287 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQMOVNsuv2i32),
13288 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13289 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13290 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
13291 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
13292 GIR_RootConstrainSelectedInstOperands,
13293 // GIR_Coverage, 1616,
13294 GIR_EraseRootFromParent_Done,
13295 // Label 855: @35210
13296 GIM_Try, /*On fail goto*//*Label 856*/ GIMT_Encode4(35246), // Rule ID 1639 //
13297 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasV8),
13298 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtas),
13299 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
13300 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
13301 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13302 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13303 // (intrinsic_wo_chain:{ *:[v2i32] } 3420:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VCVTANSDf:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
13304 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTANSDf),
13305 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13306 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13307 GIR_RootConstrainSelectedInstOperands,
13308 // GIR_Coverage, 1639,
13309 GIR_EraseRootFromParent_Done,
13310 // Label 856: @35246
13311 GIM_Try, /*On fail goto*//*Label 857*/ GIMT_Encode4(35282), // Rule ID 1640 //
13312 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasV8),
13313 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtas),
13314 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
13315 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
13316 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13317 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13318 // (intrinsic_wo_chain:{ *:[v4i32] } 3420:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VCVTANSQf:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
13319 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTANSQf),
13320 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13321 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13322 GIR_RootConstrainSelectedInstOperands,
13323 // GIR_Coverage, 1640,
13324 GIR_EraseRootFromParent_Done,
13325 // Label 857: @35282
13326 GIM_Try, /*On fail goto*//*Label 858*/ GIMT_Encode4(35318), // Rule ID 1641 //
13327 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasV8),
13328 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtau),
13329 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
13330 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
13331 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13332 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13333 // (intrinsic_wo_chain:{ *:[v2i32] } 3421:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VCVTANUDf:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
13334 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTANUDf),
13335 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13336 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13337 GIR_RootConstrainSelectedInstOperands,
13338 // GIR_Coverage, 1641,
13339 GIR_EraseRootFromParent_Done,
13340 // Label 858: @35318
13341 GIM_Try, /*On fail goto*//*Label 859*/ GIMT_Encode4(35354), // Rule ID 1642 //
13342 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasV8),
13343 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtau),
13344 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
13345 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
13346 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13347 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13348 // (intrinsic_wo_chain:{ *:[v4i32] } 3421:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VCVTANUQf:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
13349 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTANUQf),
13350 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13351 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13352 GIR_RootConstrainSelectedInstOperands,
13353 // GIR_Coverage, 1642,
13354 GIR_EraseRootFromParent_Done,
13355 // Label 859: @35354
13356 GIM_Try, /*On fail goto*//*Label 860*/ GIMT_Encode4(35390), // Rule ID 1643 //
13357 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON_HasV8),
13358 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtas),
13359 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
13360 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
13361 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13362 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13363 // (intrinsic_wo_chain:{ *:[v4i16] } 3420:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VCVTANSDh:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
13364 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTANSDh),
13365 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13366 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13367 GIR_RootConstrainSelectedInstOperands,
13368 // GIR_Coverage, 1643,
13369 GIR_EraseRootFromParent_Done,
13370 // Label 860: @35390
13371 GIM_Try, /*On fail goto*//*Label 861*/ GIMT_Encode4(35426), // Rule ID 1644 //
13372 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON_HasV8),
13373 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtas),
13374 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
13375 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
13376 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13377 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13378 // (intrinsic_wo_chain:{ *:[v8i16] } 3420:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VCVTANSQh:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
13379 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTANSQh),
13380 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13381 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13382 GIR_RootConstrainSelectedInstOperands,
13383 // GIR_Coverage, 1644,
13384 GIR_EraseRootFromParent_Done,
13385 // Label 861: @35426
13386 GIM_Try, /*On fail goto*//*Label 862*/ GIMT_Encode4(35462), // Rule ID 1645 //
13387 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON_HasV8),
13388 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtau),
13389 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
13390 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
13391 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13392 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13393 // (intrinsic_wo_chain:{ *:[v4i16] } 3421:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VCVTANUDh:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
13394 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTANUDh),
13395 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13396 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13397 GIR_RootConstrainSelectedInstOperands,
13398 // GIR_Coverage, 1645,
13399 GIR_EraseRootFromParent_Done,
13400 // Label 862: @35462
13401 GIM_Try, /*On fail goto*//*Label 863*/ GIMT_Encode4(35498), // Rule ID 1646 //
13402 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON_HasV8),
13403 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtau),
13404 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
13405 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
13406 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13407 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13408 // (intrinsic_wo_chain:{ *:[v8i16] } 3421:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VCVTANUQh:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
13409 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTANUQh),
13410 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13411 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13412 GIR_RootConstrainSelectedInstOperands,
13413 // GIR_Coverage, 1646,
13414 GIR_EraseRootFromParent_Done,
13415 // Label 863: @35498
13416 GIM_Try, /*On fail goto*//*Label 864*/ GIMT_Encode4(35534), // Rule ID 1647 //
13417 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasV8),
13418 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtns),
13419 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
13420 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
13421 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13422 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13423 // (intrinsic_wo_chain:{ *:[v2i32] } 3432:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VCVTNNSDf:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
13424 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTNNSDf),
13425 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13426 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13427 GIR_RootConstrainSelectedInstOperands,
13428 // GIR_Coverage, 1647,
13429 GIR_EraseRootFromParent_Done,
13430 // Label 864: @35534
13431 GIM_Try, /*On fail goto*//*Label 865*/ GIMT_Encode4(35570), // Rule ID 1648 //
13432 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasV8),
13433 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtns),
13434 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
13435 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
13436 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13437 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13438 // (intrinsic_wo_chain:{ *:[v4i32] } 3432:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VCVTNNSQf:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
13439 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTNNSQf),
13440 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13441 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13442 GIR_RootConstrainSelectedInstOperands,
13443 // GIR_Coverage, 1648,
13444 GIR_EraseRootFromParent_Done,
13445 // Label 865: @35570
13446 GIM_Try, /*On fail goto*//*Label 866*/ GIMT_Encode4(35606), // Rule ID 1649 //
13447 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasV8),
13448 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtnu),
13449 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
13450 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
13451 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13452 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13453 // (intrinsic_wo_chain:{ *:[v2i32] } 3433:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VCVTNNUDf:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
13454 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTNNUDf),
13455 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13456 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13457 GIR_RootConstrainSelectedInstOperands,
13458 // GIR_Coverage, 1649,
13459 GIR_EraseRootFromParent_Done,
13460 // Label 866: @35606
13461 GIM_Try, /*On fail goto*//*Label 867*/ GIMT_Encode4(35642), // Rule ID 1650 //
13462 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasV8),
13463 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtnu),
13464 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
13465 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
13466 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13467 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13468 // (intrinsic_wo_chain:{ *:[v4i32] } 3433:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VCVTNNUQf:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
13469 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTNNUQf),
13470 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13471 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13472 GIR_RootConstrainSelectedInstOperands,
13473 // GIR_Coverage, 1650,
13474 GIR_EraseRootFromParent_Done,
13475 // Label 867: @35642
13476 GIM_Try, /*On fail goto*//*Label 868*/ GIMT_Encode4(35678), // Rule ID 1651 //
13477 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON_HasV8),
13478 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtns),
13479 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
13480 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
13481 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13482 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13483 // (intrinsic_wo_chain:{ *:[v4i16] } 3432:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VCVTNNSDh:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
13484 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTNNSDh),
13485 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13486 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13487 GIR_RootConstrainSelectedInstOperands,
13488 // GIR_Coverage, 1651,
13489 GIR_EraseRootFromParent_Done,
13490 // Label 868: @35678
13491 GIM_Try, /*On fail goto*//*Label 869*/ GIMT_Encode4(35714), // Rule ID 1652 //
13492 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON_HasV8),
13493 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtns),
13494 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
13495 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
13496 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13497 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13498 // (intrinsic_wo_chain:{ *:[v8i16] } 3432:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VCVTNNSQh:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
13499 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTNNSQh),
13500 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13501 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13502 GIR_RootConstrainSelectedInstOperands,
13503 // GIR_Coverage, 1652,
13504 GIR_EraseRootFromParent_Done,
13505 // Label 869: @35714
13506 GIM_Try, /*On fail goto*//*Label 870*/ GIMT_Encode4(35750), // Rule ID 1653 //
13507 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON_HasV8),
13508 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtnu),
13509 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
13510 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
13511 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13512 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13513 // (intrinsic_wo_chain:{ *:[v4i16] } 3433:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VCVTNNUDh:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
13514 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTNNUDh),
13515 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13516 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13517 GIR_RootConstrainSelectedInstOperands,
13518 // GIR_Coverage, 1653,
13519 GIR_EraseRootFromParent_Done,
13520 // Label 870: @35750
13521 GIM_Try, /*On fail goto*//*Label 871*/ GIMT_Encode4(35786), // Rule ID 1654 //
13522 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON_HasV8),
13523 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtnu),
13524 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
13525 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
13526 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13527 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13528 // (intrinsic_wo_chain:{ *:[v8i16] } 3433:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VCVTNNUQh:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
13529 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTNNUQh),
13530 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13531 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13532 GIR_RootConstrainSelectedInstOperands,
13533 // GIR_Coverage, 1654,
13534 GIR_EraseRootFromParent_Done,
13535 // Label 871: @35786
13536 GIM_Try, /*On fail goto*//*Label 872*/ GIMT_Encode4(35822), // Rule ID 1655 //
13537 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasV8),
13538 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtps),
13539 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
13540 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
13541 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13542 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13543 // (intrinsic_wo_chain:{ *:[v2i32] } 3434:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VCVTPNSDf:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
13544 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTPNSDf),
13545 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13546 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13547 GIR_RootConstrainSelectedInstOperands,
13548 // GIR_Coverage, 1655,
13549 GIR_EraseRootFromParent_Done,
13550 // Label 872: @35822
13551 GIM_Try, /*On fail goto*//*Label 873*/ GIMT_Encode4(35858), // Rule ID 1656 //
13552 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasV8),
13553 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtps),
13554 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
13555 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
13556 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13557 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13558 // (intrinsic_wo_chain:{ *:[v4i32] } 3434:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VCVTPNSQf:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
13559 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTPNSQf),
13560 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13561 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13562 GIR_RootConstrainSelectedInstOperands,
13563 // GIR_Coverage, 1656,
13564 GIR_EraseRootFromParent_Done,
13565 // Label 873: @35858
13566 GIM_Try, /*On fail goto*//*Label 874*/ GIMT_Encode4(35894), // Rule ID 1657 //
13567 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasV8),
13568 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtpu),
13569 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
13570 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
13571 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13572 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13573 // (intrinsic_wo_chain:{ *:[v2i32] } 3435:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VCVTPNUDf:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
13574 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTPNUDf),
13575 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13576 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13577 GIR_RootConstrainSelectedInstOperands,
13578 // GIR_Coverage, 1657,
13579 GIR_EraseRootFromParent_Done,
13580 // Label 874: @35894
13581 GIM_Try, /*On fail goto*//*Label 875*/ GIMT_Encode4(35930), // Rule ID 1658 //
13582 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasV8),
13583 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtpu),
13584 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
13585 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
13586 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13587 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13588 // (intrinsic_wo_chain:{ *:[v4i32] } 3435:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VCVTPNUQf:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
13589 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTPNUQf),
13590 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13591 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13592 GIR_RootConstrainSelectedInstOperands,
13593 // GIR_Coverage, 1658,
13594 GIR_EraseRootFromParent_Done,
13595 // Label 875: @35930
13596 GIM_Try, /*On fail goto*//*Label 876*/ GIMT_Encode4(35966), // Rule ID 1659 //
13597 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON_HasV8),
13598 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtps),
13599 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
13600 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
13601 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13602 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13603 // (intrinsic_wo_chain:{ *:[v4i16] } 3434:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VCVTPNSDh:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
13604 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTPNSDh),
13605 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13606 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13607 GIR_RootConstrainSelectedInstOperands,
13608 // GIR_Coverage, 1659,
13609 GIR_EraseRootFromParent_Done,
13610 // Label 876: @35966
13611 GIM_Try, /*On fail goto*//*Label 877*/ GIMT_Encode4(36002), // Rule ID 1660 //
13612 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON_HasV8),
13613 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtps),
13614 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
13615 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
13616 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13617 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13618 // (intrinsic_wo_chain:{ *:[v8i16] } 3434:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VCVTPNSQh:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
13619 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTPNSQh),
13620 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13621 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13622 GIR_RootConstrainSelectedInstOperands,
13623 // GIR_Coverage, 1660,
13624 GIR_EraseRootFromParent_Done,
13625 // Label 877: @36002
13626 GIM_Try, /*On fail goto*//*Label 878*/ GIMT_Encode4(36038), // Rule ID 1661 //
13627 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON_HasV8),
13628 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtpu),
13629 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
13630 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
13631 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13632 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13633 // (intrinsic_wo_chain:{ *:[v4i16] } 3435:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VCVTPNUDh:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
13634 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTPNUDh),
13635 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13636 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13637 GIR_RootConstrainSelectedInstOperands,
13638 // GIR_Coverage, 1661,
13639 GIR_EraseRootFromParent_Done,
13640 // Label 878: @36038
13641 GIM_Try, /*On fail goto*//*Label 879*/ GIMT_Encode4(36074), // Rule ID 1662 //
13642 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON_HasV8),
13643 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtpu),
13644 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
13645 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
13646 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13647 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13648 // (intrinsic_wo_chain:{ *:[v8i16] } 3435:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VCVTPNUQh:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
13649 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTPNUQh),
13650 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13651 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13652 GIR_RootConstrainSelectedInstOperands,
13653 // GIR_Coverage, 1662,
13654 GIR_EraseRootFromParent_Done,
13655 // Label 879: @36074
13656 GIM_Try, /*On fail goto*//*Label 880*/ GIMT_Encode4(36110), // Rule ID 1663 //
13657 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasV8),
13658 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtms),
13659 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
13660 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
13661 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13662 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13663 // (intrinsic_wo_chain:{ *:[v2i32] } 3430:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VCVTMNSDf:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
13664 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTMNSDf),
13665 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13666 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13667 GIR_RootConstrainSelectedInstOperands,
13668 // GIR_Coverage, 1663,
13669 GIR_EraseRootFromParent_Done,
13670 // Label 880: @36110
13671 GIM_Try, /*On fail goto*//*Label 881*/ GIMT_Encode4(36146), // Rule ID 1664 //
13672 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasV8),
13673 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtms),
13674 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
13675 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
13676 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13677 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13678 // (intrinsic_wo_chain:{ *:[v4i32] } 3430:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VCVTMNSQf:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
13679 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTMNSQf),
13680 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13681 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13682 GIR_RootConstrainSelectedInstOperands,
13683 // GIR_Coverage, 1664,
13684 GIR_EraseRootFromParent_Done,
13685 // Label 881: @36146
13686 GIM_Try, /*On fail goto*//*Label 882*/ GIMT_Encode4(36182), // Rule ID 1665 //
13687 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasV8),
13688 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtmu),
13689 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
13690 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
13691 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13692 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13693 // (intrinsic_wo_chain:{ *:[v2i32] } 3431:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VCVTMNUDf:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
13694 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTMNUDf),
13695 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13696 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13697 GIR_RootConstrainSelectedInstOperands,
13698 // GIR_Coverage, 1665,
13699 GIR_EraseRootFromParent_Done,
13700 // Label 882: @36182
13701 GIM_Try, /*On fail goto*//*Label 883*/ GIMT_Encode4(36218), // Rule ID 1666 //
13702 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasV8),
13703 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtmu),
13704 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
13705 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
13706 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13707 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13708 // (intrinsic_wo_chain:{ *:[v4i32] } 3431:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VCVTMNUQf:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
13709 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTMNUQf),
13710 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13711 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13712 GIR_RootConstrainSelectedInstOperands,
13713 // GIR_Coverage, 1666,
13714 GIR_EraseRootFromParent_Done,
13715 // Label 883: @36218
13716 GIM_Try, /*On fail goto*//*Label 884*/ GIMT_Encode4(36254), // Rule ID 1667 //
13717 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON_HasV8),
13718 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtms),
13719 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
13720 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
13721 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13722 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13723 // (intrinsic_wo_chain:{ *:[v4i16] } 3430:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VCVTMNSDh:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
13724 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTMNSDh),
13725 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13726 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13727 GIR_RootConstrainSelectedInstOperands,
13728 // GIR_Coverage, 1667,
13729 GIR_EraseRootFromParent_Done,
13730 // Label 884: @36254
13731 GIM_Try, /*On fail goto*//*Label 885*/ GIMT_Encode4(36290), // Rule ID 1668 //
13732 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON_HasV8),
13733 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtms),
13734 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
13735 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
13736 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13737 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13738 // (intrinsic_wo_chain:{ *:[v8i16] } 3430:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VCVTMNSQh:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
13739 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTMNSQh),
13740 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13741 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13742 GIR_RootConstrainSelectedInstOperands,
13743 // GIR_Coverage, 1668,
13744 GIR_EraseRootFromParent_Done,
13745 // Label 885: @36290
13746 GIM_Try, /*On fail goto*//*Label 886*/ GIMT_Encode4(36326), // Rule ID 1669 //
13747 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON_HasV8),
13748 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtmu),
13749 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
13750 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
13751 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13752 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13753 // (intrinsic_wo_chain:{ *:[v4i16] } 3431:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VCVTMNUDh:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
13754 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTMNUDh),
13755 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13756 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13757 GIR_RootConstrainSelectedInstOperands,
13758 // GIR_Coverage, 1669,
13759 GIR_EraseRootFromParent_Done,
13760 // Label 886: @36326
13761 GIM_Try, /*On fail goto*//*Label 887*/ GIMT_Encode4(36362), // Rule ID 1670 //
13762 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON_HasV8),
13763 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtmu),
13764 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
13765 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
13766 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13767 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13768 // (intrinsic_wo_chain:{ *:[v8i16] } 3431:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VCVTMNUQh:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
13769 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTMNUQh),
13770 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13771 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13772 GIR_RootConstrainSelectedInstOperands,
13773 // GIR_Coverage, 1670,
13774 GIR_EraseRootFromParent_Done,
13775 // Label 887: @36362
13776 GIM_Try, /*On fail goto*//*Label 888*/ GIMT_Encode4(36407), // Rule ID 1687 //
13777 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFP16_HasNEON),
13778 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtfp2hf),
13779 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
13780 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
13781 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13782 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13783 // (intrinsic_wo_chain:{ *:[v4i16] } 3426:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VCVTf2h:{ *:[v4i16] } QPR:{ *:[v4f32] }:$Vm)
13784 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTf2h),
13785 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13786 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13787 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
13788 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
13789 GIR_RootConstrainSelectedInstOperands,
13790 // GIR_Coverage, 1687,
13791 GIR_EraseRootFromParent_Done,
13792 // Label 888: @36407
13793 GIM_Try, /*On fail goto*//*Label 889*/ GIMT_Encode4(36452), // Rule ID 1688 //
13794 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFP16_HasNEON),
13795 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvthf2fp),
13796 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
13797 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
13798 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13799 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13800 // (intrinsic_wo_chain:{ *:[v4f32] } 3429:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm) => (VCVTh2f:{ *:[v4f32] } DPR:{ *:[v4i16] }:$Vm)
13801 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTh2f),
13802 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13803 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13804 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
13805 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
13806 GIR_RootConstrainSelectedInstOperands,
13807 // GIR_Coverage, 1688,
13808 GIR_EraseRootFromParent_Done,
13809 // Label 889: @36452
13810 GIM_Try, /*On fail goto*//*Label 890*/ GIMT_Encode4(36488), // Rule ID 1710 //
13811 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasV8),
13812 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrintn),
13813 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
13814 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
13815 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13816 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13817 // (intrinsic_wo_chain:{ *:[v2f32] } 3500:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VRINTNNDf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
13818 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRINTNNDf),
13819 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13820 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13821 GIR_RootConstrainSelectedInstOperands,
13822 // GIR_Coverage, 1710,
13823 GIR_EraseRootFromParent_Done,
13824 // Label 890: @36488
13825 GIM_Try, /*On fail goto*//*Label 891*/ GIMT_Encode4(36524), // Rule ID 1711 //
13826 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasV8),
13827 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrintn),
13828 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
13829 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
13830 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13831 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13832 // (intrinsic_wo_chain:{ *:[v4f32] } 3500:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VRINTNNQf:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
13833 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRINTNNQf),
13834 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13835 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13836 GIR_RootConstrainSelectedInstOperands,
13837 // GIR_Coverage, 1711,
13838 GIR_EraseRootFromParent_Done,
13839 // Label 891: @36524
13840 GIM_Try, /*On fail goto*//*Label 892*/ GIMT_Encode4(36560), // Rule ID 1712 //
13841 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON_HasV8),
13842 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrintn),
13843 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
13844 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
13845 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13846 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13847 // (intrinsic_wo_chain:{ *:[v4f16] } 3500:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VRINTNNDh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
13848 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRINTNNDh),
13849 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13850 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13851 GIR_RootConstrainSelectedInstOperands,
13852 // GIR_Coverage, 1712,
13853 GIR_EraseRootFromParent_Done,
13854 // Label 892: @36560
13855 GIM_Try, /*On fail goto*//*Label 893*/ GIMT_Encode4(36596), // Rule ID 1713 //
13856 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON_HasV8),
13857 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrintn),
13858 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
13859 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
13860 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13861 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13862 // (intrinsic_wo_chain:{ *:[v8f16] } 3500:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VRINTNNQh:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
13863 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRINTNNQh),
13864 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13865 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13866 GIR_RootConstrainSelectedInstOperands,
13867 // GIR_Coverage, 1713,
13868 GIR_EraseRootFromParent_Done,
13869 // Label 893: @36596
13870 GIM_Try, /*On fail goto*//*Label 894*/ GIMT_Encode4(36632), // Rule ID 1714 //
13871 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasV8),
13872 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrintx),
13873 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
13874 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
13875 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13876 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13877 // (intrinsic_wo_chain:{ *:[v2f32] } 3502:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VRINTXNDf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
13878 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRINTXNDf),
13879 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13880 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13881 GIR_RootConstrainSelectedInstOperands,
13882 // GIR_Coverage, 1714,
13883 GIR_EraseRootFromParent_Done,
13884 // Label 894: @36632
13885 GIM_Try, /*On fail goto*//*Label 895*/ GIMT_Encode4(36668), // Rule ID 1715 //
13886 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasV8),
13887 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrintx),
13888 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
13889 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
13890 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13891 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13892 // (intrinsic_wo_chain:{ *:[v4f32] } 3502:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VRINTXNQf:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
13893 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRINTXNQf),
13894 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13895 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13896 GIR_RootConstrainSelectedInstOperands,
13897 // GIR_Coverage, 1715,
13898 GIR_EraseRootFromParent_Done,
13899 // Label 895: @36668
13900 GIM_Try, /*On fail goto*//*Label 896*/ GIMT_Encode4(36704), // Rule ID 1716 //
13901 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON_HasV8),
13902 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrintx),
13903 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
13904 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
13905 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13906 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13907 // (intrinsic_wo_chain:{ *:[v4f16] } 3502:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VRINTXNDh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
13908 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRINTXNDh),
13909 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13910 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13911 GIR_RootConstrainSelectedInstOperands,
13912 // GIR_Coverage, 1716,
13913 GIR_EraseRootFromParent_Done,
13914 // Label 896: @36704
13915 GIM_Try, /*On fail goto*//*Label 897*/ GIMT_Encode4(36740), // Rule ID 1717 //
13916 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON_HasV8),
13917 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrintx),
13918 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
13919 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
13920 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13921 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13922 // (intrinsic_wo_chain:{ *:[v8f16] } 3502:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VRINTXNQh:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
13923 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRINTXNQh),
13924 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13925 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13926 GIR_RootConstrainSelectedInstOperands,
13927 // GIR_Coverage, 1717,
13928 GIR_EraseRootFromParent_Done,
13929 // Label 897: @36740
13930 GIM_Try, /*On fail goto*//*Label 898*/ GIMT_Encode4(36776), // Rule ID 1718 //
13931 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasV8),
13932 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrinta),
13933 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
13934 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
13935 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13936 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13937 // (intrinsic_wo_chain:{ *:[v2f32] } 3498:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VRINTANDf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
13938 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRINTANDf),
13939 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13940 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13941 GIR_RootConstrainSelectedInstOperands,
13942 // GIR_Coverage, 1718,
13943 GIR_EraseRootFromParent_Done,
13944 // Label 898: @36776
13945 GIM_Try, /*On fail goto*//*Label 899*/ GIMT_Encode4(36812), // Rule ID 1719 //
13946 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasV8),
13947 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrinta),
13948 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
13949 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
13950 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13951 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13952 // (intrinsic_wo_chain:{ *:[v4f32] } 3498:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VRINTANQf:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
13953 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRINTANQf),
13954 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13955 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13956 GIR_RootConstrainSelectedInstOperands,
13957 // GIR_Coverage, 1719,
13958 GIR_EraseRootFromParent_Done,
13959 // Label 899: @36812
13960 GIM_Try, /*On fail goto*//*Label 900*/ GIMT_Encode4(36848), // Rule ID 1720 //
13961 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON_HasV8),
13962 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrinta),
13963 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
13964 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
13965 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13966 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13967 // (intrinsic_wo_chain:{ *:[v4f16] } 3498:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VRINTANDh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
13968 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRINTANDh),
13969 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13970 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13971 GIR_RootConstrainSelectedInstOperands,
13972 // GIR_Coverage, 1720,
13973 GIR_EraseRootFromParent_Done,
13974 // Label 900: @36848
13975 GIM_Try, /*On fail goto*//*Label 901*/ GIMT_Encode4(36884), // Rule ID 1721 //
13976 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON_HasV8),
13977 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrinta),
13978 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
13979 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
13980 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13981 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
13982 // (intrinsic_wo_chain:{ *:[v8f16] } 3498:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VRINTANQh:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
13983 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRINTANQh),
13984 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
13985 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
13986 GIR_RootConstrainSelectedInstOperands,
13987 // GIR_Coverage, 1721,
13988 GIR_EraseRootFromParent_Done,
13989 // Label 901: @36884
13990 GIM_Try, /*On fail goto*//*Label 902*/ GIMT_Encode4(36920), // Rule ID 1722 //
13991 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasV8),
13992 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrintz),
13993 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
13994 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
13995 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13996 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
13997 // (intrinsic_wo_chain:{ *:[v2f32] } 3503:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VRINTZNDf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
13998 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRINTZNDf),
13999 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
14000 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
14001 GIR_RootConstrainSelectedInstOperands,
14002 // GIR_Coverage, 1722,
14003 GIR_EraseRootFromParent_Done,
14004 // Label 902: @36920
14005 GIM_Try, /*On fail goto*//*Label 903*/ GIMT_Encode4(36956), // Rule ID 1723 //
14006 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasV8),
14007 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrintz),
14008 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
14009 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
14010 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
14011 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
14012 // (intrinsic_wo_chain:{ *:[v4f32] } 3503:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VRINTZNQf:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
14013 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRINTZNQf),
14014 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
14015 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
14016 GIR_RootConstrainSelectedInstOperands,
14017 // GIR_Coverage, 1723,
14018 GIR_EraseRootFromParent_Done,
14019 // Label 903: @36956
14020 GIM_Try, /*On fail goto*//*Label 904*/ GIMT_Encode4(36992), // Rule ID 1724 //
14021 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON_HasV8),
14022 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrintz),
14023 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
14024 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
14025 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
14026 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
14027 // (intrinsic_wo_chain:{ *:[v4f16] } 3503:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VRINTZNDh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
14028 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRINTZNDh),
14029 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
14030 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
14031 GIR_RootConstrainSelectedInstOperands,
14032 // GIR_Coverage, 1724,
14033 GIR_EraseRootFromParent_Done,
14034 // Label 904: @36992
14035 GIM_Try, /*On fail goto*//*Label 905*/ GIMT_Encode4(37028), // Rule ID 1725 //
14036 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON_HasV8),
14037 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrintz),
14038 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
14039 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
14040 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
14041 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
14042 // (intrinsic_wo_chain:{ *:[v8f16] } 3503:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VRINTZNQh:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
14043 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRINTZNQh),
14044 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
14045 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
14046 GIR_RootConstrainSelectedInstOperands,
14047 // GIR_Coverage, 1725,
14048 GIR_EraseRootFromParent_Done,
14049 // Label 905: @37028
14050 GIM_Try, /*On fail goto*//*Label 906*/ GIMT_Encode4(37064), // Rule ID 1726 //
14051 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasV8),
14052 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrintm),
14053 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
14054 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
14055 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
14056 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
14057 // (intrinsic_wo_chain:{ *:[v2f32] } 3499:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VRINTMNDf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
14058 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRINTMNDf),
14059 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
14060 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
14061 GIR_RootConstrainSelectedInstOperands,
14062 // GIR_Coverage, 1726,
14063 GIR_EraseRootFromParent_Done,
14064 // Label 906: @37064
14065 GIM_Try, /*On fail goto*//*Label 907*/ GIMT_Encode4(37100), // Rule ID 1727 //
14066 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasV8),
14067 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrintm),
14068 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
14069 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
14070 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
14071 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
14072 // (intrinsic_wo_chain:{ *:[v4f32] } 3499:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VRINTMNQf:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
14073 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRINTMNQf),
14074 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
14075 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
14076 GIR_RootConstrainSelectedInstOperands,
14077 // GIR_Coverage, 1727,
14078 GIR_EraseRootFromParent_Done,
14079 // Label 907: @37100
14080 GIM_Try, /*On fail goto*//*Label 908*/ GIMT_Encode4(37136), // Rule ID 1728 //
14081 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON_HasV8),
14082 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrintm),
14083 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
14084 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
14085 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
14086 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
14087 // (intrinsic_wo_chain:{ *:[v4f16] } 3499:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VRINTMNDh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
14088 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRINTMNDh),
14089 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
14090 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
14091 GIR_RootConstrainSelectedInstOperands,
14092 // GIR_Coverage, 1728,
14093 GIR_EraseRootFromParent_Done,
14094 // Label 908: @37136
14095 GIM_Try, /*On fail goto*//*Label 909*/ GIMT_Encode4(37172), // Rule ID 1729 //
14096 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON_HasV8),
14097 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrintm),
14098 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
14099 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
14100 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
14101 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
14102 // (intrinsic_wo_chain:{ *:[v8f16] } 3499:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VRINTMNQh:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
14103 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRINTMNQh),
14104 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
14105 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
14106 GIR_RootConstrainSelectedInstOperands,
14107 // GIR_Coverage, 1729,
14108 GIR_EraseRootFromParent_Done,
14109 // Label 909: @37172
14110 GIM_Try, /*On fail goto*//*Label 910*/ GIMT_Encode4(37208), // Rule ID 1730 //
14111 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasV8),
14112 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrintp),
14113 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
14114 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
14115 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
14116 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
14117 // (intrinsic_wo_chain:{ *:[v2f32] } 3501:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VRINTPNDf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
14118 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRINTPNDf),
14119 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
14120 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
14121 GIR_RootConstrainSelectedInstOperands,
14122 // GIR_Coverage, 1730,
14123 GIR_EraseRootFromParent_Done,
14124 // Label 910: @37208
14125 GIM_Try, /*On fail goto*//*Label 911*/ GIMT_Encode4(37244), // Rule ID 1731 //
14126 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasV8),
14127 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrintp),
14128 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
14129 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
14130 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
14131 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
14132 // (intrinsic_wo_chain:{ *:[v4f32] } 3501:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VRINTPNQf:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
14133 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRINTPNQf),
14134 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
14135 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
14136 GIR_RootConstrainSelectedInstOperands,
14137 // GIR_Coverage, 1731,
14138 GIR_EraseRootFromParent_Done,
14139 // Label 911: @37244
14140 GIM_Try, /*On fail goto*//*Label 912*/ GIMT_Encode4(37280), // Rule ID 1732 //
14141 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON_HasV8),
14142 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrintp),
14143 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
14144 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
14145 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
14146 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
14147 // (intrinsic_wo_chain:{ *:[v4f16] } 3501:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VRINTPNDh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
14148 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRINTPNDh),
14149 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
14150 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
14151 GIR_RootConstrainSelectedInstOperands,
14152 // GIR_Coverage, 1732,
14153 GIR_EraseRootFromParent_Done,
14154 // Label 912: @37280
14155 GIM_Try, /*On fail goto*//*Label 913*/ GIMT_Encode4(37316), // Rule ID 1733 //
14156 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON_HasV8),
14157 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrintp),
14158 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
14159 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
14160 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
14161 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
14162 // (intrinsic_wo_chain:{ *:[v8f16] } 3501:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VRINTPNQh:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
14163 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRINTPNQh),
14164 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
14165 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
14166 GIR_RootConstrainSelectedInstOperands,
14167 // GIR_Coverage, 1733,
14168 GIR_EraseRootFromParent_Done,
14169 // Label 913: @37316
14170 GIM_Try, /*On fail goto*//*Label 914*/ GIMT_Encode4(37352), // Rule ID 1736 //
14171 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasAES_HasV8),
14172 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_aesimc),
14173 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
14174 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
14175 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
14176 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
14177 // (intrinsic_wo_chain:{ *:[v16i8] } 3389:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm) => (AESIMC:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
14178 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::AESIMC),
14179 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
14180 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
14181 GIR_RootConstrainSelectedInstOperands,
14182 // GIR_Coverage, 1736,
14183 GIR_EraseRootFromParent_Done,
14184 // Label 914: @37352
14185 GIM_Try, /*On fail goto*//*Label 915*/ GIMT_Encode4(37388), // Rule ID 1737 //
14186 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasAES_HasV8),
14187 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_aesmc),
14188 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
14189 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
14190 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
14191 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
14192 // (intrinsic_wo_chain:{ *:[v16i8] } 3390:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm) => (AESMC:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
14193 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::AESMC),
14194 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
14195 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
14196 GIR_RootConstrainSelectedInstOperands,
14197 // GIR_Coverage, 1737,
14198 GIR_EraseRootFromParent_Done,
14199 // Label 915: @37388
14200 GIM_Try, /*On fail goto*//*Label 916*/ GIMT_Encode4(37436), // Rule ID 1875 //
14201 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
14202 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_sxtb16),
14203 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
14204 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
14205 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
14206 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
14207 // (intrinsic_wo_chain:{ *:[i32] } 3589:{ *:[iPTR] }, GPR:{ *:[i32] }:$Src) => (SXTB16:{ *:[i32] } GPR:{ *:[i32] }:$Src, 0:{ *:[i32] })
14208 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SXTB16),
14209 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
14210 GIR_RootToRootCopy, /*OpIdx*/2, // Src
14211 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
14212 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
14213 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14214 GIR_RootConstrainSelectedInstOperands,
14215 // GIR_Coverage, 1875,
14216 GIR_EraseRootFromParent_Done,
14217 // Label 916: @37436
14218 GIM_Try, /*On fail goto*//*Label 917*/ GIMT_Encode4(37484), // Rule ID 2106 //
14219 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
14220 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_sxtb16),
14221 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
14222 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
14223 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
14224 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
14225 // (intrinsic_wo_chain:{ *:[i32] } 3589:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn) => (t2SXTB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, 0:{ *:[i32] })
14226 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SXTB16),
14227 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
14228 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
14229 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
14230 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
14231 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14232 GIR_RootConstrainSelectedInstOperands,
14233 // GIR_Coverage, 2106,
14234 GIR_EraseRootFromParent_Done,
14235 // Label 917: @37484
14236 GIM_Try, /*On fail goto*//*Label 918*/ GIMT_Encode4(37548), // Rule ID 3763 //
14237 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
14238 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vcls),
14239 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
14240 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
14241 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
14242 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
14243 // (intrinsic_wo_chain:{ *:[v16i8] } 3271:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$val) => (MVE_VCLSs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$val)
14244 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
14245 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
14246 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
14247 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCLSs8),
14248 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
14249 GIR_RootToRootCopy, /*OpIdx*/2, // val
14250 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
14251 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14252 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14253 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
14254 GIR_RootConstrainSelectedInstOperands,
14255 // GIR_Coverage, 3763,
14256 GIR_EraseRootFromParent_Done,
14257 // Label 918: @37548
14258 GIM_Try, /*On fail goto*//*Label 919*/ GIMT_Encode4(37612), // Rule ID 3765 //
14259 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
14260 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vcls),
14261 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
14262 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
14263 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
14264 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
14265 // (intrinsic_wo_chain:{ *:[v8i16] } 3271:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$val) => (MVE_VCLSs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$val)
14266 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
14267 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
14268 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
14269 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCLSs16),
14270 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
14271 GIR_RootToRootCopy, /*OpIdx*/2, // val
14272 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
14273 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14274 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14275 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
14276 GIR_RootConstrainSelectedInstOperands,
14277 // GIR_Coverage, 3765,
14278 GIR_EraseRootFromParent_Done,
14279 // Label 919: @37612
14280 GIM_Try, /*On fail goto*//*Label 920*/ GIMT_Encode4(37676), // Rule ID 3767 //
14281 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
14282 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vcls),
14283 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
14284 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
14285 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
14286 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
14287 // (intrinsic_wo_chain:{ *:[v4i32] } 3271:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$val) => (MVE_VCLSs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$val)
14288 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
14289 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
14290 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
14291 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCLSs32),
14292 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
14293 GIR_RootToRootCopy, /*OpIdx*/2, // val
14294 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
14295 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14296 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14297 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
14298 GIR_RootConstrainSelectedInstOperands,
14299 // GIR_Coverage, 3767,
14300 GIR_EraseRootFromParent_Done,
14301 // Label 920: @37676
14302 GIM_Try, /*On fail goto*//*Label 921*/ GIMT_Encode4(37740), // Rule ID 4079 //
14303 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
14304 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vrintn),
14305 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
14306 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
14307 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
14308 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
14309 // (intrinsic_wo_chain:{ *:[v8f16] } 3353:{ *:[iPTR] }, MQPR:{ *:[v8f16] }:$val) => (MVE_VRINTf16N:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$val)
14310 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
14311 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
14312 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
14313 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRINTf16N),
14314 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
14315 GIR_RootToRootCopy, /*OpIdx*/2, // val
14316 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
14317 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14318 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14319 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
14320 GIR_RootConstrainSelectedInstOperands,
14321 // GIR_Coverage, 4079,
14322 GIR_EraseRootFromParent_Done,
14323 // Label 921: @37740
14324 GIM_Try, /*On fail goto*//*Label 922*/ GIMT_Encode4(37804), // Rule ID 4091 //
14325 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
14326 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vrintn),
14327 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
14328 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
14329 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
14330 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
14331 // (intrinsic_wo_chain:{ *:[v4f32] } 3353:{ *:[iPTR] }, MQPR:{ *:[v4f32] }:$val) => (MVE_VRINTf32N:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$val)
14332 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
14333 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
14334 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
14335 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRINTf32N),
14336 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
14337 GIR_RootToRootCopy, /*OpIdx*/2, // val
14338 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
14339 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14340 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14341 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
14342 GIR_RootConstrainSelectedInstOperands,
14343 // GIR_Coverage, 4091,
14344 GIR_EraseRootFromParent_Done,
14345 // Label 922: @37804
14346 GIM_Try, /*On fail goto*//*Label 923*/ GIMT_Encode4(37855), // Rule ID 4981 //
14347 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
14348 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vctp8),
14349 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s1,
14350 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
14351 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::VCCRRegClassID),
14352 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
14353 // (intrinsic_wo_chain:{ *:[v16i1] } 3279:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn) => (MVE_VCTP8:{ *:[v16i1] } rGPR:{ *:[i32] }:$Rn)
14354 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCTP8),
14355 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[P0]
14356 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
14357 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
14358 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14359 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14360 GIR_RootConstrainSelectedInstOperands,
14361 // GIR_Coverage, 4981,
14362 GIR_EraseRootFromParent_Done,
14363 // Label 923: @37855
14364 GIM_Try, /*On fail goto*//*Label 924*/ GIMT_Encode4(37906), // Rule ID 4983 //
14365 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
14366 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vctp16),
14367 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s1,
14368 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
14369 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::VCCRRegClassID),
14370 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
14371 // (intrinsic_wo_chain:{ *:[v8i1] } 3276:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn) => (MVE_VCTP16:{ *:[v8i1] } rGPR:{ *:[i32] }:$Rn)
14372 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCTP16),
14373 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[P0]
14374 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
14375 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
14376 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14377 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14378 GIR_RootConstrainSelectedInstOperands,
14379 // GIR_Coverage, 4983,
14380 GIR_EraseRootFromParent_Done,
14381 // Label 924: @37906
14382 GIM_Try, /*On fail goto*//*Label 925*/ GIMT_Encode4(37957), // Rule ID 4985 //
14383 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
14384 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vctp32),
14385 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s1,
14386 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
14387 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::VCCRRegClassID),
14388 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
14389 // (intrinsic_wo_chain:{ *:[v4i1] } 3277:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn) => (MVE_VCTP32:{ *:[v4i1] } rGPR:{ *:[i32] }:$Rn)
14390 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCTP32),
14391 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[P0]
14392 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
14393 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
14394 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14395 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14396 GIR_RootConstrainSelectedInstOperands,
14397 // GIR_Coverage, 4985,
14398 GIR_EraseRootFromParent_Done,
14399 // Label 925: @37957
14400 GIM_Try, /*On fail goto*//*Label 926*/ GIMT_Encode4(38008), // Rule ID 4987 //
14401 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
14402 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vctp64),
14403 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s1,
14404 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
14405 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::VCCRRegClassID),
14406 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
14407 // (intrinsic_wo_chain:{ *:[v2i1] } 3278:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn) => (MVE_VCTP64:{ *:[v2i1] } rGPR:{ *:[i32] }:$Rn)
14408 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCTP64),
14409 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[P0]
14410 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
14411 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
14412 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14413 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14414 GIR_RootConstrainSelectedInstOperands,
14415 // GIR_Coverage, 4987,
14416 GIR_EraseRootFromParent_Done,
14417 // Label 926: @38008
14418 GIM_Try, /*On fail goto*//*Label 927*/ GIMT_Encode4(38054), // Rule ID 617 //
14419 GIM_CheckFeatures, GIMT_Encode2(GIFBS_Has8MSecExt_IsThumb),
14420 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_cmse_tt),
14421 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
14422 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
14423 // MIs[0] Rn
14424 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
14425 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
14426 // (intrinsic_wo_chain:{ *:[i32] } 3161:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn) => (t2TT:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn)
14427 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2TT),
14428 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rt]
14429 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
14430 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
14431 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14432 GIR_RootConstrainSelectedInstOperands,
14433 // GIR_Coverage, 617,
14434 GIR_EraseRootFromParent_Done,
14435 // Label 927: @38054
14436 GIM_Try, /*On fail goto*//*Label 928*/ GIMT_Encode4(38100), // Rule ID 618 //
14437 GIM_CheckFeatures, GIMT_Encode2(GIFBS_Has8MSecExt_IsThumb),
14438 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_cmse_ttt),
14439 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
14440 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
14441 // MIs[0] Rn
14442 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
14443 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
14444 // (intrinsic_wo_chain:{ *:[i32] } 3164:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn) => (t2TTT:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn)
14445 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2TTT),
14446 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rt]
14447 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
14448 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
14449 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14450 GIR_RootConstrainSelectedInstOperands,
14451 // GIR_Coverage, 618,
14452 GIR_EraseRootFromParent_Done,
14453 // Label 928: @38100
14454 GIM_Try, /*On fail goto*//*Label 929*/ GIMT_Encode4(38146), // Rule ID 619 //
14455 GIM_CheckFeatures, GIMT_Encode2(GIFBS_Has8MSecExt_IsThumb),
14456 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_cmse_tta),
14457 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
14458 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
14459 // MIs[0] Rn
14460 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
14461 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
14462 // (intrinsic_wo_chain:{ *:[i32] } 3162:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn) => (t2TTA:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn)
14463 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2TTA),
14464 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rt]
14465 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
14466 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
14467 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14468 GIR_RootConstrainSelectedInstOperands,
14469 // GIR_Coverage, 619,
14470 GIR_EraseRootFromParent_Done,
14471 // Label 929: @38146
14472 GIM_Try, /*On fail goto*//*Label 930*/ GIMT_Encode4(38192), // Rule ID 620 //
14473 GIM_CheckFeatures, GIMT_Encode2(GIFBS_Has8MSecExt_IsThumb),
14474 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_cmse_ttat),
14475 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
14476 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
14477 // MIs[0] Rn
14478 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
14479 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
14480 // (intrinsic_wo_chain:{ *:[i32] } 3163:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn) => (t2TTAT:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn)
14481 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2TTAT),
14482 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rt]
14483 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
14484 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
14485 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14486 GIR_RootConstrainSelectedInstOperands,
14487 // GIR_Coverage, 620,
14488 GIR_EraseRootFromParent_Done,
14489 // Label 930: @38192
14490 GIM_Try, /*On fail goto*//*Label 931*/ GIMT_Encode4(38324), // Rule ID 2711 //
14491 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
14492 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_sha1h),
14493 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
14494 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
14495 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
14496 // (intrinsic_wo_chain:{ *:[i32] } 3397:{ *:[iPTR] }, i32:{ *:[i32] }:$Rn) => (COPY_TO_REGCLASS:{ *:[i32] } (EXTRACT_SUBREG:{ *:[f32] } (SHA1H:{ *:[v16i8] } (SUBREG_TO_REG:{ *:[v16i8] } 0:{ *:[i64] }, (COPY_TO_REGCLASS:{ *:[f32] } i32:{ *:[i32] }:$Rn, SPR:{ *:[i32] }), ssub_0:{ *:[i32] })), ssub_0:{ *:[i32] }), GPR:{ *:[i32] })
14497 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
14498 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v16s8,
14499 GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v16s8,
14500 GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_s32,
14501 GIR_BuildMI, /*InsnID*/4, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
14502 GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/3, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
14503 GIR_Copy, /*NewInsnID*/4, /*OldInsnID*/0, /*OpIdx*/2, // Rn
14504 GIR_ConstrainSelectedInstOperands, /*InsnID*/4,
14505 GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::SUBREG_TO_REG),
14506 GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
14507 GIR_AddImm8, /*InsnID*/3, /*Imm*/0,
14508 GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/3,
14509 GIR_AddImm8, /*InsnID*/3, /*Imm*/17,
14510 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/0, GIMT_Encode2(ARM::DPair_with_ssub_0RegClassID),
14511 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/2, GIMT_Encode2(ARM::SPRRegClassID),
14512 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(ARM::SHA1H),
14513 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
14514 GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
14515 GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
14516 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
14517 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
14518 GIR_AddTempSubRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(0), GIMT_Encode2(ARM::ssub_0),
14519 GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/0, GIMT_Encode2(ARM::SPRRegClassID),
14520 GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/1, GIMT_Encode2(ARM::MQPRRegClassID),
14521 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
14522 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
14523 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
14524 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::GPRRegClassID),
14525 // GIR_Coverage, 2711,
14526 GIR_EraseRootFromParent_Done,
14527 // Label 931: @38324
14528 GIM_Reject,
14529 // Label 795: @38325
14530 GIM_Try, /*On fail goto*//*Label 932*/ GIMT_Encode4(58791),
14531 GIM_CheckNumOperands, /*MI*/0, /*Expected*/4,
14532 GIM_Try, /*On fail goto*//*Label 933*/ GIMT_Encode4(38390), // Rule ID 2124 //
14533 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
14534 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_uxtab16),
14535 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
14536 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
14537 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
14538 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
14539 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
14540 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
14541 // (intrinsic_wo_chain:{ *:[i32] } 3613:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UXTAB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
14542 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2UXTAB16),
14543 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
14544 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
14545 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
14546 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
14547 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
14548 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14549 GIR_RootConstrainSelectedInstOperands,
14550 // GIR_Coverage, 2124,
14551 GIR_EraseRootFromParent_Done,
14552 // Label 933: @38390
14553 GIM_Try, /*On fail goto*//*Label 934*/ GIMT_Encode4(38489), // Rule ID 1912 //
14554 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
14555 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_usat),
14556 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
14557 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
14558 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
14559 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
14560 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
14561 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
14562 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
14563 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
14564 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
14565 GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
14566 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
14567 GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm0_31),
14568 // MIs[2] Operand 1
14569 // No operand predicates
14570 GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/3, // MIs[3]
14571 GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
14572 GIM_CheckI64ImmPredicate, /*MI*/3, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm0_31),
14573 // MIs[3] Operand 1
14574 // No operand predicates
14575 GIM_CheckIsSafeToFold, /*NumInsns*/3,
14576 // (intrinsic_wo_chain:{ *:[i32] } 3608:{ *:[iPTR] }, (shl:{ *:[i32] } GPRnopc:{ *:[i32] }:$a, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$shft), (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$pos) => (USAT:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$pos, GPRnopc:{ *:[i32] }:$a, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$shft)
14577 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::USAT),
14578 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
14579 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // pos
14580 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // a
14581 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // shft
14582 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
14583 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14584 GIR_RootConstrainSelectedInstOperands,
14585 // GIR_Coverage, 1912,
14586 GIR_EraseRootFromParent_Done,
14587 // Label 934: @38489
14588 GIM_Try, /*On fail goto*//*Label 935*/ GIMT_Encode4(38588), // Rule ID 2161 //
14589 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
14590 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_usat),
14591 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
14592 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
14593 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
14594 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
14595 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
14596 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
14597 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
14598 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
14599 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
14600 GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
14601 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
14602 GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm0_31),
14603 // MIs[2] Operand 1
14604 // No operand predicates
14605 GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/3, // MIs[3]
14606 GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
14607 GIM_CheckI64ImmPredicate, /*MI*/3, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm0_31),
14608 // MIs[3] Operand 1
14609 // No operand predicates
14610 GIM_CheckIsSafeToFold, /*NumInsns*/3,
14611 // (intrinsic_wo_chain:{ *:[i32] } 3608:{ *:[iPTR] }, (shl:{ *:[i32] } GPRnopc:{ *:[i32] }:$a, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$shft), (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$pos) => (t2USAT:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$pos, GPRnopc:{ *:[i32] }:$a, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$shft)
14612 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2USAT),
14613 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
14614 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // pos
14615 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // a
14616 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // shft
14617 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
14618 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14619 GIR_RootConstrainSelectedInstOperands,
14620 // GIR_Coverage, 2161,
14621 GIR_EraseRootFromParent_Done,
14622 // Label 935: @38588
14623 GIM_Try, /*On fail goto*//*Label 936*/ GIMT_Encode4(38672), // Rule ID 5547 //
14624 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
14625 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_qadd),
14626 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
14627 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
14628 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
14629 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
14630 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
14631 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTRINSIC),
14632 GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
14633 GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, GIMT_Encode2(Intrinsic::arm_qadd),
14634 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
14635 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
14636 // MIs[1] Rn
14637 GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
14638 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
14639 GIM_CheckIsSafeToFold, /*NumInsns*/1,
14640 // (intrinsic_wo_chain:{ *:[i32] } 3531:{ *:[iPTR] }, (intrinsic_wo_chain:{ *:[i32] } 3531:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rn), GPRnopc:{ *:[i32] }:$Rm) => (QDADD:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rn)
14641 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::QDADD),
14642 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
14643 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
14644 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rn
14645 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
14646 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14647 GIR_RootConstrainSelectedInstOperands,
14648 // GIR_Coverage, 5547,
14649 GIR_EraseRootFromParent_Done,
14650 // Label 936: @38672
14651 GIM_Try, /*On fail goto*//*Label 937*/ GIMT_Encode4(38756), // Rule ID 5804 //
14652 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
14653 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_qadd),
14654 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
14655 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
14656 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
14657 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
14658 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
14659 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTRINSIC),
14660 GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
14661 GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, GIMT_Encode2(Intrinsic::arm_qadd),
14662 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
14663 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
14664 // MIs[1] Rn
14665 GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
14666 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
14667 GIM_CheckIsSafeToFold, /*NumInsns*/1,
14668 // (intrinsic_wo_chain:{ *:[i32] } 3531:{ *:[iPTR] }, (intrinsic_wo_chain:{ *:[i32] } 3531:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rn), rGPR:{ *:[i32] }:$Rm) => (t2QDADD:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
14669 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2QDADD),
14670 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
14671 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
14672 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rn
14673 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
14674 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14675 GIR_RootConstrainSelectedInstOperands,
14676 // GIR_Coverage, 5804,
14677 GIR_EraseRootFromParent_Done,
14678 // Label 937: @38756
14679 GIM_Try, /*On fail goto*//*Label 938*/ GIMT_Encode4(38840), // Rule ID 109 //
14680 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
14681 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_qadd),
14682 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
14683 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
14684 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
14685 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
14686 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
14687 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
14688 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTRINSIC),
14689 GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
14690 GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, GIMT_Encode2(Intrinsic::arm_qadd),
14691 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
14692 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
14693 // MIs[1] Rn
14694 GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
14695 GIM_CheckIsSafeToFold, /*NumInsns*/1,
14696 // (intrinsic_wo_chain:{ *:[i32] } 3531:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rm, (intrinsic_wo_chain:{ *:[i32] } 3531:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rn)) => (QDADD:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rn)
14697 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::QDADD),
14698 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
14699 GIR_RootToRootCopy, /*OpIdx*/2, // Rm
14700 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rn
14701 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
14702 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14703 GIR_RootConstrainSelectedInstOperands,
14704 // GIR_Coverage, 109,
14705 GIR_EraseRootFromParent_Done,
14706 // Label 938: @38840
14707 GIM_Try, /*On fail goto*//*Label 939*/ GIMT_Encode4(38924), // Rule ID 110 //
14708 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
14709 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_qsub),
14710 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
14711 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
14712 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
14713 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
14714 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
14715 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
14716 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTRINSIC),
14717 GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
14718 GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, GIMT_Encode2(Intrinsic::arm_qadd),
14719 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
14720 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
14721 // MIs[1] Rn
14722 GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
14723 GIM_CheckIsSafeToFold, /*NumInsns*/1,
14724 // (intrinsic_wo_chain:{ *:[i32] } 3536:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rm, (intrinsic_wo_chain:{ *:[i32] } 3531:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rn)) => (QDSUB:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rn)
14725 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::QDSUB),
14726 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
14727 GIR_RootToRootCopy, /*OpIdx*/2, // Rm
14728 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rn
14729 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
14730 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14731 GIR_RootConstrainSelectedInstOperands,
14732 // GIR_Coverage, 110,
14733 GIR_EraseRootFromParent_Done,
14734 // Label 939: @38924
14735 GIM_Try, /*On fail goto*//*Label 940*/ GIMT_Encode4(39008), // Rule ID 2139 //
14736 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
14737 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_qadd),
14738 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
14739 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
14740 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
14741 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
14742 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
14743 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
14744 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTRINSIC),
14745 GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
14746 GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, GIMT_Encode2(Intrinsic::arm_qadd),
14747 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
14748 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
14749 // MIs[1] Rn
14750 GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
14751 GIM_CheckIsSafeToFold, /*NumInsns*/1,
14752 // (intrinsic_wo_chain:{ *:[i32] } 3531:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rm, (intrinsic_wo_chain:{ *:[i32] } 3531:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rn)) => (t2QDADD:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
14753 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2QDADD),
14754 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
14755 GIR_RootToRootCopy, /*OpIdx*/2, // Rm
14756 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rn
14757 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
14758 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14759 GIR_RootConstrainSelectedInstOperands,
14760 // GIR_Coverage, 2139,
14761 GIR_EraseRootFromParent_Done,
14762 // Label 940: @39008
14763 GIM_Try, /*On fail goto*//*Label 941*/ GIMT_Encode4(39092), // Rule ID 2140 //
14764 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
14765 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_qsub),
14766 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
14767 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
14768 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
14769 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
14770 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
14771 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
14772 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTRINSIC),
14773 GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
14774 GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, GIMT_Encode2(Intrinsic::arm_qadd),
14775 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
14776 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
14777 // MIs[1] Rn
14778 GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
14779 GIM_CheckIsSafeToFold, /*NumInsns*/1,
14780 // (intrinsic_wo_chain:{ *:[i32] } 3536:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rm, (intrinsic_wo_chain:{ *:[i32] } 3531:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rn)) => (t2QDSUB:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
14781 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2QDSUB),
14782 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
14783 GIR_RootToRootCopy, /*OpIdx*/2, // Rm
14784 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rn
14785 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
14786 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14787 GIR_RootConstrainSelectedInstOperands,
14788 // GIR_Coverage, 2140,
14789 GIR_EraseRootFromParent_Done,
14790 // Label 941: @39092
14791 GIM_Try, /*On fail goto*//*Label 942*/ GIMT_Encode4(39163), // Rule ID 4173 //
14792 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
14793 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vcvta),
14794 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
14795 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
14796 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
14797 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
14798 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
14799 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
14800 // (intrinsic_wo_chain:{ *:[v8i16] } 3287:{ *:[iPTR] }, 0:{ *:[i32] }, MQPR:{ *:[v8f16] }:$in) => (MVE_VCVTs16f16a:{ *:[v8i16] } MQPR:{ *:[v8f16] }:$in)
14801 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
14802 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
14803 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
14804 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCVTs16f16a),
14805 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
14806 GIR_RootToRootCopy, /*OpIdx*/3, // in
14807 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
14808 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14809 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14810 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
14811 GIR_RootConstrainSelectedInstOperands,
14812 // GIR_Coverage, 4173,
14813 GIR_EraseRootFromParent_Done,
14814 // Label 942: @39163
14815 GIM_Try, /*On fail goto*//*Label 943*/ GIMT_Encode4(39234), // Rule ID 4175 //
14816 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
14817 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vcvtn),
14818 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
14819 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
14820 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
14821 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
14822 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
14823 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
14824 // (intrinsic_wo_chain:{ *:[v8i16] } 3291:{ *:[iPTR] }, 0:{ *:[i32] }, MQPR:{ *:[v8f16] }:$in) => (MVE_VCVTs16f16n:{ *:[v8i16] } MQPR:{ *:[v8f16] }:$in)
14825 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
14826 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
14827 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
14828 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCVTs16f16n),
14829 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
14830 GIR_RootToRootCopy, /*OpIdx*/3, // in
14831 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
14832 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14833 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14834 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
14835 GIR_RootConstrainSelectedInstOperands,
14836 // GIR_Coverage, 4175,
14837 GIR_EraseRootFromParent_Done,
14838 // Label 943: @39234
14839 GIM_Try, /*On fail goto*//*Label 944*/ GIMT_Encode4(39305), // Rule ID 4177 //
14840 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
14841 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vcvtp),
14842 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
14843 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
14844 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
14845 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
14846 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
14847 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
14848 // (intrinsic_wo_chain:{ *:[v8i16] } 3293:{ *:[iPTR] }, 0:{ *:[i32] }, MQPR:{ *:[v8f16] }:$in) => (MVE_VCVTs16f16p:{ *:[v8i16] } MQPR:{ *:[v8f16] }:$in)
14849 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
14850 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
14851 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
14852 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCVTs16f16p),
14853 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
14854 GIR_RootToRootCopy, /*OpIdx*/3, // in
14855 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
14856 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14857 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14858 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
14859 GIR_RootConstrainSelectedInstOperands,
14860 // GIR_Coverage, 4177,
14861 GIR_EraseRootFromParent_Done,
14862 // Label 944: @39305
14863 GIM_Try, /*On fail goto*//*Label 945*/ GIMT_Encode4(39376), // Rule ID 4179 //
14864 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
14865 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vcvtm),
14866 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
14867 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
14868 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
14869 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
14870 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
14871 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
14872 // (intrinsic_wo_chain:{ *:[v8i16] } 3289:{ *:[iPTR] }, 0:{ *:[i32] }, MQPR:{ *:[v8f16] }:$in) => (MVE_VCVTs16f16m:{ *:[v8i16] } MQPR:{ *:[v8f16] }:$in)
14873 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
14874 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
14875 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
14876 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCVTs16f16m),
14877 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
14878 GIR_RootToRootCopy, /*OpIdx*/3, // in
14879 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
14880 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14881 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14882 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
14883 GIR_RootConstrainSelectedInstOperands,
14884 // GIR_Coverage, 4179,
14885 GIR_EraseRootFromParent_Done,
14886 // Label 945: @39376
14887 GIM_Try, /*On fail goto*//*Label 946*/ GIMT_Encode4(39447), // Rule ID 4181 //
14888 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
14889 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vcvta),
14890 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
14891 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
14892 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
14893 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
14894 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
14895 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
14896 // (intrinsic_wo_chain:{ *:[v8i16] } 3287:{ *:[iPTR] }, 1:{ *:[i32] }, MQPR:{ *:[v8f16] }:$in) => (MVE_VCVTu16f16a:{ *:[v8i16] } MQPR:{ *:[v8f16] }:$in)
14897 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
14898 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
14899 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
14900 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCVTu16f16a),
14901 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
14902 GIR_RootToRootCopy, /*OpIdx*/3, // in
14903 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
14904 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14905 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14906 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
14907 GIR_RootConstrainSelectedInstOperands,
14908 // GIR_Coverage, 4181,
14909 GIR_EraseRootFromParent_Done,
14910 // Label 946: @39447
14911 GIM_Try, /*On fail goto*//*Label 947*/ GIMT_Encode4(39518), // Rule ID 4183 //
14912 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
14913 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vcvtn),
14914 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
14915 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
14916 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
14917 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
14918 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
14919 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
14920 // (intrinsic_wo_chain:{ *:[v8i16] } 3291:{ *:[iPTR] }, 1:{ *:[i32] }, MQPR:{ *:[v8f16] }:$in) => (MVE_VCVTu16f16n:{ *:[v8i16] } MQPR:{ *:[v8f16] }:$in)
14921 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
14922 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
14923 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
14924 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCVTu16f16n),
14925 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
14926 GIR_RootToRootCopy, /*OpIdx*/3, // in
14927 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
14928 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14929 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14930 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
14931 GIR_RootConstrainSelectedInstOperands,
14932 // GIR_Coverage, 4183,
14933 GIR_EraseRootFromParent_Done,
14934 // Label 947: @39518
14935 GIM_Try, /*On fail goto*//*Label 948*/ GIMT_Encode4(39589), // Rule ID 4185 //
14936 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
14937 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vcvtp),
14938 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
14939 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
14940 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
14941 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
14942 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
14943 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
14944 // (intrinsic_wo_chain:{ *:[v8i16] } 3293:{ *:[iPTR] }, 1:{ *:[i32] }, MQPR:{ *:[v8f16] }:$in) => (MVE_VCVTu16f16p:{ *:[v8i16] } MQPR:{ *:[v8f16] }:$in)
14945 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
14946 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
14947 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
14948 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCVTu16f16p),
14949 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
14950 GIR_RootToRootCopy, /*OpIdx*/3, // in
14951 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
14952 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14953 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14954 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
14955 GIR_RootConstrainSelectedInstOperands,
14956 // GIR_Coverage, 4185,
14957 GIR_EraseRootFromParent_Done,
14958 // Label 948: @39589
14959 GIM_Try, /*On fail goto*//*Label 949*/ GIMT_Encode4(39660), // Rule ID 4187 //
14960 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
14961 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vcvtm),
14962 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
14963 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
14964 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
14965 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
14966 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
14967 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
14968 // (intrinsic_wo_chain:{ *:[v8i16] } 3289:{ *:[iPTR] }, 1:{ *:[i32] }, MQPR:{ *:[v8f16] }:$in) => (MVE_VCVTu16f16m:{ *:[v8i16] } MQPR:{ *:[v8f16] }:$in)
14969 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
14970 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
14971 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
14972 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCVTu16f16m),
14973 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
14974 GIR_RootToRootCopy, /*OpIdx*/3, // in
14975 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
14976 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14977 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
14978 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
14979 GIR_RootConstrainSelectedInstOperands,
14980 // GIR_Coverage, 4187,
14981 GIR_EraseRootFromParent_Done,
14982 // Label 949: @39660
14983 GIM_Try, /*On fail goto*//*Label 950*/ GIMT_Encode4(39731), // Rule ID 4189 //
14984 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
14985 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vcvta),
14986 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
14987 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
14988 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
14989 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
14990 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
14991 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
14992 // (intrinsic_wo_chain:{ *:[v4i32] } 3287:{ *:[iPTR] }, 0:{ *:[i32] }, MQPR:{ *:[v4f32] }:$in) => (MVE_VCVTs32f32a:{ *:[v4i32] } MQPR:{ *:[v4f32] }:$in)
14993 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
14994 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
14995 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
14996 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCVTs32f32a),
14997 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
14998 GIR_RootToRootCopy, /*OpIdx*/3, // in
14999 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
15000 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15001 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15002 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
15003 GIR_RootConstrainSelectedInstOperands,
15004 // GIR_Coverage, 4189,
15005 GIR_EraseRootFromParent_Done,
15006 // Label 950: @39731
15007 GIM_Try, /*On fail goto*//*Label 951*/ GIMT_Encode4(39802), // Rule ID 4191 //
15008 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
15009 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vcvtn),
15010 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
15011 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
15012 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
15013 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
15014 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
15015 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
15016 // (intrinsic_wo_chain:{ *:[v4i32] } 3291:{ *:[iPTR] }, 0:{ *:[i32] }, MQPR:{ *:[v4f32] }:$in) => (MVE_VCVTs32f32n:{ *:[v4i32] } MQPR:{ *:[v4f32] }:$in)
15017 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
15018 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
15019 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
15020 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCVTs32f32n),
15021 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
15022 GIR_RootToRootCopy, /*OpIdx*/3, // in
15023 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
15024 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15025 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15026 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
15027 GIR_RootConstrainSelectedInstOperands,
15028 // GIR_Coverage, 4191,
15029 GIR_EraseRootFromParent_Done,
15030 // Label 951: @39802
15031 GIM_Try, /*On fail goto*//*Label 952*/ GIMT_Encode4(39873), // Rule ID 4193 //
15032 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
15033 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vcvtp),
15034 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
15035 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
15036 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
15037 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
15038 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
15039 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
15040 // (intrinsic_wo_chain:{ *:[v4i32] } 3293:{ *:[iPTR] }, 0:{ *:[i32] }, MQPR:{ *:[v4f32] }:$in) => (MVE_VCVTs32f32p:{ *:[v4i32] } MQPR:{ *:[v4f32] }:$in)
15041 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
15042 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
15043 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
15044 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCVTs32f32p),
15045 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
15046 GIR_RootToRootCopy, /*OpIdx*/3, // in
15047 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
15048 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15049 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15050 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
15051 GIR_RootConstrainSelectedInstOperands,
15052 // GIR_Coverage, 4193,
15053 GIR_EraseRootFromParent_Done,
15054 // Label 952: @39873
15055 GIM_Try, /*On fail goto*//*Label 953*/ GIMT_Encode4(39944), // Rule ID 4195 //
15056 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
15057 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vcvtm),
15058 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
15059 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
15060 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
15061 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
15062 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
15063 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
15064 // (intrinsic_wo_chain:{ *:[v4i32] } 3289:{ *:[iPTR] }, 0:{ *:[i32] }, MQPR:{ *:[v4f32] }:$in) => (MVE_VCVTs32f32m:{ *:[v4i32] } MQPR:{ *:[v4f32] }:$in)
15065 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
15066 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
15067 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
15068 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCVTs32f32m),
15069 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
15070 GIR_RootToRootCopy, /*OpIdx*/3, // in
15071 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
15072 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15073 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15074 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
15075 GIR_RootConstrainSelectedInstOperands,
15076 // GIR_Coverage, 4195,
15077 GIR_EraseRootFromParent_Done,
15078 // Label 953: @39944
15079 GIM_Try, /*On fail goto*//*Label 954*/ GIMT_Encode4(40015), // Rule ID 4197 //
15080 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
15081 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vcvta),
15082 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
15083 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
15084 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
15085 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
15086 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
15087 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
15088 // (intrinsic_wo_chain:{ *:[v4i32] } 3287:{ *:[iPTR] }, 1:{ *:[i32] }, MQPR:{ *:[v4f32] }:$in) => (MVE_VCVTu32f32a:{ *:[v4i32] } MQPR:{ *:[v4f32] }:$in)
15089 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
15090 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
15091 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
15092 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCVTu32f32a),
15093 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
15094 GIR_RootToRootCopy, /*OpIdx*/3, // in
15095 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
15096 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15097 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15098 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
15099 GIR_RootConstrainSelectedInstOperands,
15100 // GIR_Coverage, 4197,
15101 GIR_EraseRootFromParent_Done,
15102 // Label 954: @40015
15103 GIM_Try, /*On fail goto*//*Label 955*/ GIMT_Encode4(40086), // Rule ID 4199 //
15104 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
15105 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vcvtn),
15106 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
15107 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
15108 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
15109 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
15110 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
15111 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
15112 // (intrinsic_wo_chain:{ *:[v4i32] } 3291:{ *:[iPTR] }, 1:{ *:[i32] }, MQPR:{ *:[v4f32] }:$in) => (MVE_VCVTu32f32n:{ *:[v4i32] } MQPR:{ *:[v4f32] }:$in)
15113 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
15114 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
15115 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
15116 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCVTu32f32n),
15117 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
15118 GIR_RootToRootCopy, /*OpIdx*/3, // in
15119 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
15120 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15121 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15122 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
15123 GIR_RootConstrainSelectedInstOperands,
15124 // GIR_Coverage, 4199,
15125 GIR_EraseRootFromParent_Done,
15126 // Label 955: @40086
15127 GIM_Try, /*On fail goto*//*Label 956*/ GIMT_Encode4(40157), // Rule ID 4201 //
15128 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
15129 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vcvtp),
15130 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
15131 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
15132 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
15133 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
15134 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
15135 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
15136 // (intrinsic_wo_chain:{ *:[v4i32] } 3293:{ *:[iPTR] }, 1:{ *:[i32] }, MQPR:{ *:[v4f32] }:$in) => (MVE_VCVTu32f32p:{ *:[v4i32] } MQPR:{ *:[v4f32] }:$in)
15137 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
15138 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
15139 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
15140 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCVTu32f32p),
15141 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
15142 GIR_RootToRootCopy, /*OpIdx*/3, // in
15143 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
15144 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15145 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15146 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
15147 GIR_RootConstrainSelectedInstOperands,
15148 // GIR_Coverage, 4201,
15149 GIR_EraseRootFromParent_Done,
15150 // Label 956: @40157
15151 GIM_Try, /*On fail goto*//*Label 957*/ GIMT_Encode4(40228), // Rule ID 4203 //
15152 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
15153 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vcvtm),
15154 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
15155 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
15156 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
15157 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
15158 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
15159 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
15160 // (intrinsic_wo_chain:{ *:[v4i32] } 3289:{ *:[iPTR] }, 1:{ *:[i32] }, MQPR:{ *:[v4f32] }:$in) => (MVE_VCVTu32f32m:{ *:[v4i32] } MQPR:{ *:[v4f32] }:$in)
15161 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
15162 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
15163 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
15164 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCVTu32f32m),
15165 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
15166 GIR_RootToRootCopy, /*OpIdx*/3, // in
15167 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
15168 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15169 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15170 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
15171 GIR_RootConstrainSelectedInstOperands,
15172 // GIR_Coverage, 4203,
15173 GIR_EraseRootFromParent_Done,
15174 // Label 957: @40228
15175 GIM_Try, /*On fail goto*//*Label 958*/ GIMT_Encode4(40299), // Rule ID 4647 //
15176 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
15177 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vcvt_widen),
15178 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
15179 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
15180 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
15181 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
15182 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
15183 GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
15184 // (intrinsic_wo_chain:{ *:[v4f32] } 3285:{ *:[iPTR] }, MQPR:{ *:[v8f16] }:$Qm, 0:{ *:[i32] }) => (MVE_VCVTf32f16bh:{ *:[v4f32] } MQPR:{ *:[v8f16] }:$Qm)
15185 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
15186 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
15187 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
15188 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCVTf32f16bh),
15189 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
15190 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
15191 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
15192 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15193 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15194 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
15195 GIR_RootConstrainSelectedInstOperands,
15196 // GIR_Coverage, 4647,
15197 GIR_EraseRootFromParent_Done,
15198 // Label 958: @40299
15199 GIM_Try, /*On fail goto*//*Label 959*/ GIMT_Encode4(40370), // Rule ID 4653 //
15200 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
15201 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vcvt_widen),
15202 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
15203 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
15204 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
15205 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
15206 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
15207 GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 1,
15208 // (intrinsic_wo_chain:{ *:[v4f32] } 3285:{ *:[iPTR] }, MQPR:{ *:[v8f16] }:$Qm, 1:{ *:[i32] }) => (MVE_VCVTf32f16th:{ *:[v4f32] } MQPR:{ *:[v8f16] }:$Qm)
15209 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
15210 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
15211 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
15212 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCVTf32f16th),
15213 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
15214 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
15215 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
15216 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15217 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15218 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
15219 GIR_RootConstrainSelectedInstOperands,
15220 // GIR_Coverage, 4653,
15221 GIR_EraseRootFromParent_Done,
15222 // Label 959: @40370
15223 GIM_Try, /*On fail goto*//*Label 960*/ GIMT_Encode4(40438), // Rule ID 1905 //
15224 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
15225 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_usat),
15226 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
15227 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
15228 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
15229 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
15230 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
15231 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
15232 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
15233 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm0_31),
15234 // MIs[1] Operand 1
15235 // No operand predicates
15236 GIM_CheckIsSafeToFold, /*NumInsns*/1,
15237 // (intrinsic_wo_chain:{ *:[i32] } 3608:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$a, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$pos) => (USAT:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$pos, GPRnopc:{ *:[i32] }:$a, 0:{ *:[i32] })
15238 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::USAT),
15239 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
15240 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // pos
15241 GIR_RootToRootCopy, /*OpIdx*/2, // a
15242 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
15243 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
15244 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15245 GIR_RootConstrainSelectedInstOperands,
15246 // GIR_Coverage, 1905,
15247 GIR_EraseRootFromParent_Done,
15248 // Label 960: @40438
15249 GIM_Try, /*On fail goto*//*Label 961*/ GIMT_Encode4(40503), // Rule ID 1909 //
15250 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
15251 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_usat16),
15252 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
15253 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
15254 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
15255 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
15256 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
15257 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
15258 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
15259 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm0_15),
15260 // MIs[1] Operand 1
15261 // No operand predicates
15262 GIM_CheckIsSafeToFold, /*NumInsns*/1,
15263 // (intrinsic_wo_chain:{ *:[i32] } 3609:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$a, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$pos) => (USAT16:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$pos, GPRnopc:{ *:[i32] }:$a)
15264 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::USAT16),
15265 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
15266 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // pos
15267 GIR_RootToRootCopy, /*OpIdx*/2, // a
15268 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
15269 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15270 GIR_RootConstrainSelectedInstOperands,
15271 // GIR_Coverage, 1909,
15272 GIR_EraseRootFromParent_Done,
15273 // Label 961: @40503
15274 GIM_Try, /*On fail goto*//*Label 962*/ GIMT_Encode4(40571), // Rule ID 2156 //
15275 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
15276 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_usat),
15277 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
15278 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
15279 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
15280 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
15281 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
15282 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
15283 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
15284 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm0_31),
15285 // MIs[1] Operand 1
15286 // No operand predicates
15287 GIM_CheckIsSafeToFold, /*NumInsns*/1,
15288 // (intrinsic_wo_chain:{ *:[i32] } 3608:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$pos) => (t2USAT:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$pos, GPR:{ *:[i32] }:$a, 0:{ *:[i32] })
15289 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2USAT),
15290 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
15291 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // pos
15292 GIR_RootToRootCopy, /*OpIdx*/2, // a
15293 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
15294 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
15295 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15296 GIR_RootConstrainSelectedInstOperands,
15297 // GIR_Coverage, 2156,
15298 GIR_EraseRootFromParent_Done,
15299 // Label 962: @40571
15300 GIM_Try, /*On fail goto*//*Label 963*/ GIMT_Encode4(40636), // Rule ID 2158 //
15301 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
15302 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_usat16),
15303 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
15304 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
15305 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
15306 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
15307 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
15308 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
15309 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
15310 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm0_15),
15311 // MIs[1] Operand 1
15312 // No operand predicates
15313 GIM_CheckIsSafeToFold, /*NumInsns*/1,
15314 // (intrinsic_wo_chain:{ *:[i32] } 3609:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$pos) => (t2USAT16:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$pos, GPR:{ *:[i32] }:$a)
15315 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2USAT16),
15316 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
15317 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // pos
15318 GIR_RootToRootCopy, /*OpIdx*/2, // a
15319 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
15320 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15321 GIR_RootConstrainSelectedInstOperands,
15322 // GIR_Coverage, 2158,
15323 GIR_EraseRootFromParent_Done,
15324 // Label 963: @40636
15325 GIM_Try, /*On fail goto*//*Label 964*/ GIMT_Encode4(40717), // Rule ID 4043 //
15326 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqshlu_imm),
15327 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
15328 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
15329 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
15330 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
15331 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
15332 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
15333 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
15334 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm0_7),
15335 // MIs[1] Operand 1
15336 // No operand predicates
15337 GIM_CheckIsSafeToFold, /*NumInsns*/1,
15338 // (intrinsic_wo_chain:{ *:[v16i8] } 3346:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm) => (MVE_VQSHLU_imms8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm)
15339 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
15340 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
15341 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
15342 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQSHLU_imms8),
15343 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
15344 GIR_RootToRootCopy, /*OpIdx*/2, // src
15345 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
15346 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
15347 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15348 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15349 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
15350 GIR_RootConstrainSelectedInstOperands,
15351 // GIR_Coverage, 4043,
15352 GIR_EraseRootFromParent_Done,
15353 // Label 964: @40717
15354 GIM_Try, /*On fail goto*//*Label 965*/ GIMT_Encode4(40798), // Rule ID 4045 //
15355 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqshlu_imm),
15356 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
15357 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
15358 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
15359 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
15360 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
15361 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
15362 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
15363 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm0_15),
15364 // MIs[1] Operand 1
15365 // No operand predicates
15366 GIM_CheckIsSafeToFold, /*NumInsns*/1,
15367 // (intrinsic_wo_chain:{ *:[v8i16] } 3346:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm) => (MVE_VQSHLU_imms16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm)
15368 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
15369 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
15370 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
15371 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQSHLU_imms16),
15372 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
15373 GIR_RootToRootCopy, /*OpIdx*/2, // src
15374 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
15375 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
15376 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15377 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15378 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
15379 GIR_RootConstrainSelectedInstOperands,
15380 // GIR_Coverage, 4045,
15381 GIR_EraseRootFromParent_Done,
15382 // Label 965: @40798
15383 GIM_Try, /*On fail goto*//*Label 966*/ GIMT_Encode4(40879), // Rule ID 4047 //
15384 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqshlu_imm),
15385 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
15386 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
15387 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
15388 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
15389 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
15390 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
15391 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
15392 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm0_31),
15393 // MIs[1] Operand 1
15394 // No operand predicates
15395 GIM_CheckIsSafeToFold, /*NumInsns*/1,
15396 // (intrinsic_wo_chain:{ *:[v4i32] } 3346:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm) => (MVE_VQSHLU_imms32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm)
15397 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
15398 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
15399 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
15400 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQSHLU_imms32),
15401 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
15402 GIR_RootToRootCopy, /*OpIdx*/2, // src
15403 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
15404 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
15405 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15406 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15407 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
15408 GIR_RootConstrainSelectedInstOperands,
15409 // GIR_Coverage, 4047,
15410 GIR_EraseRootFromParent_Done,
15411 // Label 966: @40879
15412 GIM_Try, /*On fail goto*//*Label 967*/ GIMT_Encode4(40940), // Rule ID 1671 //
15413 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
15414 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtfp2fxs),
15415 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
15416 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
15417 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
15418 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
15419 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
15420 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
15421 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
15422 // MIs[1] Operand 1
15423 // No operand predicates
15424 GIM_CheckIsSafeToFold, /*NumInsns*/1,
15425 // (intrinsic_wo_chain:{ *:[v2i32] } 3424:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTf2xsd:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
15426 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTf2xsd),
15427 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
15428 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
15429 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
15430 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
15431 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15432 GIR_RootConstrainSelectedInstOperands,
15433 // GIR_Coverage, 1671,
15434 GIR_EraseRootFromParent_Done,
15435 // Label 967: @40940
15436 GIM_Try, /*On fail goto*//*Label 968*/ GIMT_Encode4(41001), // Rule ID 1672 //
15437 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
15438 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtfp2fxu),
15439 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
15440 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
15441 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
15442 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
15443 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
15444 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
15445 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
15446 // MIs[1] Operand 1
15447 // No operand predicates
15448 GIM_CheckIsSafeToFold, /*NumInsns*/1,
15449 // (intrinsic_wo_chain:{ *:[v2i32] } 3425:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTf2xud:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
15450 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTf2xud),
15451 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
15452 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
15453 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
15454 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
15455 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15456 GIR_RootConstrainSelectedInstOperands,
15457 // GIR_Coverage, 1672,
15458 GIR_EraseRootFromParent_Done,
15459 // Label 968: @41001
15460 GIM_Try, /*On fail goto*//*Label 969*/ GIMT_Encode4(41062), // Rule ID 1673 //
15461 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
15462 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtfxs2fp),
15463 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
15464 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
15465 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
15466 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
15467 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
15468 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
15469 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
15470 // MIs[1] Operand 1
15471 // No operand predicates
15472 GIM_CheckIsSafeToFold, /*NumInsns*/1,
15473 // (intrinsic_wo_chain:{ *:[v2f32] } 3427:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTxs2fd:{ *:[v2f32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
15474 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTxs2fd),
15475 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
15476 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
15477 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
15478 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
15479 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15480 GIR_RootConstrainSelectedInstOperands,
15481 // GIR_Coverage, 1673,
15482 GIR_EraseRootFromParent_Done,
15483 // Label 969: @41062
15484 GIM_Try, /*On fail goto*//*Label 970*/ GIMT_Encode4(41123), // Rule ID 1674 //
15485 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
15486 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtfxu2fp),
15487 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
15488 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
15489 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
15490 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
15491 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
15492 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
15493 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
15494 // MIs[1] Operand 1
15495 // No operand predicates
15496 GIM_CheckIsSafeToFold, /*NumInsns*/1,
15497 // (intrinsic_wo_chain:{ *:[v2f32] } 3428:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTxu2fd:{ *:[v2f32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
15498 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTxu2fd),
15499 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
15500 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
15501 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
15502 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
15503 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15504 GIR_RootConstrainSelectedInstOperands,
15505 // GIR_Coverage, 1674,
15506 GIR_EraseRootFromParent_Done,
15507 // Label 970: @41123
15508 GIM_Try, /*On fail goto*//*Label 971*/ GIMT_Encode4(41184), // Rule ID 1675 //
15509 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
15510 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtfp2fxs),
15511 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
15512 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
15513 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
15514 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
15515 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
15516 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
15517 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
15518 // MIs[1] Operand 1
15519 // No operand predicates
15520 GIM_CheckIsSafeToFold, /*NumInsns*/1,
15521 // (intrinsic_wo_chain:{ *:[v4i16] } 3424:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTh2xsd:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
15522 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTh2xsd),
15523 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
15524 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
15525 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
15526 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
15527 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15528 GIR_RootConstrainSelectedInstOperands,
15529 // GIR_Coverage, 1675,
15530 GIR_EraseRootFromParent_Done,
15531 // Label 971: @41184
15532 GIM_Try, /*On fail goto*//*Label 972*/ GIMT_Encode4(41245), // Rule ID 1676 //
15533 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
15534 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtfp2fxu),
15535 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
15536 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
15537 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
15538 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
15539 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
15540 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
15541 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
15542 // MIs[1] Operand 1
15543 // No operand predicates
15544 GIM_CheckIsSafeToFold, /*NumInsns*/1,
15545 // (intrinsic_wo_chain:{ *:[v4i16] } 3425:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTh2xud:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
15546 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTh2xud),
15547 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
15548 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
15549 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
15550 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
15551 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15552 GIR_RootConstrainSelectedInstOperands,
15553 // GIR_Coverage, 1676,
15554 GIR_EraseRootFromParent_Done,
15555 // Label 972: @41245
15556 GIM_Try, /*On fail goto*//*Label 973*/ GIMT_Encode4(41306), // Rule ID 1677 //
15557 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
15558 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtfxs2fp),
15559 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
15560 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
15561 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
15562 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
15563 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
15564 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
15565 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
15566 // MIs[1] Operand 1
15567 // No operand predicates
15568 GIM_CheckIsSafeToFold, /*NumInsns*/1,
15569 // (intrinsic_wo_chain:{ *:[v4f16] } 3427:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTxs2hd:{ *:[v4f16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
15570 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTxs2hd),
15571 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
15572 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
15573 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
15574 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
15575 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15576 GIR_RootConstrainSelectedInstOperands,
15577 // GIR_Coverage, 1677,
15578 GIR_EraseRootFromParent_Done,
15579 // Label 973: @41306
15580 GIM_Try, /*On fail goto*//*Label 974*/ GIMT_Encode4(41367), // Rule ID 1678 //
15581 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
15582 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtfxu2fp),
15583 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
15584 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
15585 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
15586 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
15587 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
15588 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
15589 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
15590 // MIs[1] Operand 1
15591 // No operand predicates
15592 GIM_CheckIsSafeToFold, /*NumInsns*/1,
15593 // (intrinsic_wo_chain:{ *:[v4f16] } 3428:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTxu2hd:{ *:[v4f16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
15594 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTxu2hd),
15595 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
15596 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
15597 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
15598 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
15599 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15600 GIR_RootConstrainSelectedInstOperands,
15601 // GIR_Coverage, 1678,
15602 GIR_EraseRootFromParent_Done,
15603 // Label 974: @41367
15604 GIM_Try, /*On fail goto*//*Label 975*/ GIMT_Encode4(41428), // Rule ID 1679 //
15605 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
15606 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtfp2fxs),
15607 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
15608 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
15609 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
15610 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
15611 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
15612 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
15613 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
15614 // MIs[1] Operand 1
15615 // No operand predicates
15616 GIM_CheckIsSafeToFold, /*NumInsns*/1,
15617 // (intrinsic_wo_chain:{ *:[v4i32] } 3424:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTf2xsq:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
15618 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTf2xsq),
15619 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
15620 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
15621 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
15622 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
15623 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15624 GIR_RootConstrainSelectedInstOperands,
15625 // GIR_Coverage, 1679,
15626 GIR_EraseRootFromParent_Done,
15627 // Label 975: @41428
15628 GIM_Try, /*On fail goto*//*Label 976*/ GIMT_Encode4(41489), // Rule ID 1680 //
15629 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
15630 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtfp2fxu),
15631 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
15632 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
15633 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
15634 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
15635 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
15636 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
15637 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
15638 // MIs[1] Operand 1
15639 // No operand predicates
15640 GIM_CheckIsSafeToFold, /*NumInsns*/1,
15641 // (intrinsic_wo_chain:{ *:[v4i32] } 3425:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTf2xuq:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
15642 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTf2xuq),
15643 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
15644 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
15645 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
15646 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
15647 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15648 GIR_RootConstrainSelectedInstOperands,
15649 // GIR_Coverage, 1680,
15650 GIR_EraseRootFromParent_Done,
15651 // Label 976: @41489
15652 GIM_Try, /*On fail goto*//*Label 977*/ GIMT_Encode4(41550), // Rule ID 1681 //
15653 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
15654 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtfxs2fp),
15655 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
15656 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
15657 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
15658 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
15659 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
15660 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
15661 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
15662 // MIs[1] Operand 1
15663 // No operand predicates
15664 GIM_CheckIsSafeToFold, /*NumInsns*/1,
15665 // (intrinsic_wo_chain:{ *:[v4f32] } 3427:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTxs2fq:{ *:[v4f32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
15666 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTxs2fq),
15667 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
15668 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
15669 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
15670 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
15671 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15672 GIR_RootConstrainSelectedInstOperands,
15673 // GIR_Coverage, 1681,
15674 GIR_EraseRootFromParent_Done,
15675 // Label 977: @41550
15676 GIM_Try, /*On fail goto*//*Label 978*/ GIMT_Encode4(41611), // Rule ID 1682 //
15677 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
15678 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtfxu2fp),
15679 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
15680 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
15681 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
15682 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
15683 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
15684 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
15685 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
15686 // MIs[1] Operand 1
15687 // No operand predicates
15688 GIM_CheckIsSafeToFold, /*NumInsns*/1,
15689 // (intrinsic_wo_chain:{ *:[v4f32] } 3428:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTxu2fq:{ *:[v4f32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
15690 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTxu2fq),
15691 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
15692 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
15693 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
15694 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
15695 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15696 GIR_RootConstrainSelectedInstOperands,
15697 // GIR_Coverage, 1682,
15698 GIR_EraseRootFromParent_Done,
15699 // Label 978: @41611
15700 GIM_Try, /*On fail goto*//*Label 979*/ GIMT_Encode4(41672), // Rule ID 1683 //
15701 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
15702 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtfp2fxs),
15703 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
15704 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
15705 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
15706 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
15707 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
15708 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
15709 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
15710 // MIs[1] Operand 1
15711 // No operand predicates
15712 GIM_CheckIsSafeToFold, /*NumInsns*/1,
15713 // (intrinsic_wo_chain:{ *:[v8i16] } 3424:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTh2xsq:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
15714 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTh2xsq),
15715 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
15716 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
15717 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
15718 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
15719 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15720 GIR_RootConstrainSelectedInstOperands,
15721 // GIR_Coverage, 1683,
15722 GIR_EraseRootFromParent_Done,
15723 // Label 979: @41672
15724 GIM_Try, /*On fail goto*//*Label 980*/ GIMT_Encode4(41733), // Rule ID 1684 //
15725 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
15726 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtfp2fxu),
15727 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
15728 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
15729 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
15730 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
15731 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
15732 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
15733 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
15734 // MIs[1] Operand 1
15735 // No operand predicates
15736 GIM_CheckIsSafeToFold, /*NumInsns*/1,
15737 // (intrinsic_wo_chain:{ *:[v8i16] } 3425:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTh2xuq:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
15738 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTh2xuq),
15739 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
15740 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
15741 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
15742 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
15743 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15744 GIR_RootConstrainSelectedInstOperands,
15745 // GIR_Coverage, 1684,
15746 GIR_EraseRootFromParent_Done,
15747 // Label 980: @41733
15748 GIM_Try, /*On fail goto*//*Label 981*/ GIMT_Encode4(41794), // Rule ID 1685 //
15749 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
15750 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtfxs2fp),
15751 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
15752 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
15753 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
15754 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
15755 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
15756 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
15757 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
15758 // MIs[1] Operand 1
15759 // No operand predicates
15760 GIM_CheckIsSafeToFold, /*NumInsns*/1,
15761 // (intrinsic_wo_chain:{ *:[v8f16] } 3427:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTxs2hq:{ *:[v8f16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
15762 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTxs2hq),
15763 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
15764 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
15765 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
15766 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
15767 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15768 GIR_RootConstrainSelectedInstOperands,
15769 // GIR_Coverage, 1685,
15770 GIR_EraseRootFromParent_Done,
15771 // Label 981: @41794
15772 GIM_Try, /*On fail goto*//*Label 982*/ GIMT_Encode4(41855), // Rule ID 1686 //
15773 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
15774 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcvtfxu2fp),
15775 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
15776 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
15777 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
15778 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
15779 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
15780 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
15781 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
15782 // MIs[1] Operand 1
15783 // No operand predicates
15784 GIM_CheckIsSafeToFold, /*NumInsns*/1,
15785 // (intrinsic_wo_chain:{ *:[v8f16] } 3428:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTxu2hq:{ *:[v8f16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
15786 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTxu2hq),
15787 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
15788 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
15789 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
15790 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
15791 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15792 GIR_RootConstrainSelectedInstOperands,
15793 // GIR_Coverage, 1686,
15794 GIR_EraseRootFromParent_Done,
15795 // Label 982: @41855
15796 GIM_Try, /*On fail goto*//*Label 983*/ GIMT_Encode4(41916), // Rule ID 1749 //
15797 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_HasV8_1MMainline),
15798 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_sqshl),
15799 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
15800 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
15801 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
15802 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
15803 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
15804 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
15805 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
15806 // MIs[1] Operand 1
15807 // No operand predicates
15808 GIM_CheckIsSafeToFold, /*NumInsns*/1,
15809 // (intrinsic_wo_chain:{ *:[i32] } 3251:{ *:[iPTR] }, rGPR:{ *:[i32] }:$RdaSrc, (imm:{ *:[i32] }):$imm) => (MVE_SQSHL:{ *:[i32] } rGPR:{ *:[i32] }:$RdaSrc, (imm:{ *:[i32] }):$imm)
15810 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_SQSHL),
15811 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
15812 GIR_RootToRootCopy, /*OpIdx*/2, // RdaSrc
15813 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
15814 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
15815 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15816 GIR_RootConstrainSelectedInstOperands,
15817 // GIR_Coverage, 1749,
15818 GIR_EraseRootFromParent_Done,
15819 // Label 983: @41916
15820 GIM_Try, /*On fail goto*//*Label 984*/ GIMT_Encode4(41977), // Rule ID 1750 //
15821 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_HasV8_1MMainline),
15822 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_srshr),
15823 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
15824 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
15825 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
15826 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
15827 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
15828 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
15829 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
15830 // MIs[1] Operand 1
15831 // No operand predicates
15832 GIM_CheckIsSafeToFold, /*NumInsns*/1,
15833 // (intrinsic_wo_chain:{ *:[i32] } 3253:{ *:[iPTR] }, rGPR:{ *:[i32] }:$RdaSrc, (imm:{ *:[i32] }):$imm) => (MVE_SRSHR:{ *:[i32] } rGPR:{ *:[i32] }:$RdaSrc, (imm:{ *:[i32] }):$imm)
15834 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_SRSHR),
15835 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
15836 GIR_RootToRootCopy, /*OpIdx*/2, // RdaSrc
15837 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
15838 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
15839 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15840 GIR_RootConstrainSelectedInstOperands,
15841 // GIR_Coverage, 1750,
15842 GIR_EraseRootFromParent_Done,
15843 // Label 984: @41977
15844 GIM_Try, /*On fail goto*//*Label 985*/ GIMT_Encode4(42038), // Rule ID 1751 //
15845 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_HasV8_1MMainline),
15846 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_uqshl),
15847 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
15848 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
15849 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
15850 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
15851 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
15852 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
15853 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
15854 // MIs[1] Operand 1
15855 // No operand predicates
15856 GIM_CheckIsSafeToFold, /*NumInsns*/1,
15857 // (intrinsic_wo_chain:{ *:[i32] } 3258:{ *:[iPTR] }, rGPR:{ *:[i32] }:$RdaSrc, (imm:{ *:[i32] }):$imm) => (MVE_UQSHL:{ *:[i32] } rGPR:{ *:[i32] }:$RdaSrc, (imm:{ *:[i32] }):$imm)
15858 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_UQSHL),
15859 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
15860 GIR_RootToRootCopy, /*OpIdx*/2, // RdaSrc
15861 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
15862 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
15863 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15864 GIR_RootConstrainSelectedInstOperands,
15865 // GIR_Coverage, 1751,
15866 GIR_EraseRootFromParent_Done,
15867 // Label 985: @42038
15868 GIM_Try, /*On fail goto*//*Label 986*/ GIMT_Encode4(42099), // Rule ID 1752 //
15869 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_HasV8_1MMainline),
15870 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_urshr),
15871 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
15872 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
15873 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
15874 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
15875 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
15876 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
15877 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
15878 // MIs[1] Operand 1
15879 // No operand predicates
15880 GIM_CheckIsSafeToFold, /*NumInsns*/1,
15881 // (intrinsic_wo_chain:{ *:[i32] } 3260:{ *:[iPTR] }, rGPR:{ *:[i32] }:$RdaSrc, (imm:{ *:[i32] }):$imm) => (MVE_URSHR:{ *:[i32] } rGPR:{ *:[i32] }:$RdaSrc, (imm:{ *:[i32] }):$imm)
15882 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_URSHR),
15883 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
15884 GIR_RootToRootCopy, /*OpIdx*/2, // RdaSrc
15885 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
15886 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
15887 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15888 GIR_RootConstrainSelectedInstOperands,
15889 // GIR_Coverage, 1752,
15890 GIR_EraseRootFromParent_Done,
15891 // Label 986: @42099
15892 GIM_Try, /*On fail goto*//*Label 987*/ GIMT_Encode4(42153), // Rule ID 105 //
15893 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
15894 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_qadd8),
15895 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
15896 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
15897 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
15898 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
15899 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
15900 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
15901 // (intrinsic_wo_chain:{ *:[i32] } 3533:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (QADD8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
15902 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::QADD8),
15903 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
15904 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
15905 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
15906 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
15907 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15908 GIR_RootConstrainSelectedInstOperands,
15909 // GIR_Coverage, 105,
15910 GIR_EraseRootFromParent_Done,
15911 // Label 987: @42153
15912 GIM_Try, /*On fail goto*//*Label 988*/ GIMT_Encode4(42207), // Rule ID 106 //
15913 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
15914 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_qadd16),
15915 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
15916 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
15917 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
15918 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
15919 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
15920 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
15921 // (intrinsic_wo_chain:{ *:[i32] } 3532:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (QADD16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
15922 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::QADD16),
15923 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
15924 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
15925 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
15926 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
15927 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15928 GIR_RootConstrainSelectedInstOperands,
15929 // GIR_Coverage, 106,
15930 GIR_EraseRootFromParent_Done,
15931 // Label 988: @42207
15932 GIM_Try, /*On fail goto*//*Label 989*/ GIMT_Encode4(42261), // Rule ID 107 //
15933 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
15934 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_qsub16),
15935 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
15936 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
15937 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
15938 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
15939 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
15940 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
15941 // (intrinsic_wo_chain:{ *:[i32] } 3537:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (QSUB16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
15942 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::QSUB16),
15943 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
15944 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
15945 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
15946 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
15947 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15948 GIR_RootConstrainSelectedInstOperands,
15949 // GIR_Coverage, 107,
15950 GIR_EraseRootFromParent_Done,
15951 // Label 989: @42261
15952 GIM_Try, /*On fail goto*//*Label 990*/ GIMT_Encode4(42315), // Rule ID 108 //
15953 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
15954 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_qsub8),
15955 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
15956 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
15957 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
15958 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
15959 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
15960 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
15961 // (intrinsic_wo_chain:{ *:[i32] } 3538:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (QSUB8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
15962 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::QSUB8),
15963 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
15964 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
15965 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
15966 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
15967 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15968 GIR_RootConstrainSelectedInstOperands,
15969 // GIR_Coverage, 108,
15970 GIR_EraseRootFromParent_Done,
15971 // Label 990: @42315
15972 GIM_Try, /*On fail goto*//*Label 991*/ GIMT_Encode4(42369), // Rule ID 111 //
15973 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
15974 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_qsub),
15975 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
15976 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
15977 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
15978 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
15979 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
15980 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
15981 // (intrinsic_wo_chain:{ *:[i32] } 3536:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rn) => (QSUB:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rn)
15982 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::QSUB),
15983 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
15984 GIR_RootToRootCopy, /*OpIdx*/2, // Rm
15985 GIR_RootToRootCopy, /*OpIdx*/3, // Rn
15986 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
15987 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
15988 GIR_RootConstrainSelectedInstOperands,
15989 // GIR_Coverage, 111,
15990 GIR_EraseRootFromParent_Done,
15991 // Label 991: @42369
15992 GIM_Try, /*On fail goto*//*Label 992*/ GIMT_Encode4(42423), // Rule ID 112 //
15993 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
15994 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_qadd),
15995 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
15996 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
15997 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
15998 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
15999 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16000 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16001 // (intrinsic_wo_chain:{ *:[i32] } 3531:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rn) => (QADD:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rn)
16002 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::QADD),
16003 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16004 GIR_RootToRootCopy, /*OpIdx*/2, // Rm
16005 GIR_RootToRootCopy, /*OpIdx*/3, // Rn
16006 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16007 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16008 GIR_RootConstrainSelectedInstOperands,
16009 // GIR_Coverage, 112,
16010 GIR_EraseRootFromParent_Done,
16011 // Label 992: @42423
16012 GIM_Try, /*On fail goto*//*Label 993*/ GIMT_Encode4(42477), // Rule ID 113 //
16013 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
16014 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_uqadd16),
16015 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16016 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16017 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16018 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16019 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16020 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16021 // (intrinsic_wo_chain:{ *:[i32] } 3600:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UQADD16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
16022 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::UQADD16),
16023 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16024 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16025 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16026 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16027 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16028 GIR_RootConstrainSelectedInstOperands,
16029 // GIR_Coverage, 113,
16030 GIR_EraseRootFromParent_Done,
16031 // Label 993: @42477
16032 GIM_Try, /*On fail goto*//*Label 994*/ GIMT_Encode4(42531), // Rule ID 114 //
16033 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
16034 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_uqadd8),
16035 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16036 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16037 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16038 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16039 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16040 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16041 // (intrinsic_wo_chain:{ *:[i32] } 3601:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UQADD8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
16042 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::UQADD8),
16043 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16044 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16045 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16046 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16047 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16048 GIR_RootConstrainSelectedInstOperands,
16049 // GIR_Coverage, 114,
16050 GIR_EraseRootFromParent_Done,
16051 // Label 994: @42531
16052 GIM_Try, /*On fail goto*//*Label 995*/ GIMT_Encode4(42585), // Rule ID 115 //
16053 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
16054 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_uqsub16),
16055 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16056 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16057 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16058 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16059 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16060 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16061 // (intrinsic_wo_chain:{ *:[i32] } 3604:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UQSUB16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
16062 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::UQSUB16),
16063 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16064 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16065 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16066 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16067 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16068 GIR_RootConstrainSelectedInstOperands,
16069 // GIR_Coverage, 115,
16070 GIR_EraseRootFromParent_Done,
16071 // Label 995: @42585
16072 GIM_Try, /*On fail goto*//*Label 996*/ GIMT_Encode4(42639), // Rule ID 116 //
16073 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
16074 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_uqsub8),
16075 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16076 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16077 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16078 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16079 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16080 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16081 // (intrinsic_wo_chain:{ *:[i32] } 3605:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UQSUB8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
16082 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::UQSUB8),
16083 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16084 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16085 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16086 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16087 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16088 GIR_RootConstrainSelectedInstOperands,
16089 // GIR_Coverage, 116,
16090 GIR_EraseRootFromParent_Done,
16091 // Label 996: @42639
16092 GIM_Try, /*On fail goto*//*Label 997*/ GIMT_Encode4(42693), // Rule ID 117 //
16093 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
16094 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_qasx),
16095 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16096 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16097 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16098 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16099 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16100 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16101 // (intrinsic_wo_chain:{ *:[i32] } 3534:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (QASX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
16102 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::QASX),
16103 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16104 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16105 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16106 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16107 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16108 GIR_RootConstrainSelectedInstOperands,
16109 // GIR_Coverage, 117,
16110 GIR_EraseRootFromParent_Done,
16111 // Label 997: @42693
16112 GIM_Try, /*On fail goto*//*Label 998*/ GIMT_Encode4(42747), // Rule ID 118 //
16113 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
16114 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_qsax),
16115 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16116 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16117 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16118 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16119 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16120 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16121 // (intrinsic_wo_chain:{ *:[i32] } 3535:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (QSAX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
16122 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::QSAX),
16123 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16124 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16125 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16126 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16127 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16128 GIR_RootConstrainSelectedInstOperands,
16129 // GIR_Coverage, 118,
16130 GIR_EraseRootFromParent_Done,
16131 // Label 998: @42747
16132 GIM_Try, /*On fail goto*//*Label 999*/ GIMT_Encode4(42801), // Rule ID 119 //
16133 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
16134 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_uqasx),
16135 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16136 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16137 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16138 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16139 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16140 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16141 // (intrinsic_wo_chain:{ *:[i32] } 3602:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UQASX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
16142 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::UQASX),
16143 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16144 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16145 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16146 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16147 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16148 GIR_RootConstrainSelectedInstOperands,
16149 // GIR_Coverage, 119,
16150 GIR_EraseRootFromParent_Done,
16151 // Label 999: @42801
16152 GIM_Try, /*On fail goto*//*Label 1000*/ GIMT_Encode4(42855), // Rule ID 120 //
16153 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
16154 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_uqsax),
16155 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16156 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16157 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16158 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16159 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16160 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16161 // (intrinsic_wo_chain:{ *:[i32] } 3603:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UQSAX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
16162 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::UQSAX),
16163 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16164 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16165 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16166 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16167 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16168 GIR_RootConstrainSelectedInstOperands,
16169 // GIR_Coverage, 120,
16170 GIR_EraseRootFromParent_Done,
16171 // Label 1000: @42855
16172 GIM_Try, /*On fail goto*//*Label 1001*/ GIMT_Encode4(42909), // Rule ID 133 //
16173 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
16174 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_shasx),
16175 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16176 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16177 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16178 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16179 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16180 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16181 // (intrinsic_wo_chain:{ *:[i32] } 3546:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SHASX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
16182 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SHASX),
16183 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16184 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16185 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16186 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16187 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16188 GIR_RootConstrainSelectedInstOperands,
16189 // GIR_Coverage, 133,
16190 GIR_EraseRootFromParent_Done,
16191 // Label 1001: @42909
16192 GIM_Try, /*On fail goto*//*Label 1002*/ GIMT_Encode4(42963), // Rule ID 134 //
16193 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
16194 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_shadd16),
16195 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16196 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16197 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16198 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16199 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16200 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16201 // (intrinsic_wo_chain:{ *:[i32] } 3544:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SHADD16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
16202 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SHADD16),
16203 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16204 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16205 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16206 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16207 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16208 GIR_RootConstrainSelectedInstOperands,
16209 // GIR_Coverage, 134,
16210 GIR_EraseRootFromParent_Done,
16211 // Label 1002: @42963
16212 GIM_Try, /*On fail goto*//*Label 1003*/ GIMT_Encode4(43017), // Rule ID 135 //
16213 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
16214 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_shadd8),
16215 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16216 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16217 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16218 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16219 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16220 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16221 // (intrinsic_wo_chain:{ *:[i32] } 3545:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SHADD8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
16222 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SHADD8),
16223 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16224 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16225 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16226 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16227 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16228 GIR_RootConstrainSelectedInstOperands,
16229 // GIR_Coverage, 135,
16230 GIR_EraseRootFromParent_Done,
16231 // Label 1003: @43017
16232 GIM_Try, /*On fail goto*//*Label 1004*/ GIMT_Encode4(43071), // Rule ID 136 //
16233 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
16234 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_shsax),
16235 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16236 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16237 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16238 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16239 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16240 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16241 // (intrinsic_wo_chain:{ *:[i32] } 3547:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SHSAX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
16242 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SHSAX),
16243 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16244 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16245 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16246 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16247 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16248 GIR_RootConstrainSelectedInstOperands,
16249 // GIR_Coverage, 136,
16250 GIR_EraseRootFromParent_Done,
16251 // Label 1004: @43071
16252 GIM_Try, /*On fail goto*//*Label 1005*/ GIMT_Encode4(43125), // Rule ID 137 //
16253 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
16254 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_shsub16),
16255 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16256 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16257 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16258 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16259 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16260 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16261 // (intrinsic_wo_chain:{ *:[i32] } 3548:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SHSUB16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
16262 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SHSUB16),
16263 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16264 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16265 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16266 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16267 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16268 GIR_RootConstrainSelectedInstOperands,
16269 // GIR_Coverage, 137,
16270 GIR_EraseRootFromParent_Done,
16271 // Label 1005: @43125
16272 GIM_Try, /*On fail goto*//*Label 1006*/ GIMT_Encode4(43179), // Rule ID 138 //
16273 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
16274 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_shsub8),
16275 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16276 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16277 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16278 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16279 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16280 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16281 // (intrinsic_wo_chain:{ *:[i32] } 3549:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SHSUB8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
16282 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SHSUB8),
16283 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16284 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16285 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16286 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16287 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16288 GIR_RootConstrainSelectedInstOperands,
16289 // GIR_Coverage, 138,
16290 GIR_EraseRootFromParent_Done,
16291 // Label 1006: @43179
16292 GIM_Try, /*On fail goto*//*Label 1007*/ GIMT_Encode4(43233), // Rule ID 139 //
16293 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
16294 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_uhasx),
16295 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16296 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16297 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16298 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16299 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16300 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16301 // (intrinsic_wo_chain:{ *:[i32] } 3595:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UHASX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
16302 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::UHASX),
16303 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16304 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16305 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16306 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16307 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16308 GIR_RootConstrainSelectedInstOperands,
16309 // GIR_Coverage, 139,
16310 GIR_EraseRootFromParent_Done,
16311 // Label 1007: @43233
16312 GIM_Try, /*On fail goto*//*Label 1008*/ GIMT_Encode4(43287), // Rule ID 140 //
16313 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
16314 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_uhadd16),
16315 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16316 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16317 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16318 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16319 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16320 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16321 // (intrinsic_wo_chain:{ *:[i32] } 3593:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UHADD16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
16322 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::UHADD16),
16323 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16324 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16325 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16326 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16327 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16328 GIR_RootConstrainSelectedInstOperands,
16329 // GIR_Coverage, 140,
16330 GIR_EraseRootFromParent_Done,
16331 // Label 1008: @43287
16332 GIM_Try, /*On fail goto*//*Label 1009*/ GIMT_Encode4(43341), // Rule ID 141 //
16333 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
16334 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_uhadd8),
16335 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16336 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16337 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16338 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16339 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16340 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16341 // (intrinsic_wo_chain:{ *:[i32] } 3594:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UHADD8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
16342 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::UHADD8),
16343 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16344 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16345 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16346 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16347 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16348 GIR_RootConstrainSelectedInstOperands,
16349 // GIR_Coverage, 141,
16350 GIR_EraseRootFromParent_Done,
16351 // Label 1009: @43341
16352 GIM_Try, /*On fail goto*//*Label 1010*/ GIMT_Encode4(43395), // Rule ID 142 //
16353 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
16354 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_uhsax),
16355 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16356 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16357 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16358 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16359 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16360 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16361 // (intrinsic_wo_chain:{ *:[i32] } 3596:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UHSAX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
16362 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::UHSAX),
16363 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16364 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16365 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16366 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16367 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16368 GIR_RootConstrainSelectedInstOperands,
16369 // GIR_Coverage, 142,
16370 GIR_EraseRootFromParent_Done,
16371 // Label 1010: @43395
16372 GIM_Try, /*On fail goto*//*Label 1011*/ GIMT_Encode4(43449), // Rule ID 143 //
16373 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
16374 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_uhsub16),
16375 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16376 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16377 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16378 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16379 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16380 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16381 // (intrinsic_wo_chain:{ *:[i32] } 3597:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UHSUB16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
16382 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::UHSUB16),
16383 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16384 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16385 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16386 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16387 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16388 GIR_RootConstrainSelectedInstOperands,
16389 // GIR_Coverage, 143,
16390 GIR_EraseRootFromParent_Done,
16391 // Label 1011: @43449
16392 GIM_Try, /*On fail goto*//*Label 1012*/ GIMT_Encode4(43503), // Rule ID 144 //
16393 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
16394 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_uhsub8),
16395 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16396 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16397 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16398 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16399 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16400 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16401 // (intrinsic_wo_chain:{ *:[i32] } 3598:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UHSUB8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
16402 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::UHSUB8),
16403 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16404 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16405 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16406 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16407 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16408 GIR_RootConstrainSelectedInstOperands,
16409 // GIR_Coverage, 144,
16410 GIR_EraseRootFromParent_Done,
16411 // Label 1012: @43503
16412 GIM_Try, /*On fail goto*//*Label 1013*/ GIMT_Encode4(43557), // Rule ID 145 //
16413 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
16414 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_usad8),
16415 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16416 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16417 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16418 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
16419 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
16420 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
16421 // (intrinsic_wo_chain:{ *:[i32] } 3606:{ *:[iPTR] }, GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) => (USAD8:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
16422 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::USAD8),
16423 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16424 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16425 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16426 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16427 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16428 GIR_RootConstrainSelectedInstOperands,
16429 // GIR_Coverage, 145,
16430 GIR_EraseRootFromParent_Done,
16431 // Label 1013: @43557
16432 GIM_Try, /*On fail goto*//*Label 1014*/ GIMT_Encode4(43602), // Rule ID 204 //
16433 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasCRC_IsARM),
16434 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_crc32b),
16435 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16436 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16437 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16438 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16439 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16440 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16441 // (intrinsic_wo_chain:{ *:[i32] } 3165:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (CRC32B:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
16442 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::CRC32B),
16443 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16444 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16445 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16446 GIR_RootConstrainSelectedInstOperands,
16447 // GIR_Coverage, 204,
16448 GIR_EraseRootFromParent_Done,
16449 // Label 1014: @43602
16450 GIM_Try, /*On fail goto*//*Label 1015*/ GIMT_Encode4(43647), // Rule ID 205 //
16451 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasCRC_IsARM),
16452 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_crc32cb),
16453 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16454 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16455 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16456 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16457 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16458 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16459 // (intrinsic_wo_chain:{ *:[i32] } 3166:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (CRC32CB:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
16460 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::CRC32CB),
16461 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16462 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16463 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16464 GIR_RootConstrainSelectedInstOperands,
16465 // GIR_Coverage, 205,
16466 GIR_EraseRootFromParent_Done,
16467 // Label 1015: @43647
16468 GIM_Try, /*On fail goto*//*Label 1016*/ GIMT_Encode4(43692), // Rule ID 206 //
16469 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasCRC_IsARM),
16470 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_crc32h),
16471 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16472 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16473 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16474 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16475 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16476 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16477 // (intrinsic_wo_chain:{ *:[i32] } 3169:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (CRC32H:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
16478 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::CRC32H),
16479 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16480 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16481 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16482 GIR_RootConstrainSelectedInstOperands,
16483 // GIR_Coverage, 206,
16484 GIR_EraseRootFromParent_Done,
16485 // Label 1016: @43692
16486 GIM_Try, /*On fail goto*//*Label 1017*/ GIMT_Encode4(43737), // Rule ID 207 //
16487 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasCRC_IsARM),
16488 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_crc32ch),
16489 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16490 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16491 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16492 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16493 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16494 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16495 // (intrinsic_wo_chain:{ *:[i32] } 3167:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (CRC32CH:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
16496 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::CRC32CH),
16497 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16498 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16499 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16500 GIR_RootConstrainSelectedInstOperands,
16501 // GIR_Coverage, 207,
16502 GIR_EraseRootFromParent_Done,
16503 // Label 1017: @43737
16504 GIM_Try, /*On fail goto*//*Label 1018*/ GIMT_Encode4(43782), // Rule ID 208 //
16505 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasCRC_IsARM),
16506 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_crc32w),
16507 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16508 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16509 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16510 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16511 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16512 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16513 // (intrinsic_wo_chain:{ *:[i32] } 3170:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (CRC32W:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
16514 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::CRC32W),
16515 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16516 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16517 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16518 GIR_RootConstrainSelectedInstOperands,
16519 // GIR_Coverage, 208,
16520 GIR_EraseRootFromParent_Done,
16521 // Label 1018: @43782
16522 GIM_Try, /*On fail goto*//*Label 1019*/ GIMT_Encode4(43827), // Rule ID 209 //
16523 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasCRC_IsARM),
16524 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_crc32cw),
16525 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16526 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16527 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16528 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16529 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16530 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
16531 // (intrinsic_wo_chain:{ *:[i32] } 3168:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (CRC32CW:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
16532 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::CRC32CW),
16533 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16534 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16535 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16536 GIR_RootConstrainSelectedInstOperands,
16537 // GIR_Coverage, 209,
16538 GIR_EraseRootFromParent_Done,
16539 // Label 1019: @43827
16540 GIM_Try, /*On fail goto*//*Label 1020*/ GIMT_Encode4(43881), // Rule ID 440 //
16541 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
16542 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_qadd16),
16543 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16544 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16545 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16546 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16547 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16548 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16549 // (intrinsic_wo_chain:{ *:[i32] } 3532:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2QADD16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
16550 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2QADD16),
16551 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16552 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16553 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16554 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16555 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16556 GIR_RootConstrainSelectedInstOperands,
16557 // GIR_Coverage, 440,
16558 GIR_EraseRootFromParent_Done,
16559 // Label 1020: @43881
16560 GIM_Try, /*On fail goto*//*Label 1021*/ GIMT_Encode4(43935), // Rule ID 441 //
16561 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
16562 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_qadd8),
16563 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16564 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16565 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16566 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16567 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16568 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16569 // (intrinsic_wo_chain:{ *:[i32] } 3533:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2QADD8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
16570 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2QADD8),
16571 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16572 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16573 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16574 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16575 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16576 GIR_RootConstrainSelectedInstOperands,
16577 // GIR_Coverage, 441,
16578 GIR_EraseRootFromParent_Done,
16579 // Label 1021: @43935
16580 GIM_Try, /*On fail goto*//*Label 1022*/ GIMT_Encode4(43989), // Rule ID 442 //
16581 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
16582 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_qasx),
16583 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16584 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16585 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16586 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16587 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16588 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16589 // (intrinsic_wo_chain:{ *:[i32] } 3534:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2QASX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
16590 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2QASX),
16591 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16592 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16593 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16594 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16595 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16596 GIR_RootConstrainSelectedInstOperands,
16597 // GIR_Coverage, 442,
16598 GIR_EraseRootFromParent_Done,
16599 // Label 1022: @43989
16600 GIM_Try, /*On fail goto*//*Label 1023*/ GIMT_Encode4(44043), // Rule ID 443 //
16601 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
16602 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_uqsub8),
16603 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16604 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16605 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16606 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16607 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16608 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16609 // (intrinsic_wo_chain:{ *:[i32] } 3605:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UQSUB8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
16610 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2UQSUB8),
16611 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16612 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16613 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16614 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16615 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16616 GIR_RootConstrainSelectedInstOperands,
16617 // GIR_Coverage, 443,
16618 GIR_EraseRootFromParent_Done,
16619 // Label 1023: @44043
16620 GIM_Try, /*On fail goto*//*Label 1024*/ GIMT_Encode4(44097), // Rule ID 444 //
16621 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
16622 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_qsax),
16623 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16624 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16625 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16626 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16627 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16628 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16629 // (intrinsic_wo_chain:{ *:[i32] } 3535:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2QSAX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
16630 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2QSAX),
16631 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16632 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16633 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16634 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16635 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16636 GIR_RootConstrainSelectedInstOperands,
16637 // GIR_Coverage, 444,
16638 GIR_EraseRootFromParent_Done,
16639 // Label 1024: @44097
16640 GIM_Try, /*On fail goto*//*Label 1025*/ GIMT_Encode4(44151), // Rule ID 445 //
16641 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
16642 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_qsub16),
16643 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16644 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16645 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16646 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16647 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16648 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16649 // (intrinsic_wo_chain:{ *:[i32] } 3537:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2QSUB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
16650 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2QSUB16),
16651 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16652 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16653 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16654 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16655 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16656 GIR_RootConstrainSelectedInstOperands,
16657 // GIR_Coverage, 445,
16658 GIR_EraseRootFromParent_Done,
16659 // Label 1025: @44151
16660 GIM_Try, /*On fail goto*//*Label 1026*/ GIMT_Encode4(44205), // Rule ID 446 //
16661 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
16662 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_qsub8),
16663 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16664 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16665 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16666 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16667 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16668 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16669 // (intrinsic_wo_chain:{ *:[i32] } 3538:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2QSUB8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
16670 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2QSUB8),
16671 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16672 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16673 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16674 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16675 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16676 GIR_RootConstrainSelectedInstOperands,
16677 // GIR_Coverage, 446,
16678 GIR_EraseRootFromParent_Done,
16679 // Label 1026: @44205
16680 GIM_Try, /*On fail goto*//*Label 1027*/ GIMT_Encode4(44259), // Rule ID 447 //
16681 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
16682 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_uqadd16),
16683 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16684 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16685 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16686 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16687 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16688 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16689 // (intrinsic_wo_chain:{ *:[i32] } 3600:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UQADD16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
16690 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2UQADD16),
16691 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16692 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16693 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16694 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16695 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16696 GIR_RootConstrainSelectedInstOperands,
16697 // GIR_Coverage, 447,
16698 GIR_EraseRootFromParent_Done,
16699 // Label 1027: @44259
16700 GIM_Try, /*On fail goto*//*Label 1028*/ GIMT_Encode4(44313), // Rule ID 448 //
16701 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
16702 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_uqadd8),
16703 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16704 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16705 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16706 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16707 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16708 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16709 // (intrinsic_wo_chain:{ *:[i32] } 3601:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UQADD8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
16710 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2UQADD8),
16711 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16712 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16713 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16714 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16715 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16716 GIR_RootConstrainSelectedInstOperands,
16717 // GIR_Coverage, 448,
16718 GIR_EraseRootFromParent_Done,
16719 // Label 1028: @44313
16720 GIM_Try, /*On fail goto*//*Label 1029*/ GIMT_Encode4(44367), // Rule ID 449 //
16721 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
16722 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_uqasx),
16723 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16724 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16725 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16726 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16727 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16728 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16729 // (intrinsic_wo_chain:{ *:[i32] } 3602:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UQASX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
16730 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2UQASX),
16731 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16732 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16733 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16734 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16735 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16736 GIR_RootConstrainSelectedInstOperands,
16737 // GIR_Coverage, 449,
16738 GIR_EraseRootFromParent_Done,
16739 // Label 1029: @44367
16740 GIM_Try, /*On fail goto*//*Label 1030*/ GIMT_Encode4(44421), // Rule ID 450 //
16741 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
16742 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_uqsax),
16743 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16744 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16745 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16746 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16747 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16748 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16749 // (intrinsic_wo_chain:{ *:[i32] } 3603:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UQSAX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
16750 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2UQSAX),
16751 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16752 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16753 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16754 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16755 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16756 GIR_RootConstrainSelectedInstOperands,
16757 // GIR_Coverage, 450,
16758 GIR_EraseRootFromParent_Done,
16759 // Label 1030: @44421
16760 GIM_Try, /*On fail goto*//*Label 1031*/ GIMT_Encode4(44475), // Rule ID 451 //
16761 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
16762 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_uqsub16),
16763 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16764 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16765 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16766 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16767 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16768 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16769 // (intrinsic_wo_chain:{ *:[i32] } 3604:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UQSUB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
16770 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2UQSUB16),
16771 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16772 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16773 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16774 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16775 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16776 GIR_RootConstrainSelectedInstOperands,
16777 // GIR_Coverage, 451,
16778 GIR_EraseRootFromParent_Done,
16779 // Label 1031: @44475
16780 GIM_Try, /*On fail goto*//*Label 1032*/ GIMT_Encode4(44529), // Rule ID 464 //
16781 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
16782 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_shasx),
16783 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16784 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16785 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16786 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16787 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16788 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16789 // (intrinsic_wo_chain:{ *:[i32] } 3546:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SHASX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
16790 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SHASX),
16791 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16792 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16793 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16794 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16795 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16796 GIR_RootConstrainSelectedInstOperands,
16797 // GIR_Coverage, 464,
16798 GIR_EraseRootFromParent_Done,
16799 // Label 1032: @44529
16800 GIM_Try, /*On fail goto*//*Label 1033*/ GIMT_Encode4(44583), // Rule ID 465 //
16801 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
16802 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_shadd16),
16803 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16804 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16805 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16806 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16807 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16808 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16809 // (intrinsic_wo_chain:{ *:[i32] } 3544:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SHADD16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
16810 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SHADD16),
16811 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16812 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16813 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16814 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16815 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16816 GIR_RootConstrainSelectedInstOperands,
16817 // GIR_Coverage, 465,
16818 GIR_EraseRootFromParent_Done,
16819 // Label 1033: @44583
16820 GIM_Try, /*On fail goto*//*Label 1034*/ GIMT_Encode4(44637), // Rule ID 466 //
16821 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
16822 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_shadd8),
16823 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16824 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16825 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16826 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16827 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16828 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16829 // (intrinsic_wo_chain:{ *:[i32] } 3545:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SHADD8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
16830 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SHADD8),
16831 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16832 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16833 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16834 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16835 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16836 GIR_RootConstrainSelectedInstOperands,
16837 // GIR_Coverage, 466,
16838 GIR_EraseRootFromParent_Done,
16839 // Label 1034: @44637
16840 GIM_Try, /*On fail goto*//*Label 1035*/ GIMT_Encode4(44691), // Rule ID 467 //
16841 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
16842 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_shsax),
16843 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16844 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16845 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16846 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16847 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16848 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16849 // (intrinsic_wo_chain:{ *:[i32] } 3547:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SHSAX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
16850 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SHSAX),
16851 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16852 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16853 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16854 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16855 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16856 GIR_RootConstrainSelectedInstOperands,
16857 // GIR_Coverage, 467,
16858 GIR_EraseRootFromParent_Done,
16859 // Label 1035: @44691
16860 GIM_Try, /*On fail goto*//*Label 1036*/ GIMT_Encode4(44745), // Rule ID 468 //
16861 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
16862 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_shsub16),
16863 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16864 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16865 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16866 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16867 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16868 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16869 // (intrinsic_wo_chain:{ *:[i32] } 3548:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SHSUB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
16870 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SHSUB16),
16871 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16872 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16873 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16874 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16875 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16876 GIR_RootConstrainSelectedInstOperands,
16877 // GIR_Coverage, 468,
16878 GIR_EraseRootFromParent_Done,
16879 // Label 1036: @44745
16880 GIM_Try, /*On fail goto*//*Label 1037*/ GIMT_Encode4(44799), // Rule ID 469 //
16881 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
16882 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_shsub8),
16883 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16884 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16885 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16886 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16887 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16888 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16889 // (intrinsic_wo_chain:{ *:[i32] } 3549:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SHSUB8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
16890 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SHSUB8),
16891 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16892 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16893 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16894 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16895 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16896 GIR_RootConstrainSelectedInstOperands,
16897 // GIR_Coverage, 469,
16898 GIR_EraseRootFromParent_Done,
16899 // Label 1037: @44799
16900 GIM_Try, /*On fail goto*//*Label 1038*/ GIMT_Encode4(44853), // Rule ID 470 //
16901 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
16902 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_uhasx),
16903 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16904 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16905 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16906 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16907 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16908 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16909 // (intrinsic_wo_chain:{ *:[i32] } 3595:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UHASX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
16910 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2UHASX),
16911 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16912 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16913 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16914 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16915 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16916 GIR_RootConstrainSelectedInstOperands,
16917 // GIR_Coverage, 470,
16918 GIR_EraseRootFromParent_Done,
16919 // Label 1038: @44853
16920 GIM_Try, /*On fail goto*//*Label 1039*/ GIMT_Encode4(44907), // Rule ID 471 //
16921 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
16922 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_uhadd16),
16923 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16924 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16925 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16926 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16927 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16928 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16929 // (intrinsic_wo_chain:{ *:[i32] } 3593:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UHADD16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
16930 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2UHADD16),
16931 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16932 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16933 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16934 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16935 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16936 GIR_RootConstrainSelectedInstOperands,
16937 // GIR_Coverage, 471,
16938 GIR_EraseRootFromParent_Done,
16939 // Label 1039: @44907
16940 GIM_Try, /*On fail goto*//*Label 1040*/ GIMT_Encode4(44961), // Rule ID 472 //
16941 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
16942 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_uhadd8),
16943 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16944 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16945 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16946 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16947 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16948 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16949 // (intrinsic_wo_chain:{ *:[i32] } 3594:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UHADD8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
16950 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2UHADD8),
16951 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16952 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16953 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16954 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16955 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16956 GIR_RootConstrainSelectedInstOperands,
16957 // GIR_Coverage, 472,
16958 GIR_EraseRootFromParent_Done,
16959 // Label 1040: @44961
16960 GIM_Try, /*On fail goto*//*Label 1041*/ GIMT_Encode4(45015), // Rule ID 473 //
16961 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
16962 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_uhsax),
16963 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16964 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16965 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16966 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16967 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16968 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16969 // (intrinsic_wo_chain:{ *:[i32] } 3596:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UHSAX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
16970 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2UHSAX),
16971 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16972 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16973 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16974 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16975 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16976 GIR_RootConstrainSelectedInstOperands,
16977 // GIR_Coverage, 473,
16978 GIR_EraseRootFromParent_Done,
16979 // Label 1041: @45015
16980 GIM_Try, /*On fail goto*//*Label 1042*/ GIMT_Encode4(45069), // Rule ID 474 //
16981 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
16982 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_uhsub16),
16983 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
16984 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
16985 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
16986 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16987 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16988 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
16989 // (intrinsic_wo_chain:{ *:[i32] } 3597:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UHSUB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
16990 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2UHSUB16),
16991 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
16992 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
16993 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
16994 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
16995 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
16996 GIR_RootConstrainSelectedInstOperands,
16997 // GIR_Coverage, 474,
16998 GIR_EraseRootFromParent_Done,
16999 // Label 1042: @45069
17000 GIM_Try, /*On fail goto*//*Label 1043*/ GIMT_Encode4(45123), // Rule ID 475 //
17001 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
17002 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_uhsub8),
17003 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
17004 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
17005 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
17006 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
17007 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
17008 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
17009 // (intrinsic_wo_chain:{ *:[i32] } 3598:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UHSUB8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
17010 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2UHSUB8),
17011 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
17012 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
17013 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
17014 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
17015 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
17016 GIR_RootConstrainSelectedInstOperands,
17017 // GIR_Coverage, 475,
17018 GIR_EraseRootFromParent_Done,
17019 // Label 1043: @45123
17020 GIM_Try, /*On fail goto*//*Label 1044*/ GIMT_Encode4(45177), // Rule ID 476 //
17021 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
17022 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_usad8),
17023 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
17024 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
17025 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
17026 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
17027 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
17028 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
17029 // (intrinsic_wo_chain:{ *:[i32] } 3606:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2USAD8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
17030 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2USAD8),
17031 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
17032 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
17033 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
17034 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
17035 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
17036 GIR_RootConstrainSelectedInstOperands,
17037 // GIR_Coverage, 476,
17038 GIR_EraseRootFromParent_Done,
17039 // Label 1044: @45177
17040 GIM_Try, /*On fail goto*//*Label 1045*/ GIMT_Encode4(45231), // Rule ID 532 //
17041 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
17042 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_smuad),
17043 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
17044 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
17045 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
17046 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
17047 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
17048 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
17049 // (intrinsic_wo_chain:{ *:[i32] } 3564:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SMUAD:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
17050 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SMUAD),
17051 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
17052 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
17053 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
17054 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
17055 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
17056 GIR_RootConstrainSelectedInstOperands,
17057 // GIR_Coverage, 532,
17058 GIR_EraseRootFromParent_Done,
17059 // Label 1045: @45231
17060 GIM_Try, /*On fail goto*//*Label 1046*/ GIMT_Encode4(45285), // Rule ID 533 //
17061 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
17062 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_smuadx),
17063 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
17064 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
17065 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
17066 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
17067 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
17068 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
17069 // (intrinsic_wo_chain:{ *:[i32] } 3565:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SMUADX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
17070 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SMUADX),
17071 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
17072 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
17073 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
17074 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
17075 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
17076 GIR_RootConstrainSelectedInstOperands,
17077 // GIR_Coverage, 533,
17078 GIR_EraseRootFromParent_Done,
17079 // Label 1046: @45285
17080 GIM_Try, /*On fail goto*//*Label 1047*/ GIMT_Encode4(45339), // Rule ID 534 //
17081 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
17082 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_smusd),
17083 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
17084 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
17085 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
17086 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
17087 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
17088 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
17089 // (intrinsic_wo_chain:{ *:[i32] } 3572:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SMUSD:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
17090 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SMUSD),
17091 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
17092 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
17093 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
17094 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
17095 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
17096 GIR_RootConstrainSelectedInstOperands,
17097 // GIR_Coverage, 534,
17098 GIR_EraseRootFromParent_Done,
17099 // Label 1047: @45339
17100 GIM_Try, /*On fail goto*//*Label 1048*/ GIMT_Encode4(45393), // Rule ID 535 //
17101 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
17102 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_smusdx),
17103 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
17104 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
17105 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
17106 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
17107 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
17108 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
17109 // (intrinsic_wo_chain:{ *:[i32] } 3573:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SMUSDX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
17110 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SMUSDX),
17111 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
17112 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
17113 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
17114 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
17115 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
17116 GIR_RootConstrainSelectedInstOperands,
17117 // GIR_Coverage, 535,
17118 GIR_EraseRootFromParent_Done,
17119 // Label 1048: @45393
17120 GIM_Try, /*On fail goto*//*Label 1049*/ GIMT_Encode4(45438), // Rule ID 549 //
17121 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasCRC_IsThumb2),
17122 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_crc32b),
17123 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
17124 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
17125 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
17126 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
17127 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
17128 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
17129 // (intrinsic_wo_chain:{ *:[i32] } 3165:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2CRC32B:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
17130 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2CRC32B),
17131 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
17132 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
17133 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
17134 GIR_RootConstrainSelectedInstOperands,
17135 // GIR_Coverage, 549,
17136 GIR_EraseRootFromParent_Done,
17137 // Label 1049: @45438
17138 GIM_Try, /*On fail goto*//*Label 1050*/ GIMT_Encode4(45483), // Rule ID 550 //
17139 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasCRC_IsThumb2),
17140 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_crc32cb),
17141 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
17142 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
17143 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
17144 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
17145 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
17146 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
17147 // (intrinsic_wo_chain:{ *:[i32] } 3166:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2CRC32CB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
17148 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2CRC32CB),
17149 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
17150 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
17151 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
17152 GIR_RootConstrainSelectedInstOperands,
17153 // GIR_Coverage, 550,
17154 GIR_EraseRootFromParent_Done,
17155 // Label 1050: @45483
17156 GIM_Try, /*On fail goto*//*Label 1051*/ GIMT_Encode4(45528), // Rule ID 551 //
17157 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasCRC_IsThumb2),
17158 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_crc32h),
17159 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
17160 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
17161 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
17162 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
17163 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
17164 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
17165 // (intrinsic_wo_chain:{ *:[i32] } 3169:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2CRC32H:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
17166 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2CRC32H),
17167 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
17168 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
17169 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
17170 GIR_RootConstrainSelectedInstOperands,
17171 // GIR_Coverage, 551,
17172 GIR_EraseRootFromParent_Done,
17173 // Label 1051: @45528
17174 GIM_Try, /*On fail goto*//*Label 1052*/ GIMT_Encode4(45573), // Rule ID 552 //
17175 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasCRC_IsThumb2),
17176 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_crc32ch),
17177 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
17178 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
17179 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
17180 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
17181 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
17182 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
17183 // (intrinsic_wo_chain:{ *:[i32] } 3167:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2CRC32CH:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
17184 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2CRC32CH),
17185 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
17186 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
17187 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
17188 GIR_RootConstrainSelectedInstOperands,
17189 // GIR_Coverage, 552,
17190 GIR_EraseRootFromParent_Done,
17191 // Label 1052: @45573
17192 GIM_Try, /*On fail goto*//*Label 1053*/ GIMT_Encode4(45618), // Rule ID 553 //
17193 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasCRC_IsThumb2),
17194 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_crc32w),
17195 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
17196 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
17197 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
17198 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
17199 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
17200 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
17201 // (intrinsic_wo_chain:{ *:[i32] } 3170:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2CRC32W:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
17202 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2CRC32W),
17203 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
17204 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
17205 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
17206 GIR_RootConstrainSelectedInstOperands,
17207 // GIR_Coverage, 553,
17208 GIR_EraseRootFromParent_Done,
17209 // Label 1053: @45618
17210 GIM_Try, /*On fail goto*//*Label 1054*/ GIMT_Encode4(45663), // Rule ID 554 //
17211 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasCRC_IsThumb2),
17212 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_crc32cw),
17213 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
17214 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
17215 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
17216 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
17217 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
17218 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
17219 // (intrinsic_wo_chain:{ *:[i32] } 3168:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2CRC32CW:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
17220 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2CRC32CW),
17221 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
17222 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
17223 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
17224 GIR_RootConstrainSelectedInstOperands,
17225 // GIR_Coverage, 554,
17226 GIR_EraseRootFromParent_Done,
17227 // Label 1054: @45663
17228 GIM_Try, /*On fail goto*//*Label 1055*/ GIMT_Encode4(45717), // Rule ID 809 //
17229 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
17230 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vhadds),
17231 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
17232 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
17233 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s16,
17234 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17235 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17236 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17237 // (intrinsic_wo_chain:{ *:[v4i16] } 3436:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VHADDsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
17238 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VHADDsv4i16),
17239 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
17240 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
17241 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
17242 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
17243 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
17244 GIR_RootConstrainSelectedInstOperands,
17245 // GIR_Coverage, 809,
17246 GIR_EraseRootFromParent_Done,
17247 // Label 1055: @45717
17248 GIM_Try, /*On fail goto*//*Label 1056*/ GIMT_Encode4(45771), // Rule ID 810 //
17249 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
17250 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vhadds),
17251 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
17252 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
17253 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s32,
17254 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17255 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17256 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17257 // (intrinsic_wo_chain:{ *:[v2i32] } 3436:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VHADDsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
17258 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VHADDsv2i32),
17259 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
17260 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
17261 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
17262 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
17263 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
17264 GIR_RootConstrainSelectedInstOperands,
17265 // GIR_Coverage, 810,
17266 GIR_EraseRootFromParent_Done,
17267 // Label 1056: @45771
17268 GIM_Try, /*On fail goto*//*Label 1057*/ GIMT_Encode4(45825), // Rule ID 811 //
17269 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
17270 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vhadds),
17271 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
17272 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
17273 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
17274 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17275 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17276 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17277 // (intrinsic_wo_chain:{ *:[v8i16] } 3436:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VHADDsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
17278 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VHADDsv8i16),
17279 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
17280 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
17281 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
17282 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
17283 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
17284 GIR_RootConstrainSelectedInstOperands,
17285 // GIR_Coverage, 811,
17286 GIR_EraseRootFromParent_Done,
17287 // Label 1057: @45825
17288 GIM_Try, /*On fail goto*//*Label 1058*/ GIMT_Encode4(45879), // Rule ID 812 //
17289 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
17290 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vhadds),
17291 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
17292 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
17293 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
17294 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17295 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17296 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17297 // (intrinsic_wo_chain:{ *:[v4i32] } 3436:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VHADDsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
17298 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VHADDsv4i32),
17299 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
17300 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
17301 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
17302 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
17303 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
17304 GIR_RootConstrainSelectedInstOperands,
17305 // GIR_Coverage, 812,
17306 GIR_EraseRootFromParent_Done,
17307 // Label 1058: @45879
17308 GIM_Try, /*On fail goto*//*Label 1059*/ GIMT_Encode4(45933), // Rule ID 813 //
17309 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
17310 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vhadds),
17311 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s8,
17312 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
17313 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s8,
17314 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17315 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17316 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17317 // (intrinsic_wo_chain:{ *:[v8i8] } 3436:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VHADDsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
17318 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VHADDsv8i8),
17319 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
17320 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
17321 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
17322 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
17323 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
17324 GIR_RootConstrainSelectedInstOperands,
17325 // GIR_Coverage, 813,
17326 GIR_EraseRootFromParent_Done,
17327 // Label 1059: @45933
17328 GIM_Try, /*On fail goto*//*Label 1060*/ GIMT_Encode4(45987), // Rule ID 814 //
17329 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
17330 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vhadds),
17331 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
17332 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
17333 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
17334 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17335 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17336 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17337 // (intrinsic_wo_chain:{ *:[v16i8] } 3436:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VHADDsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
17338 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VHADDsv16i8),
17339 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
17340 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
17341 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
17342 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
17343 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
17344 GIR_RootConstrainSelectedInstOperands,
17345 // GIR_Coverage, 814,
17346 GIR_EraseRootFromParent_Done,
17347 // Label 1060: @45987
17348 GIM_Try, /*On fail goto*//*Label 1061*/ GIMT_Encode4(46041), // Rule ID 815 //
17349 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
17350 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vhaddu),
17351 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
17352 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
17353 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s16,
17354 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17355 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17356 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17357 // (intrinsic_wo_chain:{ *:[v4i16] } 3437:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VHADDuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
17358 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VHADDuv4i16),
17359 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
17360 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
17361 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
17362 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
17363 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
17364 GIR_RootConstrainSelectedInstOperands,
17365 // GIR_Coverage, 815,
17366 GIR_EraseRootFromParent_Done,
17367 // Label 1061: @46041
17368 GIM_Try, /*On fail goto*//*Label 1062*/ GIMT_Encode4(46095), // Rule ID 816 //
17369 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
17370 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vhaddu),
17371 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
17372 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
17373 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s32,
17374 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17375 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17376 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17377 // (intrinsic_wo_chain:{ *:[v2i32] } 3437:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VHADDuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
17378 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VHADDuv2i32),
17379 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
17380 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
17381 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
17382 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
17383 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
17384 GIR_RootConstrainSelectedInstOperands,
17385 // GIR_Coverage, 816,
17386 GIR_EraseRootFromParent_Done,
17387 // Label 1062: @46095
17388 GIM_Try, /*On fail goto*//*Label 1063*/ GIMT_Encode4(46149), // Rule ID 817 //
17389 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
17390 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vhaddu),
17391 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
17392 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
17393 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
17394 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17395 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17396 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17397 // (intrinsic_wo_chain:{ *:[v8i16] } 3437:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VHADDuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
17398 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VHADDuv8i16),
17399 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
17400 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
17401 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
17402 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
17403 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
17404 GIR_RootConstrainSelectedInstOperands,
17405 // GIR_Coverage, 817,
17406 GIR_EraseRootFromParent_Done,
17407 // Label 1063: @46149
17408 GIM_Try, /*On fail goto*//*Label 1064*/ GIMT_Encode4(46203), // Rule ID 818 //
17409 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
17410 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vhaddu),
17411 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
17412 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
17413 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
17414 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17415 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17416 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17417 // (intrinsic_wo_chain:{ *:[v4i32] } 3437:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VHADDuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
17418 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VHADDuv4i32),
17419 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
17420 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
17421 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
17422 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
17423 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
17424 GIR_RootConstrainSelectedInstOperands,
17425 // GIR_Coverage, 818,
17426 GIR_EraseRootFromParent_Done,
17427 // Label 1064: @46203
17428 GIM_Try, /*On fail goto*//*Label 1065*/ GIMT_Encode4(46257), // Rule ID 819 //
17429 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
17430 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vhaddu),
17431 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s8,
17432 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
17433 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s8,
17434 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17435 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17436 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17437 // (intrinsic_wo_chain:{ *:[v8i8] } 3437:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VHADDuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
17438 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VHADDuv8i8),
17439 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
17440 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
17441 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
17442 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
17443 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
17444 GIR_RootConstrainSelectedInstOperands,
17445 // GIR_Coverage, 819,
17446 GIR_EraseRootFromParent_Done,
17447 // Label 1065: @46257
17448 GIM_Try, /*On fail goto*//*Label 1066*/ GIMT_Encode4(46311), // Rule ID 820 //
17449 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
17450 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vhaddu),
17451 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
17452 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
17453 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
17454 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17455 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17456 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17457 // (intrinsic_wo_chain:{ *:[v16i8] } 3437:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VHADDuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
17458 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VHADDuv16i8),
17459 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
17460 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
17461 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
17462 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
17463 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
17464 GIR_RootConstrainSelectedInstOperands,
17465 // GIR_Coverage, 820,
17466 GIR_EraseRootFromParent_Done,
17467 // Label 1066: @46311
17468 GIM_Try, /*On fail goto*//*Label 1067*/ GIMT_Encode4(46365), // Rule ID 821 //
17469 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
17470 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrhadds),
17471 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
17472 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
17473 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s16,
17474 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17475 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17476 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17477 // (intrinsic_wo_chain:{ *:[v4i16] } 3496:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VRHADDsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
17478 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRHADDsv4i16),
17479 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
17480 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
17481 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
17482 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
17483 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
17484 GIR_RootConstrainSelectedInstOperands,
17485 // GIR_Coverage, 821,
17486 GIR_EraseRootFromParent_Done,
17487 // Label 1067: @46365
17488 GIM_Try, /*On fail goto*//*Label 1068*/ GIMT_Encode4(46419), // Rule ID 822 //
17489 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
17490 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrhadds),
17491 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
17492 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
17493 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s32,
17494 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17495 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17496 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17497 // (intrinsic_wo_chain:{ *:[v2i32] } 3496:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VRHADDsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
17498 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRHADDsv2i32),
17499 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
17500 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
17501 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
17502 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
17503 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
17504 GIR_RootConstrainSelectedInstOperands,
17505 // GIR_Coverage, 822,
17506 GIR_EraseRootFromParent_Done,
17507 // Label 1068: @46419
17508 GIM_Try, /*On fail goto*//*Label 1069*/ GIMT_Encode4(46473), // Rule ID 823 //
17509 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
17510 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrhadds),
17511 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
17512 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
17513 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
17514 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17515 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17516 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17517 // (intrinsic_wo_chain:{ *:[v8i16] } 3496:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VRHADDsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
17518 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRHADDsv8i16),
17519 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
17520 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
17521 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
17522 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
17523 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
17524 GIR_RootConstrainSelectedInstOperands,
17525 // GIR_Coverage, 823,
17526 GIR_EraseRootFromParent_Done,
17527 // Label 1069: @46473
17528 GIM_Try, /*On fail goto*//*Label 1070*/ GIMT_Encode4(46527), // Rule ID 824 //
17529 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
17530 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrhadds),
17531 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
17532 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
17533 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
17534 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17535 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17536 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17537 // (intrinsic_wo_chain:{ *:[v4i32] } 3496:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VRHADDsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
17538 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRHADDsv4i32),
17539 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
17540 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
17541 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
17542 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
17543 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
17544 GIR_RootConstrainSelectedInstOperands,
17545 // GIR_Coverage, 824,
17546 GIR_EraseRootFromParent_Done,
17547 // Label 1070: @46527
17548 GIM_Try, /*On fail goto*//*Label 1071*/ GIMT_Encode4(46581), // Rule ID 825 //
17549 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
17550 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrhadds),
17551 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s8,
17552 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
17553 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s8,
17554 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17555 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17556 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17557 // (intrinsic_wo_chain:{ *:[v8i8] } 3496:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VRHADDsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
17558 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRHADDsv8i8),
17559 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
17560 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
17561 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
17562 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
17563 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
17564 GIR_RootConstrainSelectedInstOperands,
17565 // GIR_Coverage, 825,
17566 GIR_EraseRootFromParent_Done,
17567 // Label 1071: @46581
17568 GIM_Try, /*On fail goto*//*Label 1072*/ GIMT_Encode4(46635), // Rule ID 826 //
17569 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
17570 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrhadds),
17571 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
17572 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
17573 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
17574 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17575 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17576 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17577 // (intrinsic_wo_chain:{ *:[v16i8] } 3496:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VRHADDsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
17578 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRHADDsv16i8),
17579 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
17580 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
17581 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
17582 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
17583 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
17584 GIR_RootConstrainSelectedInstOperands,
17585 // GIR_Coverage, 826,
17586 GIR_EraseRootFromParent_Done,
17587 // Label 1072: @46635
17588 GIM_Try, /*On fail goto*//*Label 1073*/ GIMT_Encode4(46689), // Rule ID 827 //
17589 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
17590 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrhaddu),
17591 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
17592 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
17593 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s16,
17594 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17595 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17596 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17597 // (intrinsic_wo_chain:{ *:[v4i16] } 3497:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VRHADDuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
17598 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRHADDuv4i16),
17599 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
17600 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
17601 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
17602 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
17603 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
17604 GIR_RootConstrainSelectedInstOperands,
17605 // GIR_Coverage, 827,
17606 GIR_EraseRootFromParent_Done,
17607 // Label 1073: @46689
17608 GIM_Try, /*On fail goto*//*Label 1074*/ GIMT_Encode4(46743), // Rule ID 828 //
17609 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
17610 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrhaddu),
17611 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
17612 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
17613 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s32,
17614 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17615 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17616 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17617 // (intrinsic_wo_chain:{ *:[v2i32] } 3497:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VRHADDuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
17618 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRHADDuv2i32),
17619 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
17620 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
17621 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
17622 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
17623 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
17624 GIR_RootConstrainSelectedInstOperands,
17625 // GIR_Coverage, 828,
17626 GIR_EraseRootFromParent_Done,
17627 // Label 1074: @46743
17628 GIM_Try, /*On fail goto*//*Label 1075*/ GIMT_Encode4(46797), // Rule ID 829 //
17629 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
17630 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrhaddu),
17631 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
17632 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
17633 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
17634 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17635 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17636 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17637 // (intrinsic_wo_chain:{ *:[v8i16] } 3497:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VRHADDuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
17638 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRHADDuv8i16),
17639 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
17640 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
17641 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
17642 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
17643 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
17644 GIR_RootConstrainSelectedInstOperands,
17645 // GIR_Coverage, 829,
17646 GIR_EraseRootFromParent_Done,
17647 // Label 1075: @46797
17648 GIM_Try, /*On fail goto*//*Label 1076*/ GIMT_Encode4(46851), // Rule ID 830 //
17649 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
17650 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrhaddu),
17651 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
17652 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
17653 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
17654 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17655 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17656 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17657 // (intrinsic_wo_chain:{ *:[v4i32] } 3497:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VRHADDuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
17658 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRHADDuv4i32),
17659 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
17660 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
17661 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
17662 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
17663 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
17664 GIR_RootConstrainSelectedInstOperands,
17665 // GIR_Coverage, 830,
17666 GIR_EraseRootFromParent_Done,
17667 // Label 1076: @46851
17668 GIM_Try, /*On fail goto*//*Label 1077*/ GIMT_Encode4(46905), // Rule ID 831 //
17669 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
17670 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrhaddu),
17671 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s8,
17672 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
17673 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s8,
17674 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17675 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17676 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17677 // (intrinsic_wo_chain:{ *:[v8i8] } 3497:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VRHADDuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
17678 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRHADDuv8i8),
17679 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
17680 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
17681 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
17682 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
17683 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
17684 GIR_RootConstrainSelectedInstOperands,
17685 // GIR_Coverage, 831,
17686 GIR_EraseRootFromParent_Done,
17687 // Label 1077: @46905
17688 GIM_Try, /*On fail goto*//*Label 1078*/ GIMT_Encode4(46959), // Rule ID 832 //
17689 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
17690 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrhaddu),
17691 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
17692 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
17693 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
17694 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17695 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17696 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17697 // (intrinsic_wo_chain:{ *:[v16i8] } 3497:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VRHADDuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
17698 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRHADDuv16i8),
17699 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
17700 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
17701 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
17702 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
17703 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
17704 GIR_RootConstrainSelectedInstOperands,
17705 // GIR_Coverage, 832,
17706 GIR_EraseRootFromParent_Done,
17707 // Label 1078: @46959
17708 GIM_Try, /*On fail goto*//*Label 1079*/ GIMT_Encode4(47013), // Rule ID 849 //
17709 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
17710 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vraddhn),
17711 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s8,
17712 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
17713 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
17714 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17715 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17716 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17717 // (intrinsic_wo_chain:{ *:[v8i8] } 3493:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VRADDHNv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
17718 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRADDHNv8i8),
17719 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
17720 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
17721 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
17722 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
17723 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
17724 GIR_RootConstrainSelectedInstOperands,
17725 // GIR_Coverage, 849,
17726 GIR_EraseRootFromParent_Done,
17727 // Label 1079: @47013
17728 GIM_Try, /*On fail goto*//*Label 1080*/ GIMT_Encode4(47067), // Rule ID 850 //
17729 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
17730 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vraddhn),
17731 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
17732 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
17733 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
17734 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17735 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17736 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17737 // (intrinsic_wo_chain:{ *:[v4i16] } 3493:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VRADDHNv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
17738 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRADDHNv4i16),
17739 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
17740 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
17741 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
17742 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
17743 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
17744 GIR_RootConstrainSelectedInstOperands,
17745 // GIR_Coverage, 850,
17746 GIR_EraseRootFromParent_Done,
17747 // Label 1080: @47067
17748 GIM_Try, /*On fail goto*//*Label 1081*/ GIMT_Encode4(47121), // Rule ID 851 //
17749 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
17750 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vraddhn),
17751 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
17752 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s64,
17753 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s64,
17754 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17755 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17756 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17757 // (intrinsic_wo_chain:{ *:[v2i32] } 3493:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm) => (VRADDHNv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
17758 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRADDHNv2i32),
17759 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
17760 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
17761 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
17762 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
17763 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
17764 GIR_RootConstrainSelectedInstOperands,
17765 // GIR_Coverage, 851,
17766 GIR_EraseRootFromParent_Done,
17767 // Label 1081: @47121
17768 GIM_Try, /*On fail goto*//*Label 1082*/ GIMT_Encode4(47175), // Rule ID 858 //
17769 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
17770 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vmulp),
17771 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s8,
17772 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
17773 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s8,
17774 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17775 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17776 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17777 // (intrinsic_wo_chain:{ *:[v8i8] } 3462:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VMULpd:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
17778 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMULpd),
17779 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
17780 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
17781 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
17782 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
17783 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
17784 GIR_RootConstrainSelectedInstOperands,
17785 // GIR_Coverage, 858,
17786 GIR_EraseRootFromParent_Done,
17787 // Label 1082: @47175
17788 GIM_Try, /*On fail goto*//*Label 1083*/ GIMT_Encode4(47229), // Rule ID 859 //
17789 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
17790 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vmulp),
17791 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
17792 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
17793 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
17794 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17795 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17796 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17797 // (intrinsic_wo_chain:{ *:[v16i8] } 3462:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VMULpq:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
17798 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMULpq),
17799 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
17800 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
17801 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
17802 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
17803 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
17804 GIR_RootConstrainSelectedInstOperands,
17805 // GIR_Coverage, 859,
17806 GIR_EraseRootFromParent_Done,
17807 // Label 1083: @47229
17808 GIM_Try, /*On fail goto*//*Label 1084*/ GIMT_Encode4(47283), // Rule ID 872 //
17809 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
17810 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqdmulh),
17811 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
17812 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
17813 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s16,
17814 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17815 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17816 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17817 // (intrinsic_wo_chain:{ *:[v4i16] } 3473:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VQDMULHv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
17818 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQDMULHv4i16),
17819 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
17820 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
17821 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
17822 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
17823 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
17824 GIR_RootConstrainSelectedInstOperands,
17825 // GIR_Coverage, 872,
17826 GIR_EraseRootFromParent_Done,
17827 // Label 1084: @47283
17828 GIM_Try, /*On fail goto*//*Label 1085*/ GIMT_Encode4(47337), // Rule ID 873 //
17829 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
17830 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqdmulh),
17831 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
17832 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
17833 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s32,
17834 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17835 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17836 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17837 // (intrinsic_wo_chain:{ *:[v2i32] } 3473:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VQDMULHv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
17838 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQDMULHv2i32),
17839 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
17840 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
17841 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
17842 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
17843 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
17844 GIR_RootConstrainSelectedInstOperands,
17845 // GIR_Coverage, 873,
17846 GIR_EraseRootFromParent_Done,
17847 // Label 1085: @47337
17848 GIM_Try, /*On fail goto*//*Label 1086*/ GIMT_Encode4(47391), // Rule ID 874 //
17849 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
17850 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqdmulh),
17851 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
17852 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
17853 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
17854 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17855 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17856 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17857 // (intrinsic_wo_chain:{ *:[v8i16] } 3473:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VQDMULHv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
17858 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQDMULHv8i16),
17859 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
17860 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
17861 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
17862 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
17863 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
17864 GIR_RootConstrainSelectedInstOperands,
17865 // GIR_Coverage, 874,
17866 GIR_EraseRootFromParent_Done,
17867 // Label 1086: @47391
17868 GIM_Try, /*On fail goto*//*Label 1087*/ GIMT_Encode4(47445), // Rule ID 875 //
17869 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
17870 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqdmulh),
17871 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
17872 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
17873 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
17874 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17875 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17876 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17877 // (intrinsic_wo_chain:{ *:[v4i32] } 3473:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VQDMULHv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
17878 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQDMULHv4i32),
17879 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
17880 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
17881 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
17882 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
17883 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
17884 GIR_RootConstrainSelectedInstOperands,
17885 // GIR_Coverage, 875,
17886 GIR_EraseRootFromParent_Done,
17887 // Label 1087: @47445
17888 GIM_Try, /*On fail goto*//*Label 1088*/ GIMT_Encode4(47499), // Rule ID 880 //
17889 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
17890 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqrdmulh),
17891 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
17892 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
17893 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s16,
17894 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17895 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17896 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17897 // (intrinsic_wo_chain:{ *:[v4i16] } 3481:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VQRDMULHv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
17898 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQRDMULHv4i16),
17899 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
17900 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
17901 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
17902 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
17903 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
17904 GIR_RootConstrainSelectedInstOperands,
17905 // GIR_Coverage, 880,
17906 GIR_EraseRootFromParent_Done,
17907 // Label 1088: @47499
17908 GIM_Try, /*On fail goto*//*Label 1089*/ GIMT_Encode4(47553), // Rule ID 881 //
17909 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
17910 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqrdmulh),
17911 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
17912 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
17913 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s32,
17914 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17915 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17916 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17917 // (intrinsic_wo_chain:{ *:[v2i32] } 3481:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VQRDMULHv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
17918 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQRDMULHv2i32),
17919 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
17920 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
17921 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
17922 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
17923 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
17924 GIR_RootConstrainSelectedInstOperands,
17925 // GIR_Coverage, 881,
17926 GIR_EraseRootFromParent_Done,
17927 // Label 1089: @47553
17928 GIM_Try, /*On fail goto*//*Label 1090*/ GIMT_Encode4(47607), // Rule ID 882 //
17929 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
17930 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqrdmulh),
17931 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
17932 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
17933 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
17934 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17935 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17936 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17937 // (intrinsic_wo_chain:{ *:[v8i16] } 3481:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VQRDMULHv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
17938 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQRDMULHv8i16),
17939 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
17940 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
17941 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
17942 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
17943 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
17944 GIR_RootConstrainSelectedInstOperands,
17945 // GIR_Coverage, 882,
17946 GIR_EraseRootFromParent_Done,
17947 // Label 1090: @47607
17948 GIM_Try, /*On fail goto*//*Label 1091*/ GIMT_Encode4(47661), // Rule ID 883 //
17949 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
17950 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqrdmulh),
17951 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
17952 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
17953 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
17954 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17955 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17956 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17957 // (intrinsic_wo_chain:{ *:[v4i32] } 3481:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VQRDMULHv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
17958 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQRDMULHv4i32),
17959 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
17960 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
17961 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
17962 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
17963 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
17964 GIR_RootConstrainSelectedInstOperands,
17965 // GIR_Coverage, 883,
17966 GIR_EraseRootFromParent_Done,
17967 // Label 1091: @47661
17968 GIM_Try, /*On fail goto*//*Label 1092*/ GIMT_Encode4(47715), // Rule ID 894 //
17969 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
17970 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vmullp),
17971 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
17972 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
17973 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s8,
17974 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17975 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17976 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17977 // (intrinsic_wo_chain:{ *:[v8i16] } 3459:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VMULLp8:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
17978 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMULLp8),
17979 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
17980 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
17981 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
17982 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
17983 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
17984 GIR_RootConstrainSelectedInstOperands,
17985 // GIR_Coverage, 894,
17986 GIR_EraseRootFromParent_Done,
17987 // Label 1092: @47715
17988 GIM_Try, /*On fail goto*//*Label 1093*/ GIMT_Encode4(47760), // Rule ID 895 //
17989 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasAES_HasV8),
17990 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vmullp),
17991 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s64,
17992 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
17993 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s64,
17994 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
17995 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17996 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
17997 // (intrinsic_wo_chain:{ *:[v2i64] } 3459:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm) => (VMULLp64:{ *:[v2i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
17998 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMULLp64),
17999 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18000 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
18001 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18002 GIR_RootConstrainSelectedInstOperands,
18003 // GIR_Coverage, 895,
18004 GIR_EraseRootFromParent_Done,
18005 // Label 1093: @47760
18006 GIM_Try, /*On fail goto*//*Label 1094*/ GIMT_Encode4(47814), // Rule ID 900 //
18007 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
18008 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqdmull),
18009 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
18010 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
18011 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s16,
18012 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18013 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18014 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18015 // (intrinsic_wo_chain:{ *:[v4i32] } 3474:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VQDMULLv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
18016 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQDMULLv4i32),
18017 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18018 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
18019 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18020 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18021 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18022 GIR_RootConstrainSelectedInstOperands,
18023 // GIR_Coverage, 900,
18024 GIR_EraseRootFromParent_Done,
18025 // Label 1094: @47814
18026 GIM_Try, /*On fail goto*//*Label 1095*/ GIMT_Encode4(47868), // Rule ID 901 //
18027 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
18028 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqdmull),
18029 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s64,
18030 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
18031 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s32,
18032 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18033 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18034 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18035 // (intrinsic_wo_chain:{ *:[v2i64] } 3474:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VQDMULLv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
18036 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQDMULLv2i64),
18037 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18038 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
18039 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18040 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18041 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18042 GIR_RootConstrainSelectedInstOperands,
18043 // GIR_Coverage, 901,
18044 GIR_EraseRootFromParent_Done,
18045 // Label 1095: @47868
18046 GIM_Try, /*On fail goto*//*Label 1096*/ GIMT_Encode4(47922), // Rule ID 1013 //
18047 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
18048 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vhsubs),
18049 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
18050 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
18051 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s16,
18052 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18053 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18054 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18055 // (intrinsic_wo_chain:{ *:[v4i16] } 3438:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VHSUBsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
18056 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VHSUBsv4i16),
18057 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18058 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
18059 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18060 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18061 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18062 GIR_RootConstrainSelectedInstOperands,
18063 // GIR_Coverage, 1013,
18064 GIR_EraseRootFromParent_Done,
18065 // Label 1096: @47922
18066 GIM_Try, /*On fail goto*//*Label 1097*/ GIMT_Encode4(47976), // Rule ID 1014 //
18067 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
18068 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vhsubs),
18069 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
18070 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
18071 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s32,
18072 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18073 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18074 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18075 // (intrinsic_wo_chain:{ *:[v2i32] } 3438:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VHSUBsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
18076 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VHSUBsv2i32),
18077 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18078 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
18079 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18080 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18081 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18082 GIR_RootConstrainSelectedInstOperands,
18083 // GIR_Coverage, 1014,
18084 GIR_EraseRootFromParent_Done,
18085 // Label 1097: @47976
18086 GIM_Try, /*On fail goto*//*Label 1098*/ GIMT_Encode4(48030), // Rule ID 1015 //
18087 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
18088 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vhsubs),
18089 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
18090 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
18091 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
18092 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18093 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18094 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18095 // (intrinsic_wo_chain:{ *:[v8i16] } 3438:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VHSUBsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
18096 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VHSUBsv8i16),
18097 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18098 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
18099 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18100 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18101 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18102 GIR_RootConstrainSelectedInstOperands,
18103 // GIR_Coverage, 1015,
18104 GIR_EraseRootFromParent_Done,
18105 // Label 1098: @48030
18106 GIM_Try, /*On fail goto*//*Label 1099*/ GIMT_Encode4(48084), // Rule ID 1016 //
18107 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
18108 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vhsubs),
18109 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
18110 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
18111 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
18112 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18113 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18114 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18115 // (intrinsic_wo_chain:{ *:[v4i32] } 3438:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VHSUBsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
18116 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VHSUBsv4i32),
18117 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18118 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
18119 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18120 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18121 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18122 GIR_RootConstrainSelectedInstOperands,
18123 // GIR_Coverage, 1016,
18124 GIR_EraseRootFromParent_Done,
18125 // Label 1099: @48084
18126 GIM_Try, /*On fail goto*//*Label 1100*/ GIMT_Encode4(48138), // Rule ID 1017 //
18127 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
18128 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vhsubs),
18129 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s8,
18130 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
18131 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s8,
18132 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18133 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18134 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18135 // (intrinsic_wo_chain:{ *:[v8i8] } 3438:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VHSUBsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
18136 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VHSUBsv8i8),
18137 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18138 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
18139 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18140 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18141 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18142 GIR_RootConstrainSelectedInstOperands,
18143 // GIR_Coverage, 1017,
18144 GIR_EraseRootFromParent_Done,
18145 // Label 1100: @48138
18146 GIM_Try, /*On fail goto*//*Label 1101*/ GIMT_Encode4(48192), // Rule ID 1018 //
18147 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
18148 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vhsubs),
18149 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
18150 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
18151 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
18152 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18153 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18154 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18155 // (intrinsic_wo_chain:{ *:[v16i8] } 3438:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VHSUBsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
18156 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VHSUBsv16i8),
18157 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18158 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
18159 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18160 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18161 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18162 GIR_RootConstrainSelectedInstOperands,
18163 // GIR_Coverage, 1018,
18164 GIR_EraseRootFromParent_Done,
18165 // Label 1101: @48192
18166 GIM_Try, /*On fail goto*//*Label 1102*/ GIMT_Encode4(48246), // Rule ID 1019 //
18167 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
18168 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vhsubu),
18169 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
18170 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
18171 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s16,
18172 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18173 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18174 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18175 // (intrinsic_wo_chain:{ *:[v4i16] } 3439:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VHSUBuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
18176 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VHSUBuv4i16),
18177 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18178 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
18179 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18180 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18181 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18182 GIR_RootConstrainSelectedInstOperands,
18183 // GIR_Coverage, 1019,
18184 GIR_EraseRootFromParent_Done,
18185 // Label 1102: @48246
18186 GIM_Try, /*On fail goto*//*Label 1103*/ GIMT_Encode4(48300), // Rule ID 1020 //
18187 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
18188 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vhsubu),
18189 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
18190 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
18191 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s32,
18192 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18193 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18194 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18195 // (intrinsic_wo_chain:{ *:[v2i32] } 3439:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VHSUBuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
18196 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VHSUBuv2i32),
18197 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18198 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
18199 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18200 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18201 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18202 GIR_RootConstrainSelectedInstOperands,
18203 // GIR_Coverage, 1020,
18204 GIR_EraseRootFromParent_Done,
18205 // Label 1103: @48300
18206 GIM_Try, /*On fail goto*//*Label 1104*/ GIMT_Encode4(48354), // Rule ID 1021 //
18207 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
18208 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vhsubu),
18209 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
18210 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
18211 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
18212 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18213 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18214 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18215 // (intrinsic_wo_chain:{ *:[v8i16] } 3439:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VHSUBuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
18216 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VHSUBuv8i16),
18217 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18218 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
18219 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18220 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18221 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18222 GIR_RootConstrainSelectedInstOperands,
18223 // GIR_Coverage, 1021,
18224 GIR_EraseRootFromParent_Done,
18225 // Label 1104: @48354
18226 GIM_Try, /*On fail goto*//*Label 1105*/ GIMT_Encode4(48408), // Rule ID 1022 //
18227 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
18228 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vhsubu),
18229 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
18230 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
18231 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
18232 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18233 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18234 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18235 // (intrinsic_wo_chain:{ *:[v4i32] } 3439:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VHSUBuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
18236 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VHSUBuv4i32),
18237 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18238 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
18239 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18240 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18241 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18242 GIR_RootConstrainSelectedInstOperands,
18243 // GIR_Coverage, 1022,
18244 GIR_EraseRootFromParent_Done,
18245 // Label 1105: @48408
18246 GIM_Try, /*On fail goto*//*Label 1106*/ GIMT_Encode4(48462), // Rule ID 1023 //
18247 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
18248 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vhsubu),
18249 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s8,
18250 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
18251 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s8,
18252 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18253 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18254 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18255 // (intrinsic_wo_chain:{ *:[v8i8] } 3439:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VHSUBuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
18256 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VHSUBuv8i8),
18257 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18258 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
18259 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18260 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18261 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18262 GIR_RootConstrainSelectedInstOperands,
18263 // GIR_Coverage, 1023,
18264 GIR_EraseRootFromParent_Done,
18265 // Label 1106: @48462
18266 GIM_Try, /*On fail goto*//*Label 1107*/ GIMT_Encode4(48516), // Rule ID 1024 //
18267 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
18268 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vhsubu),
18269 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
18270 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
18271 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
18272 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18273 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18274 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18275 // (intrinsic_wo_chain:{ *:[v16i8] } 3439:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VHSUBuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
18276 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VHSUBuv16i8),
18277 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18278 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
18279 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18280 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18281 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18282 GIR_RootConstrainSelectedInstOperands,
18283 // GIR_Coverage, 1024,
18284 GIR_EraseRootFromParent_Done,
18285 // Label 1107: @48516
18286 GIM_Try, /*On fail goto*//*Label 1108*/ GIMT_Encode4(48570), // Rule ID 1041 //
18287 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
18288 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrsubhn),
18289 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s8,
18290 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
18291 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
18292 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18293 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18294 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18295 // (intrinsic_wo_chain:{ *:[v8i8] } 3509:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VRSUBHNv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
18296 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRSUBHNv8i8),
18297 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18298 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
18299 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18300 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18301 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18302 GIR_RootConstrainSelectedInstOperands,
18303 // GIR_Coverage, 1041,
18304 GIR_EraseRootFromParent_Done,
18305 // Label 1108: @48570
18306 GIM_Try, /*On fail goto*//*Label 1109*/ GIMT_Encode4(48624), // Rule ID 1042 //
18307 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
18308 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrsubhn),
18309 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
18310 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
18311 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
18312 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18313 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18314 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18315 // (intrinsic_wo_chain:{ *:[v4i16] } 3509:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VRSUBHNv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
18316 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRSUBHNv4i16),
18317 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18318 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
18319 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18320 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18321 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18322 GIR_RootConstrainSelectedInstOperands,
18323 // GIR_Coverage, 1042,
18324 GIR_EraseRootFromParent_Done,
18325 // Label 1109: @48624
18326 GIM_Try, /*On fail goto*//*Label 1110*/ GIMT_Encode4(48678), // Rule ID 1043 //
18327 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
18328 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrsubhn),
18329 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
18330 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s64,
18331 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s64,
18332 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18333 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18334 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18335 // (intrinsic_wo_chain:{ *:[v2i32] } 3509:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm) => (VRSUBHNv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
18336 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRSUBHNv2i32),
18337 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18338 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
18339 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18340 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18341 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18342 GIR_RootConstrainSelectedInstOperands,
18343 // GIR_Coverage, 1043,
18344 GIR_EraseRootFromParent_Done,
18345 // Label 1110: @48678
18346 GIM_Try, /*On fail goto*//*Label 1111*/ GIMT_Encode4(48732), // Rule ID 1136 //
18347 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
18348 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vacge),
18349 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
18350 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
18351 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s32,
18352 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18353 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18354 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18355 // (intrinsic_wo_chain:{ *:[v2i32] } 3414:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) => (VACGEfd:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
18356 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VACGEfd),
18357 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18358 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
18359 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18360 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18361 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18362 GIR_RootConstrainSelectedInstOperands,
18363 // GIR_Coverage, 1136,
18364 GIR_EraseRootFromParent_Done,
18365 // Label 1111: @48732
18366 GIM_Try, /*On fail goto*//*Label 1112*/ GIMT_Encode4(48786), // Rule ID 1137 //
18367 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
18368 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vacge),
18369 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
18370 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
18371 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
18372 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18373 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18374 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18375 // (intrinsic_wo_chain:{ *:[v4i32] } 3414:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) => (VACGEfq:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
18376 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VACGEfq),
18377 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18378 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
18379 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18380 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18381 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18382 GIR_RootConstrainSelectedInstOperands,
18383 // GIR_Coverage, 1137,
18384 GIR_EraseRootFromParent_Done,
18385 // Label 1112: @48786
18386 GIM_Try, /*On fail goto*//*Label 1113*/ GIMT_Encode4(48840), // Rule ID 1138 //
18387 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
18388 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vacge),
18389 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
18390 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
18391 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s16,
18392 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18393 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18394 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18395 // (intrinsic_wo_chain:{ *:[v4i16] } 3414:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) => (VACGEhd:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
18396 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VACGEhd),
18397 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18398 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
18399 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18400 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18401 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18402 GIR_RootConstrainSelectedInstOperands,
18403 // GIR_Coverage, 1138,
18404 GIR_EraseRootFromParent_Done,
18405 // Label 1113: @48840
18406 GIM_Try, /*On fail goto*//*Label 1114*/ GIMT_Encode4(48894), // Rule ID 1139 //
18407 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
18408 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vacge),
18409 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
18410 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
18411 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
18412 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18413 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18414 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18415 // (intrinsic_wo_chain:{ *:[v8i16] } 3414:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) => (VACGEhq:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
18416 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VACGEhq),
18417 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18418 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
18419 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18420 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18421 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18422 GIR_RootConstrainSelectedInstOperands,
18423 // GIR_Coverage, 1139,
18424 GIR_EraseRootFromParent_Done,
18425 // Label 1114: @48894
18426 GIM_Try, /*On fail goto*//*Label 1115*/ GIMT_Encode4(48948), // Rule ID 1140 //
18427 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
18428 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vacgt),
18429 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
18430 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
18431 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s32,
18432 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18433 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18434 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18435 // (intrinsic_wo_chain:{ *:[v2i32] } 3415:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) => (VACGTfd:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
18436 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VACGTfd),
18437 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18438 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
18439 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18440 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18441 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18442 GIR_RootConstrainSelectedInstOperands,
18443 // GIR_Coverage, 1140,
18444 GIR_EraseRootFromParent_Done,
18445 // Label 1115: @48948
18446 GIM_Try, /*On fail goto*//*Label 1116*/ GIMT_Encode4(49002), // Rule ID 1141 //
18447 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
18448 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vacgt),
18449 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
18450 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
18451 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
18452 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18453 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18454 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18455 // (intrinsic_wo_chain:{ *:[v4i32] } 3415:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) => (VACGTfq:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
18456 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VACGTfq),
18457 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18458 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
18459 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18460 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18461 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18462 GIR_RootConstrainSelectedInstOperands,
18463 // GIR_Coverage, 1141,
18464 GIR_EraseRootFromParent_Done,
18465 // Label 1116: @49002
18466 GIM_Try, /*On fail goto*//*Label 1117*/ GIMT_Encode4(49056), // Rule ID 1142 //
18467 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
18468 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vacgt),
18469 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
18470 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
18471 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s16,
18472 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18473 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18474 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18475 // (intrinsic_wo_chain:{ *:[v4i16] } 3415:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) => (VACGThd:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
18476 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VACGThd),
18477 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18478 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
18479 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18480 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18481 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18482 GIR_RootConstrainSelectedInstOperands,
18483 // GIR_Coverage, 1142,
18484 GIR_EraseRootFromParent_Done,
18485 // Label 1117: @49056
18486 GIM_Try, /*On fail goto*//*Label 1118*/ GIMT_Encode4(49110), // Rule ID 1143 //
18487 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
18488 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vacgt),
18489 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
18490 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
18491 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
18492 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18493 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18494 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18495 // (intrinsic_wo_chain:{ *:[v8i16] } 3415:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) => (VACGThq:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
18496 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VACGThq),
18497 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18498 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
18499 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18500 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18501 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18502 GIR_RootConstrainSelectedInstOperands,
18503 // GIR_Coverage, 1143,
18504 GIR_EraseRootFromParent_Done,
18505 // Label 1118: @49110
18506 GIM_Try, /*On fail goto*//*Label 1119*/ GIMT_Encode4(49164), // Rule ID 1188 //
18507 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
18508 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vabds),
18509 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
18510 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
18511 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s32,
18512 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18513 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18514 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18515 // (intrinsic_wo_chain:{ *:[v2f32] } 3411:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) => (VABDfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
18516 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VABDfd),
18517 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18518 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
18519 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18520 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18521 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18522 GIR_RootConstrainSelectedInstOperands,
18523 // GIR_Coverage, 1188,
18524 GIR_EraseRootFromParent_Done,
18525 // Label 1119: @49164
18526 GIM_Try, /*On fail goto*//*Label 1120*/ GIMT_Encode4(49218), // Rule ID 1189 //
18527 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
18528 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vabds),
18529 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
18530 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
18531 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
18532 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18533 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18534 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18535 // (intrinsic_wo_chain:{ *:[v4f32] } 3411:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) => (VABDfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
18536 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VABDfq),
18537 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18538 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
18539 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18540 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18541 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18542 GIR_RootConstrainSelectedInstOperands,
18543 // GIR_Coverage, 1189,
18544 GIR_EraseRootFromParent_Done,
18545 // Label 1120: @49218
18546 GIM_Try, /*On fail goto*//*Label 1121*/ GIMT_Encode4(49272), // Rule ID 1190 //
18547 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
18548 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vabds),
18549 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
18550 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
18551 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s16,
18552 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18553 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18554 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18555 // (intrinsic_wo_chain:{ *:[v4f16] } 3411:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) => (VABDhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
18556 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VABDhd),
18557 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18558 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
18559 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18560 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18561 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18562 GIR_RootConstrainSelectedInstOperands,
18563 // GIR_Coverage, 1190,
18564 GIR_EraseRootFromParent_Done,
18565 // Label 1121: @49272
18566 GIM_Try, /*On fail goto*//*Label 1122*/ GIMT_Encode4(49326), // Rule ID 1191 //
18567 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
18568 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vabds),
18569 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
18570 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
18571 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
18572 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18573 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18574 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18575 // (intrinsic_wo_chain:{ *:[v8f16] } 3411:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) => (VABDhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
18576 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VABDhq),
18577 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18578 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
18579 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18580 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18581 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18582 GIR_RootConstrainSelectedInstOperands,
18583 // GIR_Coverage, 1191,
18584 GIR_EraseRootFromParent_Done,
18585 // Label 1122: @49326
18586 GIM_Try, /*On fail goto*//*Label 1123*/ GIMT_Encode4(49380), // Rule ID 1256 //
18587 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
18588 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpadd),
18589 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s8,
18590 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
18591 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s8,
18592 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18593 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18594 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18595 // (intrinsic_wo_chain:{ *:[v8i8] } 3465:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VPADDi8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
18596 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPADDi8),
18597 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18598 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
18599 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18600 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18601 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18602 GIR_RootConstrainSelectedInstOperands,
18603 // GIR_Coverage, 1256,
18604 GIR_EraseRootFromParent_Done,
18605 // Label 1123: @49380
18606 GIM_Try, /*On fail goto*//*Label 1124*/ GIMT_Encode4(49434), // Rule ID 1257 //
18607 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
18608 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpadd),
18609 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
18610 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
18611 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s16,
18612 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18613 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18614 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18615 // (intrinsic_wo_chain:{ *:[v4i16] } 3465:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VPADDi16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
18616 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPADDi16),
18617 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18618 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
18619 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18620 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18621 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18622 GIR_RootConstrainSelectedInstOperands,
18623 // GIR_Coverage, 1257,
18624 GIR_EraseRootFromParent_Done,
18625 // Label 1124: @49434
18626 GIM_Try, /*On fail goto*//*Label 1125*/ GIMT_Encode4(49488), // Rule ID 1258 //
18627 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
18628 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpadd),
18629 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
18630 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
18631 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s32,
18632 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18633 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18634 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18635 // (intrinsic_wo_chain:{ *:[v2i32] } 3465:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VPADDi32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
18636 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPADDi32),
18637 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18638 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
18639 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18640 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18641 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18642 GIR_RootConstrainSelectedInstOperands,
18643 // GIR_Coverage, 1258,
18644 GIR_EraseRootFromParent_Done,
18645 // Label 1125: @49488
18646 GIM_Try, /*On fail goto*//*Label 1126*/ GIMT_Encode4(49542), // Rule ID 1259 //
18647 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
18648 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpadd),
18649 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
18650 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
18651 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s32,
18652 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18653 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18654 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18655 // (intrinsic_wo_chain:{ *:[v2f32] } 3465:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) => (VPADDf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
18656 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPADDf),
18657 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18658 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
18659 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18660 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18661 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18662 GIR_RootConstrainSelectedInstOperands,
18663 // GIR_Coverage, 1259,
18664 GIR_EraseRootFromParent_Done,
18665 // Label 1126: @49542
18666 GIM_Try, /*On fail goto*//*Label 1127*/ GIMT_Encode4(49596), // Rule ID 1260 //
18667 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
18668 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpadd),
18669 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
18670 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
18671 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s16,
18672 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18673 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18674 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18675 // (intrinsic_wo_chain:{ *:[v4f16] } 3465:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) => (VPADDh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
18676 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPADDh),
18677 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18678 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
18679 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18680 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18681 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18682 GIR_RootConstrainSelectedInstOperands,
18683 // GIR_Coverage, 1260,
18684 GIR_EraseRootFromParent_Done,
18685 // Label 1127: @49596
18686 GIM_Try, /*On fail goto*//*Label 1128*/ GIMT_Encode4(49650), // Rule ID 1273 //
18687 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
18688 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpadals),
18689 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
18690 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
18691 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s8,
18692 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18693 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18694 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18695 // (intrinsic_wo_chain:{ *:[v4i16] } 3463:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v8i8] }:$Vm) => (VPADALsv8i8:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v8i8] }:$Vm)
18696 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPADALsv8i8),
18697 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18698 GIR_RootToRootCopy, /*OpIdx*/2, // src1
18699 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18700 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18701 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18702 GIR_RootConstrainSelectedInstOperands,
18703 // GIR_Coverage, 1273,
18704 GIR_EraseRootFromParent_Done,
18705 // Label 1128: @49650
18706 GIM_Try, /*On fail goto*//*Label 1129*/ GIMT_Encode4(49704), // Rule ID 1274 //
18707 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
18708 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpadals),
18709 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
18710 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
18711 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s16,
18712 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18713 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18714 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18715 // (intrinsic_wo_chain:{ *:[v2i32] } 3463:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v4i16] }:$Vm) => (VPADALsv4i16:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v4i16] }:$Vm)
18716 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPADALsv4i16),
18717 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18718 GIR_RootToRootCopy, /*OpIdx*/2, // src1
18719 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18720 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18721 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18722 GIR_RootConstrainSelectedInstOperands,
18723 // GIR_Coverage, 1274,
18724 GIR_EraseRootFromParent_Done,
18725 // Label 1129: @49704
18726 GIM_Try, /*On fail goto*//*Label 1130*/ GIMT_Encode4(49758), // Rule ID 1275 //
18727 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
18728 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpadals),
18729 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s64,
18730 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
18731 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s32,
18732 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18733 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18734 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18735 // (intrinsic_wo_chain:{ *:[v1i64] } 3463:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v2i32] }:$Vm) => (VPADALsv2i32:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v2i32] }:$Vm)
18736 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPADALsv2i32),
18737 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18738 GIR_RootToRootCopy, /*OpIdx*/2, // src1
18739 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18740 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18741 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18742 GIR_RootConstrainSelectedInstOperands,
18743 // GIR_Coverage, 1275,
18744 GIR_EraseRootFromParent_Done,
18745 // Label 1130: @49758
18746 GIM_Try, /*On fail goto*//*Label 1131*/ GIMT_Encode4(49812), // Rule ID 1276 //
18747 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
18748 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpadals),
18749 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
18750 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
18751 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
18752 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18753 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18754 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18755 // (intrinsic_wo_chain:{ *:[v8i16] } 3463:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v16i8] }:$Vm) => (VPADALsv16i8:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v16i8] }:$Vm)
18756 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPADALsv16i8),
18757 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18758 GIR_RootToRootCopy, /*OpIdx*/2, // src1
18759 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18760 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18761 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18762 GIR_RootConstrainSelectedInstOperands,
18763 // GIR_Coverage, 1276,
18764 GIR_EraseRootFromParent_Done,
18765 // Label 1131: @49812
18766 GIM_Try, /*On fail goto*//*Label 1132*/ GIMT_Encode4(49866), // Rule ID 1277 //
18767 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
18768 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpadals),
18769 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
18770 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
18771 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
18772 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18773 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18774 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18775 // (intrinsic_wo_chain:{ *:[v4i32] } 3463:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v8i16] }:$Vm) => (VPADALsv8i16:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v8i16] }:$Vm)
18776 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPADALsv8i16),
18777 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18778 GIR_RootToRootCopy, /*OpIdx*/2, // src1
18779 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18780 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18781 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18782 GIR_RootConstrainSelectedInstOperands,
18783 // GIR_Coverage, 1277,
18784 GIR_EraseRootFromParent_Done,
18785 // Label 1132: @49866
18786 GIM_Try, /*On fail goto*//*Label 1133*/ GIMT_Encode4(49920), // Rule ID 1278 //
18787 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
18788 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpadals),
18789 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s64,
18790 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s64,
18791 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
18792 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18793 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18794 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18795 // (intrinsic_wo_chain:{ *:[v2i64] } 3463:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v4i32] }:$Vm) => (VPADALsv4i32:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v4i32] }:$Vm)
18796 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPADALsv4i32),
18797 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18798 GIR_RootToRootCopy, /*OpIdx*/2, // src1
18799 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18800 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18801 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18802 GIR_RootConstrainSelectedInstOperands,
18803 // GIR_Coverage, 1278,
18804 GIR_EraseRootFromParent_Done,
18805 // Label 1133: @49920
18806 GIM_Try, /*On fail goto*//*Label 1134*/ GIMT_Encode4(49974), // Rule ID 1279 //
18807 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
18808 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpadalu),
18809 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
18810 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
18811 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s8,
18812 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18813 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18814 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18815 // (intrinsic_wo_chain:{ *:[v4i16] } 3464:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v8i8] }:$Vm) => (VPADALuv8i8:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v8i8] }:$Vm)
18816 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPADALuv8i8),
18817 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18818 GIR_RootToRootCopy, /*OpIdx*/2, // src1
18819 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18820 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18821 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18822 GIR_RootConstrainSelectedInstOperands,
18823 // GIR_Coverage, 1279,
18824 GIR_EraseRootFromParent_Done,
18825 // Label 1134: @49974
18826 GIM_Try, /*On fail goto*//*Label 1135*/ GIMT_Encode4(50028), // Rule ID 1280 //
18827 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
18828 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpadalu),
18829 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
18830 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
18831 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s16,
18832 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18833 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18834 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18835 // (intrinsic_wo_chain:{ *:[v2i32] } 3464:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v4i16] }:$Vm) => (VPADALuv4i16:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v4i16] }:$Vm)
18836 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPADALuv4i16),
18837 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18838 GIR_RootToRootCopy, /*OpIdx*/2, // src1
18839 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18840 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18841 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18842 GIR_RootConstrainSelectedInstOperands,
18843 // GIR_Coverage, 1280,
18844 GIR_EraseRootFromParent_Done,
18845 // Label 1135: @50028
18846 GIM_Try, /*On fail goto*//*Label 1136*/ GIMT_Encode4(50082), // Rule ID 1281 //
18847 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
18848 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpadalu),
18849 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s64,
18850 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
18851 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s32,
18852 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18853 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18854 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18855 // (intrinsic_wo_chain:{ *:[v1i64] } 3464:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v2i32] }:$Vm) => (VPADALuv2i32:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v2i32] }:$Vm)
18856 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPADALuv2i32),
18857 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18858 GIR_RootToRootCopy, /*OpIdx*/2, // src1
18859 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18860 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18861 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18862 GIR_RootConstrainSelectedInstOperands,
18863 // GIR_Coverage, 1281,
18864 GIR_EraseRootFromParent_Done,
18865 // Label 1136: @50082
18866 GIM_Try, /*On fail goto*//*Label 1137*/ GIMT_Encode4(50136), // Rule ID 1282 //
18867 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
18868 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpadalu),
18869 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
18870 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
18871 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
18872 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18873 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18874 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18875 // (intrinsic_wo_chain:{ *:[v8i16] } 3464:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v16i8] }:$Vm) => (VPADALuv16i8:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v16i8] }:$Vm)
18876 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPADALuv16i8),
18877 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18878 GIR_RootToRootCopy, /*OpIdx*/2, // src1
18879 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18880 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18881 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18882 GIR_RootConstrainSelectedInstOperands,
18883 // GIR_Coverage, 1282,
18884 GIR_EraseRootFromParent_Done,
18885 // Label 1137: @50136
18886 GIM_Try, /*On fail goto*//*Label 1138*/ GIMT_Encode4(50190), // Rule ID 1283 //
18887 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
18888 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpadalu),
18889 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
18890 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
18891 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
18892 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18893 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18894 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18895 // (intrinsic_wo_chain:{ *:[v4i32] } 3464:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v8i16] }:$Vm) => (VPADALuv8i16:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v8i16] }:$Vm)
18896 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPADALuv8i16),
18897 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18898 GIR_RootToRootCopy, /*OpIdx*/2, // src1
18899 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18900 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18901 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18902 GIR_RootConstrainSelectedInstOperands,
18903 // GIR_Coverage, 1283,
18904 GIR_EraseRootFromParent_Done,
18905 // Label 1138: @50190
18906 GIM_Try, /*On fail goto*//*Label 1139*/ GIMT_Encode4(50244), // Rule ID 1284 //
18907 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
18908 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpadalu),
18909 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s64,
18910 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s64,
18911 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
18912 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18913 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18914 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
18915 // (intrinsic_wo_chain:{ *:[v2i64] } 3464:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v4i32] }:$Vm) => (VPADALuv4i32:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v4i32] }:$Vm)
18916 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPADALuv4i32),
18917 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18918 GIR_RootToRootCopy, /*OpIdx*/2, // src1
18919 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18920 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18921 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18922 GIR_RootConstrainSelectedInstOperands,
18923 // GIR_Coverage, 1284,
18924 GIR_EraseRootFromParent_Done,
18925 // Label 1139: @50244
18926 GIM_Try, /*On fail goto*//*Label 1140*/ GIMT_Encode4(50298), // Rule ID 1285 //
18927 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
18928 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpmaxs),
18929 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s8,
18930 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
18931 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s8,
18932 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18933 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18934 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18935 // (intrinsic_wo_chain:{ *:[v8i8] } 3468:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VPMAXs8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
18936 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPMAXs8),
18937 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18938 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
18939 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18940 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18941 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18942 GIR_RootConstrainSelectedInstOperands,
18943 // GIR_Coverage, 1285,
18944 GIR_EraseRootFromParent_Done,
18945 // Label 1140: @50298
18946 GIM_Try, /*On fail goto*//*Label 1141*/ GIMT_Encode4(50352), // Rule ID 1286 //
18947 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
18948 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpmaxs),
18949 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
18950 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
18951 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s16,
18952 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18953 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18954 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18955 // (intrinsic_wo_chain:{ *:[v4i16] } 3468:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VPMAXs16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
18956 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPMAXs16),
18957 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18958 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
18959 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18960 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18961 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18962 GIR_RootConstrainSelectedInstOperands,
18963 // GIR_Coverage, 1286,
18964 GIR_EraseRootFromParent_Done,
18965 // Label 1141: @50352
18966 GIM_Try, /*On fail goto*//*Label 1142*/ GIMT_Encode4(50406), // Rule ID 1287 //
18967 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
18968 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpmaxs),
18969 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
18970 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
18971 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s32,
18972 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18973 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18974 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18975 // (intrinsic_wo_chain:{ *:[v2i32] } 3468:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VPMAXs32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
18976 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPMAXs32),
18977 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18978 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
18979 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
18980 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
18981 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
18982 GIR_RootConstrainSelectedInstOperands,
18983 // GIR_Coverage, 1287,
18984 GIR_EraseRootFromParent_Done,
18985 // Label 1142: @50406
18986 GIM_Try, /*On fail goto*//*Label 1143*/ GIMT_Encode4(50460), // Rule ID 1288 //
18987 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
18988 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpmaxu),
18989 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s8,
18990 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
18991 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s8,
18992 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18993 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18994 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
18995 // (intrinsic_wo_chain:{ *:[v8i8] } 3469:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VPMAXu8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
18996 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPMAXu8),
18997 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
18998 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
18999 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
19000 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19001 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19002 GIR_RootConstrainSelectedInstOperands,
19003 // GIR_Coverage, 1288,
19004 GIR_EraseRootFromParent_Done,
19005 // Label 1143: @50460
19006 GIM_Try, /*On fail goto*//*Label 1144*/ GIMT_Encode4(50514), // Rule ID 1289 //
19007 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
19008 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpmaxu),
19009 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
19010 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
19011 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s16,
19012 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19013 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19014 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19015 // (intrinsic_wo_chain:{ *:[v4i16] } 3469:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VPMAXu16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
19016 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPMAXu16),
19017 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19018 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
19019 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
19020 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19021 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19022 GIR_RootConstrainSelectedInstOperands,
19023 // GIR_Coverage, 1289,
19024 GIR_EraseRootFromParent_Done,
19025 // Label 1144: @50514
19026 GIM_Try, /*On fail goto*//*Label 1145*/ GIMT_Encode4(50568), // Rule ID 1290 //
19027 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
19028 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpmaxu),
19029 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
19030 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
19031 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s32,
19032 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19033 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19034 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19035 // (intrinsic_wo_chain:{ *:[v2i32] } 3469:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VPMAXu32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
19036 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPMAXu32),
19037 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19038 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
19039 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
19040 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19041 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19042 GIR_RootConstrainSelectedInstOperands,
19043 // GIR_Coverage, 1290,
19044 GIR_EraseRootFromParent_Done,
19045 // Label 1145: @50568
19046 GIM_Try, /*On fail goto*//*Label 1146*/ GIMT_Encode4(50622), // Rule ID 1291 //
19047 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
19048 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpmaxs),
19049 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
19050 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
19051 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s32,
19052 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19053 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19054 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19055 // (intrinsic_wo_chain:{ *:[v2f32] } 3468:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) => (VPMAXf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
19056 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPMAXf),
19057 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19058 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
19059 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
19060 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19061 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19062 GIR_RootConstrainSelectedInstOperands,
19063 // GIR_Coverage, 1291,
19064 GIR_EraseRootFromParent_Done,
19065 // Label 1146: @50622
19066 GIM_Try, /*On fail goto*//*Label 1147*/ GIMT_Encode4(50676), // Rule ID 1292 //
19067 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
19068 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpmaxs),
19069 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
19070 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
19071 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s16,
19072 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19073 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19074 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19075 // (intrinsic_wo_chain:{ *:[v4f16] } 3468:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) => (VPMAXh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
19076 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPMAXh),
19077 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19078 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
19079 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
19080 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19081 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19082 GIR_RootConstrainSelectedInstOperands,
19083 // GIR_Coverage, 1292,
19084 GIR_EraseRootFromParent_Done,
19085 // Label 1147: @50676
19086 GIM_Try, /*On fail goto*//*Label 1148*/ GIMT_Encode4(50730), // Rule ID 1293 //
19087 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
19088 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpmins),
19089 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s8,
19090 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
19091 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s8,
19092 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19093 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19094 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19095 // (intrinsic_wo_chain:{ *:[v8i8] } 3470:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VPMINs8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
19096 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPMINs8),
19097 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19098 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
19099 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
19100 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19101 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19102 GIR_RootConstrainSelectedInstOperands,
19103 // GIR_Coverage, 1293,
19104 GIR_EraseRootFromParent_Done,
19105 // Label 1148: @50730
19106 GIM_Try, /*On fail goto*//*Label 1149*/ GIMT_Encode4(50784), // Rule ID 1294 //
19107 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
19108 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpmins),
19109 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
19110 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
19111 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s16,
19112 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19113 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19114 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19115 // (intrinsic_wo_chain:{ *:[v4i16] } 3470:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VPMINs16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
19116 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPMINs16),
19117 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19118 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
19119 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
19120 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19121 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19122 GIR_RootConstrainSelectedInstOperands,
19123 // GIR_Coverage, 1294,
19124 GIR_EraseRootFromParent_Done,
19125 // Label 1149: @50784
19126 GIM_Try, /*On fail goto*//*Label 1150*/ GIMT_Encode4(50838), // Rule ID 1295 //
19127 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
19128 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpmins),
19129 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
19130 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
19131 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s32,
19132 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19133 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19134 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19135 // (intrinsic_wo_chain:{ *:[v2i32] } 3470:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VPMINs32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
19136 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPMINs32),
19137 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19138 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
19139 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
19140 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19141 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19142 GIR_RootConstrainSelectedInstOperands,
19143 // GIR_Coverage, 1295,
19144 GIR_EraseRootFromParent_Done,
19145 // Label 1150: @50838
19146 GIM_Try, /*On fail goto*//*Label 1151*/ GIMT_Encode4(50892), // Rule ID 1296 //
19147 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
19148 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpminu),
19149 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s8,
19150 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
19151 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s8,
19152 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19153 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19154 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19155 // (intrinsic_wo_chain:{ *:[v8i8] } 3471:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VPMINu8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
19156 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPMINu8),
19157 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19158 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
19159 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
19160 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19161 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19162 GIR_RootConstrainSelectedInstOperands,
19163 // GIR_Coverage, 1296,
19164 GIR_EraseRootFromParent_Done,
19165 // Label 1151: @50892
19166 GIM_Try, /*On fail goto*//*Label 1152*/ GIMT_Encode4(50946), // Rule ID 1297 //
19167 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
19168 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpminu),
19169 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
19170 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
19171 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s16,
19172 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19173 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19174 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19175 // (intrinsic_wo_chain:{ *:[v4i16] } 3471:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VPMINu16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
19176 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPMINu16),
19177 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19178 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
19179 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
19180 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19181 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19182 GIR_RootConstrainSelectedInstOperands,
19183 // GIR_Coverage, 1297,
19184 GIR_EraseRootFromParent_Done,
19185 // Label 1152: @50946
19186 GIM_Try, /*On fail goto*//*Label 1153*/ GIMT_Encode4(51000), // Rule ID 1298 //
19187 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
19188 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpminu),
19189 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
19190 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
19191 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s32,
19192 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19193 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19194 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19195 // (intrinsic_wo_chain:{ *:[v2i32] } 3471:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VPMINu32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
19196 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPMINu32),
19197 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19198 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
19199 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
19200 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19201 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19202 GIR_RootConstrainSelectedInstOperands,
19203 // GIR_Coverage, 1298,
19204 GIR_EraseRootFromParent_Done,
19205 // Label 1153: @51000
19206 GIM_Try, /*On fail goto*//*Label 1154*/ GIMT_Encode4(51054), // Rule ID 1299 //
19207 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
19208 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpmins),
19209 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
19210 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
19211 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s32,
19212 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19213 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19214 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19215 // (intrinsic_wo_chain:{ *:[v2f32] } 3470:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) => (VPMINf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
19216 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPMINf),
19217 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19218 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
19219 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
19220 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19221 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19222 GIR_RootConstrainSelectedInstOperands,
19223 // GIR_Coverage, 1299,
19224 GIR_EraseRootFromParent_Done,
19225 // Label 1154: @51054
19226 GIM_Try, /*On fail goto*//*Label 1155*/ GIMT_Encode4(51108), // Rule ID 1300 //
19227 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
19228 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vpmins),
19229 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
19230 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
19231 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s16,
19232 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19233 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19234 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19235 // (intrinsic_wo_chain:{ *:[v4f16] } 3470:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) => (VPMINh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
19236 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VPMINh),
19237 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19238 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
19239 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
19240 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19241 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19242 GIR_RootConstrainSelectedInstOperands,
19243 // GIR_Coverage, 1300,
19244 GIR_EraseRootFromParent_Done,
19245 // Label 1155: @51108
19246 GIM_Try, /*On fail goto*//*Label 1156*/ GIMT_Encode4(51162), // Rule ID 1307 //
19247 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
19248 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrecps),
19249 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
19250 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
19251 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s32,
19252 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19253 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19254 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19255 // (intrinsic_wo_chain:{ *:[v2f32] } 3495:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) => (VRECPSfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
19256 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRECPSfd),
19257 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19258 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
19259 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
19260 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19261 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19262 GIR_RootConstrainSelectedInstOperands,
19263 // GIR_Coverage, 1307,
19264 GIR_EraseRootFromParent_Done,
19265 // Label 1156: @51162
19266 GIM_Try, /*On fail goto*//*Label 1157*/ GIMT_Encode4(51216), // Rule ID 1308 //
19267 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
19268 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrecps),
19269 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
19270 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
19271 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
19272 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19273 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19274 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19275 // (intrinsic_wo_chain:{ *:[v4f32] } 3495:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) => (VRECPSfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
19276 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRECPSfq),
19277 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19278 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
19279 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
19280 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19281 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19282 GIR_RootConstrainSelectedInstOperands,
19283 // GIR_Coverage, 1308,
19284 GIR_EraseRootFromParent_Done,
19285 // Label 1157: @51216
19286 GIM_Try, /*On fail goto*//*Label 1158*/ GIMT_Encode4(51270), // Rule ID 1309 //
19287 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
19288 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrecps),
19289 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
19290 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
19291 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s16,
19292 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19293 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19294 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19295 // (intrinsic_wo_chain:{ *:[v4f16] } 3495:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) => (VRECPShd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
19296 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRECPShd),
19297 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19298 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
19299 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
19300 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19301 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19302 GIR_RootConstrainSelectedInstOperands,
19303 // GIR_Coverage, 1309,
19304 GIR_EraseRootFromParent_Done,
19305 // Label 1158: @51270
19306 GIM_Try, /*On fail goto*//*Label 1159*/ GIMT_Encode4(51324), // Rule ID 1310 //
19307 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
19308 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrecps),
19309 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
19310 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
19311 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
19312 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19313 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19314 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19315 // (intrinsic_wo_chain:{ *:[v8f16] } 3495:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) => (VRECPShq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
19316 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRECPShq),
19317 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19318 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
19319 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
19320 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19321 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19322 GIR_RootConstrainSelectedInstOperands,
19323 // GIR_Coverage, 1310,
19324 GIR_EraseRootFromParent_Done,
19325 // Label 1159: @51324
19326 GIM_Try, /*On fail goto*//*Label 1160*/ GIMT_Encode4(51378), // Rule ID 1317 //
19327 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
19328 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrsqrts),
19329 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
19330 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
19331 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s32,
19332 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19333 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19334 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19335 // (intrinsic_wo_chain:{ *:[v2f32] } 3508:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) => (VRSQRTSfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
19336 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRSQRTSfd),
19337 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19338 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
19339 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
19340 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19341 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19342 GIR_RootConstrainSelectedInstOperands,
19343 // GIR_Coverage, 1317,
19344 GIR_EraseRootFromParent_Done,
19345 // Label 1160: @51378
19346 GIM_Try, /*On fail goto*//*Label 1161*/ GIMT_Encode4(51432), // Rule ID 1318 //
19347 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
19348 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrsqrts),
19349 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
19350 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
19351 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
19352 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19353 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19354 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19355 // (intrinsic_wo_chain:{ *:[v4f32] } 3508:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) => (VRSQRTSfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
19356 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRSQRTSfq),
19357 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19358 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
19359 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
19360 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19361 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19362 GIR_RootConstrainSelectedInstOperands,
19363 // GIR_Coverage, 1318,
19364 GIR_EraseRootFromParent_Done,
19365 // Label 1161: @51432
19366 GIM_Try, /*On fail goto*//*Label 1162*/ GIMT_Encode4(51486), // Rule ID 1319 //
19367 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
19368 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrsqrts),
19369 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
19370 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
19371 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s16,
19372 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19373 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19374 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19375 // (intrinsic_wo_chain:{ *:[v4f16] } 3508:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) => (VRSQRTShd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
19376 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRSQRTShd),
19377 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19378 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
19379 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
19380 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19381 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19382 GIR_RootConstrainSelectedInstOperands,
19383 // GIR_Coverage, 1319,
19384 GIR_EraseRootFromParent_Done,
19385 // Label 1162: @51486
19386 GIM_Try, /*On fail goto*//*Label 1163*/ GIMT_Encode4(51540), // Rule ID 1320 //
19387 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
19388 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrsqrts),
19389 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
19390 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
19391 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
19392 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19393 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19394 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19395 // (intrinsic_wo_chain:{ *:[v8f16] } 3508:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) => (VRSQRTShq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
19396 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRSQRTShq),
19397 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19398 GIR_RootToRootCopy, /*OpIdx*/2, // Vn
19399 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
19400 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19401 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19402 GIR_RootConstrainSelectedInstOperands,
19403 // GIR_Coverage, 1320,
19404 GIR_EraseRootFromParent_Done,
19405 // Label 1163: @51540
19406 GIM_Try, /*On fail goto*//*Label 1164*/ GIMT_Encode4(51594), // Rule ID 1321 //
19407 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
19408 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vshifts),
19409 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
19410 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
19411 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s16,
19412 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19413 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19414 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19415 // (intrinsic_wo_chain:{ *:[v4i16] } 3511:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn) => (VSHLsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn)
19416 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSHLsv4i16),
19417 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19418 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
19419 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
19420 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19421 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19422 GIR_RootConstrainSelectedInstOperands,
19423 // GIR_Coverage, 1321,
19424 GIR_EraseRootFromParent_Done,
19425 // Label 1164: @51594
19426 GIM_Try, /*On fail goto*//*Label 1165*/ GIMT_Encode4(51648), // Rule ID 1322 //
19427 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
19428 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vshifts),
19429 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
19430 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
19431 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s32,
19432 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19433 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19434 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19435 // (intrinsic_wo_chain:{ *:[v2i32] } 3511:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn) => (VSHLsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn)
19436 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSHLsv2i32),
19437 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19438 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
19439 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
19440 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19441 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19442 GIR_RootConstrainSelectedInstOperands,
19443 // GIR_Coverage, 1322,
19444 GIR_EraseRootFromParent_Done,
19445 // Label 1165: @51648
19446 GIM_Try, /*On fail goto*//*Label 1166*/ GIMT_Encode4(51702), // Rule ID 1323 //
19447 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
19448 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vshifts),
19449 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
19450 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
19451 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
19452 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19453 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19454 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19455 // (intrinsic_wo_chain:{ *:[v8i16] } 3511:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn) => (VSHLsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn)
19456 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSHLsv8i16),
19457 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19458 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
19459 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
19460 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19461 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19462 GIR_RootConstrainSelectedInstOperands,
19463 // GIR_Coverage, 1323,
19464 GIR_EraseRootFromParent_Done,
19465 // Label 1166: @51702
19466 GIM_Try, /*On fail goto*//*Label 1167*/ GIMT_Encode4(51756), // Rule ID 1324 //
19467 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
19468 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vshifts),
19469 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
19470 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
19471 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
19472 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19473 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19474 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19475 // (intrinsic_wo_chain:{ *:[v4i32] } 3511:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn) => (VSHLsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn)
19476 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSHLsv4i32),
19477 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19478 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
19479 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
19480 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19481 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19482 GIR_RootConstrainSelectedInstOperands,
19483 // GIR_Coverage, 1324,
19484 GIR_EraseRootFromParent_Done,
19485 // Label 1167: @51756
19486 GIM_Try, /*On fail goto*//*Label 1168*/ GIMT_Encode4(51810), // Rule ID 1325 //
19487 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
19488 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vshifts),
19489 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s8,
19490 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
19491 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s8,
19492 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19493 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19494 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19495 // (intrinsic_wo_chain:{ *:[v8i8] } 3511:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn) => (VSHLsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn)
19496 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSHLsv8i8),
19497 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19498 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
19499 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
19500 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19501 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19502 GIR_RootConstrainSelectedInstOperands,
19503 // GIR_Coverage, 1325,
19504 GIR_EraseRootFromParent_Done,
19505 // Label 1168: @51810
19506 GIM_Try, /*On fail goto*//*Label 1169*/ GIMT_Encode4(51864), // Rule ID 1326 //
19507 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
19508 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vshifts),
19509 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
19510 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
19511 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
19512 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19513 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19514 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19515 // (intrinsic_wo_chain:{ *:[v16i8] } 3511:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn) => (VSHLsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn)
19516 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSHLsv16i8),
19517 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19518 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
19519 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
19520 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19521 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19522 GIR_RootConstrainSelectedInstOperands,
19523 // GIR_Coverage, 1326,
19524 GIR_EraseRootFromParent_Done,
19525 // Label 1169: @51864
19526 GIM_Try, /*On fail goto*//*Label 1170*/ GIMT_Encode4(51918), // Rule ID 1327 //
19527 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
19528 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vshifts),
19529 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s64,
19530 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
19531 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s64,
19532 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19533 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19534 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19535 // (intrinsic_wo_chain:{ *:[v1i64] } 3511:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn) => (VSHLsv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn)
19536 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSHLsv1i64),
19537 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19538 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
19539 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
19540 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19541 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19542 GIR_RootConstrainSelectedInstOperands,
19543 // GIR_Coverage, 1327,
19544 GIR_EraseRootFromParent_Done,
19545 // Label 1170: @51918
19546 GIM_Try, /*On fail goto*//*Label 1171*/ GIMT_Encode4(51972), // Rule ID 1328 //
19547 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
19548 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vshifts),
19549 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s64,
19550 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s64,
19551 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s64,
19552 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19553 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19554 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19555 // (intrinsic_wo_chain:{ *:[v2i64] } 3511:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn) => (VSHLsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn)
19556 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSHLsv2i64),
19557 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19558 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
19559 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
19560 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19561 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19562 GIR_RootConstrainSelectedInstOperands,
19563 // GIR_Coverage, 1328,
19564 GIR_EraseRootFromParent_Done,
19565 // Label 1171: @51972
19566 GIM_Try, /*On fail goto*//*Label 1172*/ GIMT_Encode4(52026), // Rule ID 1329 //
19567 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
19568 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vshiftu),
19569 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
19570 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
19571 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s16,
19572 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19573 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19574 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19575 // (intrinsic_wo_chain:{ *:[v4i16] } 3512:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn) => (VSHLuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn)
19576 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSHLuv4i16),
19577 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19578 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
19579 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
19580 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19581 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19582 GIR_RootConstrainSelectedInstOperands,
19583 // GIR_Coverage, 1329,
19584 GIR_EraseRootFromParent_Done,
19585 // Label 1172: @52026
19586 GIM_Try, /*On fail goto*//*Label 1173*/ GIMT_Encode4(52080), // Rule ID 1330 //
19587 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
19588 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vshiftu),
19589 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
19590 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
19591 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s32,
19592 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19593 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19594 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19595 // (intrinsic_wo_chain:{ *:[v2i32] } 3512:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn) => (VSHLuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn)
19596 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSHLuv2i32),
19597 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19598 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
19599 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
19600 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19601 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19602 GIR_RootConstrainSelectedInstOperands,
19603 // GIR_Coverage, 1330,
19604 GIR_EraseRootFromParent_Done,
19605 // Label 1173: @52080
19606 GIM_Try, /*On fail goto*//*Label 1174*/ GIMT_Encode4(52134), // Rule ID 1331 //
19607 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
19608 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vshiftu),
19609 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
19610 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
19611 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
19612 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19613 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19614 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19615 // (intrinsic_wo_chain:{ *:[v8i16] } 3512:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn) => (VSHLuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn)
19616 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSHLuv8i16),
19617 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19618 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
19619 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
19620 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19621 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19622 GIR_RootConstrainSelectedInstOperands,
19623 // GIR_Coverage, 1331,
19624 GIR_EraseRootFromParent_Done,
19625 // Label 1174: @52134
19626 GIM_Try, /*On fail goto*//*Label 1175*/ GIMT_Encode4(52188), // Rule ID 1332 //
19627 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
19628 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vshiftu),
19629 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
19630 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
19631 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
19632 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19633 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19634 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19635 // (intrinsic_wo_chain:{ *:[v4i32] } 3512:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn) => (VSHLuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn)
19636 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSHLuv4i32),
19637 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19638 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
19639 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
19640 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19641 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19642 GIR_RootConstrainSelectedInstOperands,
19643 // GIR_Coverage, 1332,
19644 GIR_EraseRootFromParent_Done,
19645 // Label 1175: @52188
19646 GIM_Try, /*On fail goto*//*Label 1176*/ GIMT_Encode4(52242), // Rule ID 1333 //
19647 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
19648 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vshiftu),
19649 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s8,
19650 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
19651 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s8,
19652 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19653 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19654 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19655 // (intrinsic_wo_chain:{ *:[v8i8] } 3512:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn) => (VSHLuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn)
19656 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSHLuv8i8),
19657 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19658 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
19659 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
19660 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19661 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19662 GIR_RootConstrainSelectedInstOperands,
19663 // GIR_Coverage, 1333,
19664 GIR_EraseRootFromParent_Done,
19665 // Label 1176: @52242
19666 GIM_Try, /*On fail goto*//*Label 1177*/ GIMT_Encode4(52296), // Rule ID 1334 //
19667 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
19668 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vshiftu),
19669 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
19670 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
19671 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
19672 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19673 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19674 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19675 // (intrinsic_wo_chain:{ *:[v16i8] } 3512:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn) => (VSHLuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn)
19676 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSHLuv16i8),
19677 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19678 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
19679 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
19680 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19681 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19682 GIR_RootConstrainSelectedInstOperands,
19683 // GIR_Coverage, 1334,
19684 GIR_EraseRootFromParent_Done,
19685 // Label 1177: @52296
19686 GIM_Try, /*On fail goto*//*Label 1178*/ GIMT_Encode4(52350), // Rule ID 1335 //
19687 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
19688 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vshiftu),
19689 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s64,
19690 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
19691 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s64,
19692 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19693 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19694 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19695 // (intrinsic_wo_chain:{ *:[v1i64] } 3512:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn) => (VSHLuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn)
19696 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSHLuv1i64),
19697 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19698 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
19699 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
19700 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19701 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19702 GIR_RootConstrainSelectedInstOperands,
19703 // GIR_Coverage, 1335,
19704 GIR_EraseRootFromParent_Done,
19705 // Label 1178: @52350
19706 GIM_Try, /*On fail goto*//*Label 1179*/ GIMT_Encode4(52404), // Rule ID 1336 //
19707 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
19708 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vshiftu),
19709 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s64,
19710 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s64,
19711 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s64,
19712 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19713 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19714 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19715 // (intrinsic_wo_chain:{ *:[v2i64] } 3512:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn) => (VSHLuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn)
19716 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSHLuv2i64),
19717 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19718 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
19719 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
19720 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19721 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19722 GIR_RootConstrainSelectedInstOperands,
19723 // GIR_Coverage, 1336,
19724 GIR_EraseRootFromParent_Done,
19725 // Label 1179: @52404
19726 GIM_Try, /*On fail goto*//*Label 1180*/ GIMT_Encode4(52458), // Rule ID 1370 //
19727 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
19728 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrshifts),
19729 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
19730 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
19731 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s16,
19732 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19733 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19734 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19735 // (intrinsic_wo_chain:{ *:[v4i16] } 3505:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn) => (VRSHLsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn)
19736 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRSHLsv4i16),
19737 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19738 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
19739 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
19740 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19741 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19742 GIR_RootConstrainSelectedInstOperands,
19743 // GIR_Coverage, 1370,
19744 GIR_EraseRootFromParent_Done,
19745 // Label 1180: @52458
19746 GIM_Try, /*On fail goto*//*Label 1181*/ GIMT_Encode4(52512), // Rule ID 1371 //
19747 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
19748 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrshifts),
19749 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
19750 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
19751 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s32,
19752 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19753 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19754 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19755 // (intrinsic_wo_chain:{ *:[v2i32] } 3505:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn) => (VRSHLsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn)
19756 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRSHLsv2i32),
19757 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19758 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
19759 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
19760 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19761 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19762 GIR_RootConstrainSelectedInstOperands,
19763 // GIR_Coverage, 1371,
19764 GIR_EraseRootFromParent_Done,
19765 // Label 1181: @52512
19766 GIM_Try, /*On fail goto*//*Label 1182*/ GIMT_Encode4(52566), // Rule ID 1372 //
19767 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
19768 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrshifts),
19769 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
19770 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
19771 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
19772 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19773 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19774 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19775 // (intrinsic_wo_chain:{ *:[v8i16] } 3505:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn) => (VRSHLsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn)
19776 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRSHLsv8i16),
19777 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19778 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
19779 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
19780 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19781 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19782 GIR_RootConstrainSelectedInstOperands,
19783 // GIR_Coverage, 1372,
19784 GIR_EraseRootFromParent_Done,
19785 // Label 1182: @52566
19786 GIM_Try, /*On fail goto*//*Label 1183*/ GIMT_Encode4(52620), // Rule ID 1373 //
19787 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
19788 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrshifts),
19789 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
19790 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
19791 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
19792 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19793 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19794 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19795 // (intrinsic_wo_chain:{ *:[v4i32] } 3505:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn) => (VRSHLsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn)
19796 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRSHLsv4i32),
19797 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19798 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
19799 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
19800 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19801 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19802 GIR_RootConstrainSelectedInstOperands,
19803 // GIR_Coverage, 1373,
19804 GIR_EraseRootFromParent_Done,
19805 // Label 1183: @52620
19806 GIM_Try, /*On fail goto*//*Label 1184*/ GIMT_Encode4(52674), // Rule ID 1374 //
19807 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
19808 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrshifts),
19809 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s8,
19810 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
19811 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s8,
19812 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19813 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19814 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19815 // (intrinsic_wo_chain:{ *:[v8i8] } 3505:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn) => (VRSHLsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn)
19816 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRSHLsv8i8),
19817 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19818 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
19819 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
19820 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19821 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19822 GIR_RootConstrainSelectedInstOperands,
19823 // GIR_Coverage, 1374,
19824 GIR_EraseRootFromParent_Done,
19825 // Label 1184: @52674
19826 GIM_Try, /*On fail goto*//*Label 1185*/ GIMT_Encode4(52728), // Rule ID 1375 //
19827 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
19828 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrshifts),
19829 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
19830 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
19831 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
19832 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19833 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19834 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19835 // (intrinsic_wo_chain:{ *:[v16i8] } 3505:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn) => (VRSHLsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn)
19836 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRSHLsv16i8),
19837 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19838 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
19839 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
19840 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19841 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19842 GIR_RootConstrainSelectedInstOperands,
19843 // GIR_Coverage, 1375,
19844 GIR_EraseRootFromParent_Done,
19845 // Label 1185: @52728
19846 GIM_Try, /*On fail goto*//*Label 1186*/ GIMT_Encode4(52782), // Rule ID 1376 //
19847 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
19848 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrshifts),
19849 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s64,
19850 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
19851 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s64,
19852 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19853 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19854 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19855 // (intrinsic_wo_chain:{ *:[v1i64] } 3505:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn) => (VRSHLsv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn)
19856 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRSHLsv1i64),
19857 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19858 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
19859 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
19860 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19861 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19862 GIR_RootConstrainSelectedInstOperands,
19863 // GIR_Coverage, 1376,
19864 GIR_EraseRootFromParent_Done,
19865 // Label 1186: @52782
19866 GIM_Try, /*On fail goto*//*Label 1187*/ GIMT_Encode4(52836), // Rule ID 1377 //
19867 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
19868 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrshifts),
19869 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s64,
19870 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s64,
19871 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s64,
19872 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19873 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19874 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19875 // (intrinsic_wo_chain:{ *:[v2i64] } 3505:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn) => (VRSHLsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn)
19876 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRSHLsv2i64),
19877 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19878 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
19879 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
19880 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19881 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19882 GIR_RootConstrainSelectedInstOperands,
19883 // GIR_Coverage, 1377,
19884 GIR_EraseRootFromParent_Done,
19885 // Label 1187: @52836
19886 GIM_Try, /*On fail goto*//*Label 1188*/ GIMT_Encode4(52890), // Rule ID 1378 //
19887 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
19888 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrshiftu),
19889 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
19890 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
19891 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s16,
19892 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19893 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19894 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19895 // (intrinsic_wo_chain:{ *:[v4i16] } 3506:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn) => (VRSHLuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn)
19896 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRSHLuv4i16),
19897 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19898 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
19899 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
19900 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19901 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19902 GIR_RootConstrainSelectedInstOperands,
19903 // GIR_Coverage, 1378,
19904 GIR_EraseRootFromParent_Done,
19905 // Label 1188: @52890
19906 GIM_Try, /*On fail goto*//*Label 1189*/ GIMT_Encode4(52944), // Rule ID 1379 //
19907 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
19908 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrshiftu),
19909 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
19910 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
19911 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s32,
19912 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19913 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19914 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19915 // (intrinsic_wo_chain:{ *:[v2i32] } 3506:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn) => (VRSHLuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn)
19916 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRSHLuv2i32),
19917 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19918 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
19919 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
19920 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19921 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19922 GIR_RootConstrainSelectedInstOperands,
19923 // GIR_Coverage, 1379,
19924 GIR_EraseRootFromParent_Done,
19925 // Label 1189: @52944
19926 GIM_Try, /*On fail goto*//*Label 1190*/ GIMT_Encode4(52998), // Rule ID 1380 //
19927 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
19928 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrshiftu),
19929 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
19930 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
19931 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
19932 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19933 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19934 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19935 // (intrinsic_wo_chain:{ *:[v8i16] } 3506:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn) => (VRSHLuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn)
19936 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRSHLuv8i16),
19937 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19938 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
19939 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
19940 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19941 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19942 GIR_RootConstrainSelectedInstOperands,
19943 // GIR_Coverage, 1380,
19944 GIR_EraseRootFromParent_Done,
19945 // Label 1190: @52998
19946 GIM_Try, /*On fail goto*//*Label 1191*/ GIMT_Encode4(53052), // Rule ID 1381 //
19947 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
19948 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrshiftu),
19949 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
19950 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
19951 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
19952 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19953 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19954 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19955 // (intrinsic_wo_chain:{ *:[v4i32] } 3506:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn) => (VRSHLuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn)
19956 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRSHLuv4i32),
19957 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19958 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
19959 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
19960 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19961 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19962 GIR_RootConstrainSelectedInstOperands,
19963 // GIR_Coverage, 1381,
19964 GIR_EraseRootFromParent_Done,
19965 // Label 1191: @53052
19966 GIM_Try, /*On fail goto*//*Label 1192*/ GIMT_Encode4(53106), // Rule ID 1382 //
19967 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
19968 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrshiftu),
19969 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s8,
19970 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
19971 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s8,
19972 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19973 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19974 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
19975 // (intrinsic_wo_chain:{ *:[v8i8] } 3506:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn) => (VRSHLuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn)
19976 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRSHLuv8i8),
19977 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19978 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
19979 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
19980 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
19981 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
19982 GIR_RootConstrainSelectedInstOperands,
19983 // GIR_Coverage, 1382,
19984 GIR_EraseRootFromParent_Done,
19985 // Label 1192: @53106
19986 GIM_Try, /*On fail goto*//*Label 1193*/ GIMT_Encode4(53160), // Rule ID 1383 //
19987 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
19988 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrshiftu),
19989 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
19990 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
19991 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
19992 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19993 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19994 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
19995 // (intrinsic_wo_chain:{ *:[v16i8] } 3506:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn) => (VRSHLuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn)
19996 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRSHLuv16i8),
19997 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
19998 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
19999 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
20000 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20001 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20002 GIR_RootConstrainSelectedInstOperands,
20003 // GIR_Coverage, 1383,
20004 GIR_EraseRootFromParent_Done,
20005 // Label 1193: @53160
20006 GIM_Try, /*On fail goto*//*Label 1194*/ GIMT_Encode4(53214), // Rule ID 1384 //
20007 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
20008 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrshiftu),
20009 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s64,
20010 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
20011 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s64,
20012 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20013 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20014 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20015 // (intrinsic_wo_chain:{ *:[v1i64] } 3506:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn) => (VRSHLuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn)
20016 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRSHLuv1i64),
20017 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
20018 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
20019 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
20020 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20021 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20022 GIR_RootConstrainSelectedInstOperands,
20023 // GIR_Coverage, 1384,
20024 GIR_EraseRootFromParent_Done,
20025 // Label 1194: @53214
20026 GIM_Try, /*On fail goto*//*Label 1195*/ GIMT_Encode4(53268), // Rule ID 1385 //
20027 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
20028 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vrshiftu),
20029 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s64,
20030 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s64,
20031 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s64,
20032 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20033 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20034 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20035 // (intrinsic_wo_chain:{ *:[v2i64] } 3506:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn) => (VRSHLuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn)
20036 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRSHLuv2i64),
20037 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
20038 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
20039 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
20040 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20041 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20042 GIR_RootConstrainSelectedInstOperands,
20043 // GIR_Coverage, 1385,
20044 GIR_EraseRootFromParent_Done,
20045 // Label 1195: @53268
20046 GIM_Try, /*On fail goto*//*Label 1196*/ GIMT_Encode4(53322), // Rule ID 1405 //
20047 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
20048 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqshifts),
20049 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
20050 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
20051 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s16,
20052 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20053 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20054 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20055 // (intrinsic_wo_chain:{ *:[v4i16] } 3490:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn) => (VQSHLsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn)
20056 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQSHLsv4i16),
20057 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
20058 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
20059 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
20060 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20061 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20062 GIR_RootConstrainSelectedInstOperands,
20063 // GIR_Coverage, 1405,
20064 GIR_EraseRootFromParent_Done,
20065 // Label 1196: @53322
20066 GIM_Try, /*On fail goto*//*Label 1197*/ GIMT_Encode4(53376), // Rule ID 1406 //
20067 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
20068 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqshifts),
20069 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
20070 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
20071 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s32,
20072 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20073 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20074 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20075 // (intrinsic_wo_chain:{ *:[v2i32] } 3490:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn) => (VQSHLsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn)
20076 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQSHLsv2i32),
20077 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
20078 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
20079 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
20080 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20081 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20082 GIR_RootConstrainSelectedInstOperands,
20083 // GIR_Coverage, 1406,
20084 GIR_EraseRootFromParent_Done,
20085 // Label 1197: @53376
20086 GIM_Try, /*On fail goto*//*Label 1198*/ GIMT_Encode4(53430), // Rule ID 1407 //
20087 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
20088 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqshifts),
20089 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
20090 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
20091 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
20092 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20093 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20094 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20095 // (intrinsic_wo_chain:{ *:[v8i16] } 3490:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn) => (VQSHLsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn)
20096 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQSHLsv8i16),
20097 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
20098 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
20099 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
20100 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20101 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20102 GIR_RootConstrainSelectedInstOperands,
20103 // GIR_Coverage, 1407,
20104 GIR_EraseRootFromParent_Done,
20105 // Label 1198: @53430
20106 GIM_Try, /*On fail goto*//*Label 1199*/ GIMT_Encode4(53484), // Rule ID 1408 //
20107 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
20108 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqshifts),
20109 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
20110 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
20111 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
20112 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20113 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20114 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20115 // (intrinsic_wo_chain:{ *:[v4i32] } 3490:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn) => (VQSHLsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn)
20116 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQSHLsv4i32),
20117 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
20118 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
20119 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
20120 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20121 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20122 GIR_RootConstrainSelectedInstOperands,
20123 // GIR_Coverage, 1408,
20124 GIR_EraseRootFromParent_Done,
20125 // Label 1199: @53484
20126 GIM_Try, /*On fail goto*//*Label 1200*/ GIMT_Encode4(53538), // Rule ID 1409 //
20127 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
20128 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqshifts),
20129 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s8,
20130 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
20131 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s8,
20132 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20133 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20134 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20135 // (intrinsic_wo_chain:{ *:[v8i8] } 3490:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn) => (VQSHLsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn)
20136 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQSHLsv8i8),
20137 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
20138 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
20139 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
20140 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20141 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20142 GIR_RootConstrainSelectedInstOperands,
20143 // GIR_Coverage, 1409,
20144 GIR_EraseRootFromParent_Done,
20145 // Label 1200: @53538
20146 GIM_Try, /*On fail goto*//*Label 1201*/ GIMT_Encode4(53592), // Rule ID 1410 //
20147 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
20148 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqshifts),
20149 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
20150 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
20151 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
20152 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20153 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20154 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20155 // (intrinsic_wo_chain:{ *:[v16i8] } 3490:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn) => (VQSHLsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn)
20156 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQSHLsv16i8),
20157 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
20158 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
20159 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
20160 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20161 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20162 GIR_RootConstrainSelectedInstOperands,
20163 // GIR_Coverage, 1410,
20164 GIR_EraseRootFromParent_Done,
20165 // Label 1201: @53592
20166 GIM_Try, /*On fail goto*//*Label 1202*/ GIMT_Encode4(53646), // Rule ID 1411 //
20167 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
20168 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqshifts),
20169 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s64,
20170 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
20171 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s64,
20172 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20173 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20174 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20175 // (intrinsic_wo_chain:{ *:[v1i64] } 3490:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn) => (VQSHLsv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn)
20176 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQSHLsv1i64),
20177 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
20178 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
20179 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
20180 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20181 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20182 GIR_RootConstrainSelectedInstOperands,
20183 // GIR_Coverage, 1411,
20184 GIR_EraseRootFromParent_Done,
20185 // Label 1202: @53646
20186 GIM_Try, /*On fail goto*//*Label 1203*/ GIMT_Encode4(53700), // Rule ID 1412 //
20187 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
20188 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqshifts),
20189 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s64,
20190 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s64,
20191 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s64,
20192 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20193 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20194 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20195 // (intrinsic_wo_chain:{ *:[v2i64] } 3490:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn) => (VQSHLsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn)
20196 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQSHLsv2i64),
20197 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
20198 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
20199 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
20200 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20201 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20202 GIR_RootConstrainSelectedInstOperands,
20203 // GIR_Coverage, 1412,
20204 GIR_EraseRootFromParent_Done,
20205 // Label 1203: @53700
20206 GIM_Try, /*On fail goto*//*Label 1204*/ GIMT_Encode4(53754), // Rule ID 1413 //
20207 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
20208 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqshiftu),
20209 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
20210 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
20211 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s16,
20212 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20213 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20214 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20215 // (intrinsic_wo_chain:{ *:[v4i16] } 3492:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn) => (VQSHLuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn)
20216 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQSHLuv4i16),
20217 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
20218 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
20219 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
20220 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20221 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20222 GIR_RootConstrainSelectedInstOperands,
20223 // GIR_Coverage, 1413,
20224 GIR_EraseRootFromParent_Done,
20225 // Label 1204: @53754
20226 GIM_Try, /*On fail goto*//*Label 1205*/ GIMT_Encode4(53808), // Rule ID 1414 //
20227 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
20228 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqshiftu),
20229 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
20230 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
20231 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s32,
20232 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20233 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20234 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20235 // (intrinsic_wo_chain:{ *:[v2i32] } 3492:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn) => (VQSHLuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn)
20236 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQSHLuv2i32),
20237 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
20238 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
20239 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
20240 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20241 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20242 GIR_RootConstrainSelectedInstOperands,
20243 // GIR_Coverage, 1414,
20244 GIR_EraseRootFromParent_Done,
20245 // Label 1205: @53808
20246 GIM_Try, /*On fail goto*//*Label 1206*/ GIMT_Encode4(53862), // Rule ID 1415 //
20247 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
20248 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqshiftu),
20249 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
20250 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
20251 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
20252 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20253 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20254 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20255 // (intrinsic_wo_chain:{ *:[v8i16] } 3492:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn) => (VQSHLuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn)
20256 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQSHLuv8i16),
20257 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
20258 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
20259 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
20260 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20261 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20262 GIR_RootConstrainSelectedInstOperands,
20263 // GIR_Coverage, 1415,
20264 GIR_EraseRootFromParent_Done,
20265 // Label 1206: @53862
20266 GIM_Try, /*On fail goto*//*Label 1207*/ GIMT_Encode4(53916), // Rule ID 1416 //
20267 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
20268 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqshiftu),
20269 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
20270 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
20271 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
20272 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20273 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20274 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20275 // (intrinsic_wo_chain:{ *:[v4i32] } 3492:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn) => (VQSHLuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn)
20276 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQSHLuv4i32),
20277 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
20278 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
20279 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
20280 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20281 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20282 GIR_RootConstrainSelectedInstOperands,
20283 // GIR_Coverage, 1416,
20284 GIR_EraseRootFromParent_Done,
20285 // Label 1207: @53916
20286 GIM_Try, /*On fail goto*//*Label 1208*/ GIMT_Encode4(53970), // Rule ID 1417 //
20287 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
20288 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqshiftu),
20289 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s8,
20290 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
20291 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s8,
20292 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20293 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20294 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20295 // (intrinsic_wo_chain:{ *:[v8i8] } 3492:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn) => (VQSHLuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn)
20296 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQSHLuv8i8),
20297 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
20298 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
20299 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
20300 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20301 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20302 GIR_RootConstrainSelectedInstOperands,
20303 // GIR_Coverage, 1417,
20304 GIR_EraseRootFromParent_Done,
20305 // Label 1208: @53970
20306 GIM_Try, /*On fail goto*//*Label 1209*/ GIMT_Encode4(54024), // Rule ID 1418 //
20307 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
20308 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqshiftu),
20309 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
20310 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
20311 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
20312 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20313 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20314 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20315 // (intrinsic_wo_chain:{ *:[v16i8] } 3492:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn) => (VQSHLuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn)
20316 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQSHLuv16i8),
20317 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
20318 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
20319 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
20320 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20321 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20322 GIR_RootConstrainSelectedInstOperands,
20323 // GIR_Coverage, 1418,
20324 GIR_EraseRootFromParent_Done,
20325 // Label 1209: @54024
20326 GIM_Try, /*On fail goto*//*Label 1210*/ GIMT_Encode4(54078), // Rule ID 1419 //
20327 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
20328 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqshiftu),
20329 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s64,
20330 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
20331 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s64,
20332 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20333 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20334 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20335 // (intrinsic_wo_chain:{ *:[v1i64] } 3492:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn) => (VQSHLuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn)
20336 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQSHLuv1i64),
20337 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
20338 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
20339 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
20340 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20341 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20342 GIR_RootConstrainSelectedInstOperands,
20343 // GIR_Coverage, 1419,
20344 GIR_EraseRootFromParent_Done,
20345 // Label 1210: @54078
20346 GIM_Try, /*On fail goto*//*Label 1211*/ GIMT_Encode4(54132), // Rule ID 1420 //
20347 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
20348 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqshiftu),
20349 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s64,
20350 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s64,
20351 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s64,
20352 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20353 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20354 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20355 // (intrinsic_wo_chain:{ *:[v2i64] } 3492:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn) => (VQSHLuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn)
20356 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQSHLuv2i64),
20357 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
20358 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
20359 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
20360 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20361 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20362 GIR_RootConstrainSelectedInstOperands,
20363 // GIR_Coverage, 1420,
20364 GIR_EraseRootFromParent_Done,
20365 // Label 1211: @54132
20366 GIM_Try, /*On fail goto*//*Label 1212*/ GIMT_Encode4(54186), // Rule ID 1454 //
20367 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
20368 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqrshifts),
20369 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
20370 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
20371 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s16,
20372 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20373 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20374 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20375 // (intrinsic_wo_chain:{ *:[v4i16] } 3485:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn) => (VQRSHLsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn)
20376 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQRSHLsv4i16),
20377 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
20378 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
20379 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
20380 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20381 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20382 GIR_RootConstrainSelectedInstOperands,
20383 // GIR_Coverage, 1454,
20384 GIR_EraseRootFromParent_Done,
20385 // Label 1212: @54186
20386 GIM_Try, /*On fail goto*//*Label 1213*/ GIMT_Encode4(54240), // Rule ID 1455 //
20387 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
20388 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqrshifts),
20389 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
20390 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
20391 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s32,
20392 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20393 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20394 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20395 // (intrinsic_wo_chain:{ *:[v2i32] } 3485:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn) => (VQRSHLsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn)
20396 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQRSHLsv2i32),
20397 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
20398 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
20399 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
20400 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20401 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20402 GIR_RootConstrainSelectedInstOperands,
20403 // GIR_Coverage, 1455,
20404 GIR_EraseRootFromParent_Done,
20405 // Label 1213: @54240
20406 GIM_Try, /*On fail goto*//*Label 1214*/ GIMT_Encode4(54294), // Rule ID 1456 //
20407 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
20408 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqrshifts),
20409 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
20410 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
20411 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
20412 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20413 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20414 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20415 // (intrinsic_wo_chain:{ *:[v8i16] } 3485:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn) => (VQRSHLsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn)
20416 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQRSHLsv8i16),
20417 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
20418 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
20419 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
20420 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20421 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20422 GIR_RootConstrainSelectedInstOperands,
20423 // GIR_Coverage, 1456,
20424 GIR_EraseRootFromParent_Done,
20425 // Label 1214: @54294
20426 GIM_Try, /*On fail goto*//*Label 1215*/ GIMT_Encode4(54348), // Rule ID 1457 //
20427 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
20428 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqrshifts),
20429 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
20430 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
20431 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
20432 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20433 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20434 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20435 // (intrinsic_wo_chain:{ *:[v4i32] } 3485:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn) => (VQRSHLsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn)
20436 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQRSHLsv4i32),
20437 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
20438 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
20439 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
20440 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20441 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20442 GIR_RootConstrainSelectedInstOperands,
20443 // GIR_Coverage, 1457,
20444 GIR_EraseRootFromParent_Done,
20445 // Label 1215: @54348
20446 GIM_Try, /*On fail goto*//*Label 1216*/ GIMT_Encode4(54402), // Rule ID 1458 //
20447 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
20448 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqrshifts),
20449 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s8,
20450 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
20451 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s8,
20452 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20453 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20454 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20455 // (intrinsic_wo_chain:{ *:[v8i8] } 3485:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn) => (VQRSHLsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn)
20456 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQRSHLsv8i8),
20457 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
20458 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
20459 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
20460 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20461 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20462 GIR_RootConstrainSelectedInstOperands,
20463 // GIR_Coverage, 1458,
20464 GIR_EraseRootFromParent_Done,
20465 // Label 1216: @54402
20466 GIM_Try, /*On fail goto*//*Label 1217*/ GIMT_Encode4(54456), // Rule ID 1459 //
20467 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
20468 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqrshifts),
20469 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
20470 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
20471 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
20472 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20473 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20474 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20475 // (intrinsic_wo_chain:{ *:[v16i8] } 3485:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn) => (VQRSHLsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn)
20476 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQRSHLsv16i8),
20477 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
20478 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
20479 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
20480 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20481 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20482 GIR_RootConstrainSelectedInstOperands,
20483 // GIR_Coverage, 1459,
20484 GIR_EraseRootFromParent_Done,
20485 // Label 1217: @54456
20486 GIM_Try, /*On fail goto*//*Label 1218*/ GIMT_Encode4(54510), // Rule ID 1460 //
20487 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
20488 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqrshifts),
20489 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s64,
20490 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
20491 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s64,
20492 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20493 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20494 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20495 // (intrinsic_wo_chain:{ *:[v1i64] } 3485:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn) => (VQRSHLsv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn)
20496 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQRSHLsv1i64),
20497 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
20498 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
20499 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
20500 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20501 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20502 GIR_RootConstrainSelectedInstOperands,
20503 // GIR_Coverage, 1460,
20504 GIR_EraseRootFromParent_Done,
20505 // Label 1218: @54510
20506 GIM_Try, /*On fail goto*//*Label 1219*/ GIMT_Encode4(54564), // Rule ID 1461 //
20507 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
20508 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqrshifts),
20509 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s64,
20510 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s64,
20511 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s64,
20512 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20513 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20514 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20515 // (intrinsic_wo_chain:{ *:[v2i64] } 3485:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn) => (VQRSHLsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn)
20516 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQRSHLsv2i64),
20517 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
20518 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
20519 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
20520 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20521 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20522 GIR_RootConstrainSelectedInstOperands,
20523 // GIR_Coverage, 1461,
20524 GIR_EraseRootFromParent_Done,
20525 // Label 1219: @54564
20526 GIM_Try, /*On fail goto*//*Label 1220*/ GIMT_Encode4(54618), // Rule ID 1462 //
20527 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
20528 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqrshiftu),
20529 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
20530 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
20531 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s16,
20532 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20533 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20534 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20535 // (intrinsic_wo_chain:{ *:[v4i16] } 3486:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn) => (VQRSHLuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn)
20536 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQRSHLuv4i16),
20537 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
20538 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
20539 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
20540 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20541 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20542 GIR_RootConstrainSelectedInstOperands,
20543 // GIR_Coverage, 1462,
20544 GIR_EraseRootFromParent_Done,
20545 // Label 1220: @54618
20546 GIM_Try, /*On fail goto*//*Label 1221*/ GIMT_Encode4(54672), // Rule ID 1463 //
20547 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
20548 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqrshiftu),
20549 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
20550 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
20551 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s32,
20552 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20553 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20554 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20555 // (intrinsic_wo_chain:{ *:[v2i32] } 3486:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn) => (VQRSHLuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn)
20556 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQRSHLuv2i32),
20557 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
20558 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
20559 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
20560 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20561 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20562 GIR_RootConstrainSelectedInstOperands,
20563 // GIR_Coverage, 1463,
20564 GIR_EraseRootFromParent_Done,
20565 // Label 1221: @54672
20566 GIM_Try, /*On fail goto*//*Label 1222*/ GIMT_Encode4(54726), // Rule ID 1464 //
20567 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
20568 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqrshiftu),
20569 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
20570 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
20571 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
20572 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20573 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20574 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20575 // (intrinsic_wo_chain:{ *:[v8i16] } 3486:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn) => (VQRSHLuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn)
20576 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQRSHLuv8i16),
20577 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
20578 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
20579 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
20580 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20581 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20582 GIR_RootConstrainSelectedInstOperands,
20583 // GIR_Coverage, 1464,
20584 GIR_EraseRootFromParent_Done,
20585 // Label 1222: @54726
20586 GIM_Try, /*On fail goto*//*Label 1223*/ GIMT_Encode4(54780), // Rule ID 1465 //
20587 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
20588 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqrshiftu),
20589 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
20590 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
20591 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
20592 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20593 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20594 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20595 // (intrinsic_wo_chain:{ *:[v4i32] } 3486:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn) => (VQRSHLuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn)
20596 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQRSHLuv4i32),
20597 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
20598 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
20599 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
20600 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20601 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20602 GIR_RootConstrainSelectedInstOperands,
20603 // GIR_Coverage, 1465,
20604 GIR_EraseRootFromParent_Done,
20605 // Label 1223: @54780
20606 GIM_Try, /*On fail goto*//*Label 1224*/ GIMT_Encode4(54834), // Rule ID 1466 //
20607 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
20608 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqrshiftu),
20609 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s8,
20610 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
20611 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s8,
20612 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20613 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20614 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20615 // (intrinsic_wo_chain:{ *:[v8i8] } 3486:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn) => (VQRSHLuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn)
20616 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQRSHLuv8i8),
20617 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
20618 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
20619 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
20620 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20621 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20622 GIR_RootConstrainSelectedInstOperands,
20623 // GIR_Coverage, 1466,
20624 GIR_EraseRootFromParent_Done,
20625 // Label 1224: @54834
20626 GIM_Try, /*On fail goto*//*Label 1225*/ GIMT_Encode4(54888), // Rule ID 1467 //
20627 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
20628 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqrshiftu),
20629 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
20630 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
20631 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
20632 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20633 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20634 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20635 // (intrinsic_wo_chain:{ *:[v16i8] } 3486:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn) => (VQRSHLuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn)
20636 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQRSHLuv16i8),
20637 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
20638 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
20639 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
20640 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20641 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20642 GIR_RootConstrainSelectedInstOperands,
20643 // GIR_Coverage, 1467,
20644 GIR_EraseRootFromParent_Done,
20645 // Label 1225: @54888
20646 GIM_Try, /*On fail goto*//*Label 1226*/ GIMT_Encode4(54942), // Rule ID 1468 //
20647 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
20648 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqrshiftu),
20649 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s64,
20650 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
20651 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s64,
20652 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20653 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20654 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
20655 // (intrinsic_wo_chain:{ *:[v1i64] } 3486:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn) => (VQRSHLuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn)
20656 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQRSHLuv1i64),
20657 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
20658 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
20659 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
20660 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20661 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20662 GIR_RootConstrainSelectedInstOperands,
20663 // GIR_Coverage, 1468,
20664 GIR_EraseRootFromParent_Done,
20665 // Label 1226: @54942
20666 GIM_Try, /*On fail goto*//*Label 1227*/ GIMT_Encode4(54996), // Rule ID 1469 //
20667 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
20668 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqrshiftu),
20669 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s64,
20670 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s64,
20671 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s64,
20672 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20673 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20674 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20675 // (intrinsic_wo_chain:{ *:[v2i64] } 3486:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn) => (VQRSHLuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn)
20676 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQRSHLuv2i64),
20677 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
20678 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
20679 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
20680 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20681 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20682 GIR_RootConstrainSelectedInstOperands,
20683 // GIR_Coverage, 1469,
20684 GIR_EraseRootFromParent_Done,
20685 // Label 1227: @54996
20686 GIM_Try, /*On fail goto*//*Label 1228*/ GIMT_Encode4(55041), // Rule ID 1734 //
20687 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasAES_HasV8),
20688 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_aesd),
20689 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
20690 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
20691 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
20692 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20693 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20694 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20695 // (intrinsic_wo_chain:{ *:[v16i8] } 3387:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$src, QPR:{ *:[v16i8] }:$Vm) => (AESD:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src, QPR:{ *:[v16i8] }:$Vm)
20696 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::AESD),
20697 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
20698 GIR_RootToRootCopy, /*OpIdx*/2, // src
20699 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
20700 GIR_RootConstrainSelectedInstOperands,
20701 // GIR_Coverage, 1734,
20702 GIR_EraseRootFromParent_Done,
20703 // Label 1228: @55041
20704 GIM_Try, /*On fail goto*//*Label 1229*/ GIMT_Encode4(55086), // Rule ID 1735 //
20705 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasAES_HasV8),
20706 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_aese),
20707 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
20708 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
20709 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
20710 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20711 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20712 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20713 // (intrinsic_wo_chain:{ *:[v16i8] } 3388:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$src, QPR:{ *:[v16i8] }:$Vm) => (AESE:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src, QPR:{ *:[v16i8] }:$Vm)
20714 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::AESE),
20715 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
20716 GIR_RootToRootCopy, /*OpIdx*/2, // src
20717 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
20718 GIR_RootConstrainSelectedInstOperands,
20719 // GIR_Coverage, 1735,
20720 GIR_EraseRootFromParent_Done,
20721 // Label 1229: @55086
20722 GIM_Try, /*On fail goto*//*Label 1230*/ GIMT_Encode4(55131), // Rule ID 1738 //
20723 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasSHA2_HasV8),
20724 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_sha1su1),
20725 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
20726 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
20727 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
20728 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20729 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20730 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20731 // (intrinsic_wo_chain:{ *:[v4i32] } 3401:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vm) => (SHA1SU1:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vm)
20732 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SHA1SU1),
20733 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
20734 GIR_RootToRootCopy, /*OpIdx*/2, // src
20735 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
20736 GIR_RootConstrainSelectedInstOperands,
20737 // GIR_Coverage, 1738,
20738 GIR_EraseRootFromParent_Done,
20739 // Label 1230: @55131
20740 GIM_Try, /*On fail goto*//*Label 1231*/ GIMT_Encode4(55176), // Rule ID 1739 //
20741 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasSHA2_HasV8),
20742 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_sha256su0),
20743 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
20744 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
20745 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
20746 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20747 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20748 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
20749 // (intrinsic_wo_chain:{ *:[v4i32] } 3404:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vm) => (SHA256SU0:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vm)
20750 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SHA256SU0),
20751 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
20752 GIR_RootToRootCopy, /*OpIdx*/2, // src
20753 GIR_RootToRootCopy, /*OpIdx*/3, // Vm
20754 GIR_RootConstrainSelectedInstOperands,
20755 // GIR_Coverage, 1739,
20756 GIR_EraseRootFromParent_Done,
20757 // Label 1231: @55176
20758 GIM_Try, /*On fail goto*//*Label 1232*/ GIMT_Encode4(55230), // Rule ID 1753 //
20759 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_HasV8_1MMainline),
20760 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_sqrshr),
20761 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
20762 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
20763 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
20764 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
20765 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
20766 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
20767 // (intrinsic_wo_chain:{ *:[i32] } 3249:{ *:[iPTR] }, rGPR:{ *:[i32] }:$RdaSrc, rGPR:{ *:[i32] }:$Rm) => (MVE_SQRSHR:{ *:[i32] } rGPR:{ *:[i32] }:$RdaSrc, rGPR:{ *:[i32] }:$Rm)
20768 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_SQRSHR),
20769 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
20770 GIR_RootToRootCopy, /*OpIdx*/2, // RdaSrc
20771 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
20772 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20773 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20774 GIR_RootConstrainSelectedInstOperands,
20775 // GIR_Coverage, 1753,
20776 GIR_EraseRootFromParent_Done,
20777 // Label 1232: @55230
20778 GIM_Try, /*On fail goto*//*Label 1233*/ GIMT_Encode4(55284), // Rule ID 1754 //
20779 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_HasV8_1MMainline),
20780 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_uqrshl),
20781 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
20782 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
20783 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
20784 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
20785 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
20786 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
20787 // (intrinsic_wo_chain:{ *:[i32] } 3256:{ *:[iPTR] }, rGPR:{ *:[i32] }:$RdaSrc, rGPR:{ *:[i32] }:$Rm) => (MVE_UQRSHL:{ *:[i32] } rGPR:{ *:[i32] }:$RdaSrc, rGPR:{ *:[i32] }:$Rm)
20788 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_UQRSHL),
20789 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
20790 GIR_RootToRootCopy, /*OpIdx*/2, // RdaSrc
20791 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
20792 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20793 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20794 GIR_RootConstrainSelectedInstOperands,
20795 // GIR_Coverage, 1754,
20796 GIR_EraseRootFromParent_Done,
20797 // Label 1233: @55284
20798 GIM_Try, /*On fail goto*//*Label 1234*/ GIMT_Encode4(55341), // Rule ID 1877 //
20799 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
20800 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_sxtab16),
20801 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
20802 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
20803 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
20804 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
20805 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
20806 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
20807 // (intrinsic_wo_chain:{ *:[i32] } 3588:{ *:[iPTR] }, GPR:{ *:[i32] }:$LHS, GPR:{ *:[i32] }:$RHS) => (SXTAB16:{ *:[i32] } GPR:{ *:[i32] }:$LHS, GPR:{ *:[i32] }:$RHS, 0:{ *:[i32] })
20808 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SXTAB16),
20809 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
20810 GIR_RootToRootCopy, /*OpIdx*/2, // LHS
20811 GIR_RootToRootCopy, /*OpIdx*/3, // RHS
20812 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
20813 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20814 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20815 GIR_RootConstrainSelectedInstOperands,
20816 // GIR_Coverage, 1877,
20817 GIR_EraseRootFromParent_Done,
20818 // Label 1234: @55341
20819 GIM_Try, /*On fail goto*//*Label 1235*/ GIMT_Encode4(55398), // Rule ID 1884 //
20820 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
20821 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_uxtab16),
20822 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
20823 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
20824 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
20825 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
20826 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
20827 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
20828 // (intrinsic_wo_chain:{ *:[i32] } 3613:{ *:[iPTR] }, GPR:{ *:[i32] }:$LHS, GPR:{ *:[i32] }:$RHS) => (UXTAB16:{ *:[i32] } GPR:{ *:[i32] }:$LHS, GPR:{ *:[i32] }:$RHS, 0:{ *:[i32] })
20829 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::UXTAB16),
20830 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
20831 GIR_RootToRootCopy, /*OpIdx*/2, // LHS
20832 GIR_RootToRootCopy, /*OpIdx*/3, // RHS
20833 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
20834 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20835 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20836 GIR_RootConstrainSelectedInstOperands,
20837 // GIR_Coverage, 1884,
20838 GIR_EraseRootFromParent_Done,
20839 // Label 1235: @55398
20840 GIM_Try, /*On fail goto*//*Label 1236*/ GIMT_Encode4(55452), // Rule ID 1931 //
20841 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
20842 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_smuad),
20843 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
20844 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
20845 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
20846 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
20847 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
20848 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
20849 // (intrinsic_wo_chain:{ *:[i32] } 3564:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SMUAD:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
20850 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SMUAD),
20851 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
20852 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
20853 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
20854 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20855 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20856 GIR_RootConstrainSelectedInstOperands,
20857 // GIR_Coverage, 1931,
20858 GIR_EraseRootFromParent_Done,
20859 // Label 1236: @55452
20860 GIM_Try, /*On fail goto*//*Label 1237*/ GIMT_Encode4(55506), // Rule ID 1932 //
20861 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
20862 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_smuadx),
20863 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
20864 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
20865 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
20866 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
20867 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
20868 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
20869 // (intrinsic_wo_chain:{ *:[i32] } 3565:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SMUADX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
20870 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SMUADX),
20871 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
20872 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
20873 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
20874 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20875 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20876 GIR_RootConstrainSelectedInstOperands,
20877 // GIR_Coverage, 1932,
20878 GIR_EraseRootFromParent_Done,
20879 // Label 1237: @55506
20880 GIM_Try, /*On fail goto*//*Label 1238*/ GIMT_Encode4(55560), // Rule ID 1933 //
20881 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
20882 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_smusd),
20883 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
20884 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
20885 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
20886 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
20887 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
20888 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
20889 // (intrinsic_wo_chain:{ *:[i32] } 3572:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SMUSD:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
20890 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SMUSD),
20891 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
20892 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
20893 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
20894 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20895 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20896 GIR_RootConstrainSelectedInstOperands,
20897 // GIR_Coverage, 1933,
20898 GIR_EraseRootFromParent_Done,
20899 // Label 1238: @55560
20900 GIM_Try, /*On fail goto*//*Label 1239*/ GIMT_Encode4(55614), // Rule ID 1934 //
20901 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
20902 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_smusdx),
20903 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
20904 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
20905 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
20906 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
20907 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
20908 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
20909 // (intrinsic_wo_chain:{ *:[i32] } 3573:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SMUSDX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
20910 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SMUSDX),
20911 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
20912 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
20913 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
20914 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20915 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20916 GIR_RootConstrainSelectedInstOperands,
20917 // GIR_Coverage, 1934,
20918 GIR_EraseRootFromParent_Done,
20919 // Label 1239: @55614
20920 GIM_Try, /*On fail goto*//*Label 1240*/ GIMT_Encode4(55668), // Rule ID 1999 //
20921 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV5TE_IsARM),
20922 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_smulbb),
20923 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
20924 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
20925 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
20926 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
20927 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
20928 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
20929 // (intrinsic_wo_chain:{ *:[i32] } 3566:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b) => (SMULBB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b)
20930 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SMULBB),
20931 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
20932 GIR_RootToRootCopy, /*OpIdx*/2, // a
20933 GIR_RootToRootCopy, /*OpIdx*/3, // b
20934 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20935 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20936 GIR_RootConstrainSelectedInstOperands,
20937 // GIR_Coverage, 1999,
20938 GIR_EraseRootFromParent_Done,
20939 // Label 1240: @55668
20940 GIM_Try, /*On fail goto*//*Label 1241*/ GIMT_Encode4(55722), // Rule ID 2000 //
20941 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV5TE_IsARM),
20942 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_smulbt),
20943 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
20944 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
20945 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
20946 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
20947 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
20948 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
20949 // (intrinsic_wo_chain:{ *:[i32] } 3567:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b) => (SMULBT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b)
20950 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SMULBT),
20951 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
20952 GIR_RootToRootCopy, /*OpIdx*/2, // a
20953 GIR_RootToRootCopy, /*OpIdx*/3, // b
20954 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20955 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20956 GIR_RootConstrainSelectedInstOperands,
20957 // GIR_Coverage, 2000,
20958 GIR_EraseRootFromParent_Done,
20959 // Label 1241: @55722
20960 GIM_Try, /*On fail goto*//*Label 1242*/ GIMT_Encode4(55776), // Rule ID 2001 //
20961 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV5TE_IsARM),
20962 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_smultb),
20963 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
20964 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
20965 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
20966 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
20967 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
20968 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
20969 // (intrinsic_wo_chain:{ *:[i32] } 3568:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b) => (SMULTB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b)
20970 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SMULTB),
20971 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
20972 GIR_RootToRootCopy, /*OpIdx*/2, // a
20973 GIR_RootToRootCopy, /*OpIdx*/3, // b
20974 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20975 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20976 GIR_RootConstrainSelectedInstOperands,
20977 // GIR_Coverage, 2001,
20978 GIR_EraseRootFromParent_Done,
20979 // Label 1242: @55776
20980 GIM_Try, /*On fail goto*//*Label 1243*/ GIMT_Encode4(55830), // Rule ID 2002 //
20981 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV5TE_IsARM),
20982 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_smultt),
20983 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
20984 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
20985 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
20986 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
20987 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
20988 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
20989 // (intrinsic_wo_chain:{ *:[i32] } 3569:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b) => (SMULTT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b)
20990 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SMULTT),
20991 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
20992 GIR_RootToRootCopy, /*OpIdx*/2, // a
20993 GIR_RootToRootCopy, /*OpIdx*/3, // b
20994 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
20995 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
20996 GIR_RootConstrainSelectedInstOperands,
20997 // GIR_Coverage, 2002,
20998 GIR_EraseRootFromParent_Done,
20999 // Label 1243: @55830
21000 GIM_Try, /*On fail goto*//*Label 1244*/ GIMT_Encode4(55884), // Rule ID 2003 //
21001 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV5TE_IsARM),
21002 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_smulwb),
21003 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
21004 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
21005 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
21006 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
21007 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
21008 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
21009 // (intrinsic_wo_chain:{ *:[i32] } 3570:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b) => (SMULWB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b)
21010 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SMULWB),
21011 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
21012 GIR_RootToRootCopy, /*OpIdx*/2, // a
21013 GIR_RootToRootCopy, /*OpIdx*/3, // b
21014 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
21015 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21016 GIR_RootConstrainSelectedInstOperands,
21017 // GIR_Coverage, 2003,
21018 GIR_EraseRootFromParent_Done,
21019 // Label 1244: @55884
21020 GIM_Try, /*On fail goto*//*Label 1245*/ GIMT_Encode4(55938), // Rule ID 2004 //
21021 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV5TE_IsARM),
21022 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_smulwt),
21023 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
21024 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
21025 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
21026 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
21027 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
21028 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
21029 // (intrinsic_wo_chain:{ *:[i32] } 3571:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b) => (SMULWT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b)
21030 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SMULWT),
21031 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
21032 GIR_RootToRootCopy, /*OpIdx*/2, // a
21033 GIR_RootToRootCopy, /*OpIdx*/3, // b
21034 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
21035 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21036 GIR_RootConstrainSelectedInstOperands,
21037 // GIR_Coverage, 2004,
21038 GIR_EraseRootFromParent_Done,
21039 // Label 1245: @55938
21040 GIM_Try, /*On fail goto*//*Label 1246*/ GIMT_Encode4(55995), // Rule ID 2107 //
21041 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
21042 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_sxtab16),
21043 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
21044 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
21045 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
21046 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
21047 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
21048 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
21049 // (intrinsic_wo_chain:{ *:[i32] } 3588:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SXTAB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
21050 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SXTAB16),
21051 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
21052 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
21053 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
21054 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
21055 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
21056 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21057 GIR_RootConstrainSelectedInstOperands,
21058 // GIR_Coverage, 2107,
21059 GIR_EraseRootFromParent_Done,
21060 // Label 1246: @55995
21061 GIM_Try, /*On fail goto*//*Label 1247*/ GIMT_Encode4(56049), // Rule ID 2137 //
21062 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
21063 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_qadd),
21064 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
21065 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
21066 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
21067 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
21068 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
21069 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
21070 // (intrinsic_wo_chain:{ *:[i32] } 3531:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn) => (t2QADD:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
21071 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2QADD),
21072 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
21073 GIR_RootToRootCopy, /*OpIdx*/2, // Rm
21074 GIR_RootToRootCopy, /*OpIdx*/3, // Rn
21075 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
21076 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21077 GIR_RootConstrainSelectedInstOperands,
21078 // GIR_Coverage, 2137,
21079 GIR_EraseRootFromParent_Done,
21080 // Label 1247: @56049
21081 GIM_Try, /*On fail goto*//*Label 1248*/ GIMT_Encode4(56103), // Rule ID 2138 //
21082 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
21083 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_qsub),
21084 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
21085 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
21086 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
21087 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
21088 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
21089 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
21090 // (intrinsic_wo_chain:{ *:[i32] } 3536:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn) => (t2QSUB:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
21091 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2QSUB),
21092 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
21093 GIR_RootToRootCopy, /*OpIdx*/2, // Rm
21094 GIR_RootToRootCopy, /*OpIdx*/3, // Rn
21095 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
21096 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21097 GIR_RootConstrainSelectedInstOperands,
21098 // GIR_Coverage, 2138,
21099 GIR_EraseRootFromParent_Done,
21100 // Label 1248: @56103
21101 GIM_Try, /*On fail goto*//*Label 1249*/ GIMT_Encode4(56157), // Rule ID 2178 //
21102 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
21103 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_smulbb),
21104 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
21105 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
21106 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
21107 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
21108 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
21109 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
21110 // (intrinsic_wo_chain:{ *:[i32] } 3566:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SMULBB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
21111 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SMULBB),
21112 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
21113 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
21114 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
21115 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
21116 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21117 GIR_RootConstrainSelectedInstOperands,
21118 // GIR_Coverage, 2178,
21119 GIR_EraseRootFromParent_Done,
21120 // Label 1249: @56157
21121 GIM_Try, /*On fail goto*//*Label 1250*/ GIMT_Encode4(56211), // Rule ID 2179 //
21122 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
21123 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_smulbt),
21124 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
21125 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
21126 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
21127 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
21128 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
21129 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
21130 // (intrinsic_wo_chain:{ *:[i32] } 3567:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SMULBT:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
21131 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SMULBT),
21132 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
21133 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
21134 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
21135 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
21136 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21137 GIR_RootConstrainSelectedInstOperands,
21138 // GIR_Coverage, 2179,
21139 GIR_EraseRootFromParent_Done,
21140 // Label 1250: @56211
21141 GIM_Try, /*On fail goto*//*Label 1251*/ GIMT_Encode4(56265), // Rule ID 2180 //
21142 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
21143 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_smultb),
21144 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
21145 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
21146 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
21147 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
21148 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
21149 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
21150 // (intrinsic_wo_chain:{ *:[i32] } 3568:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SMULTB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
21151 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SMULTB),
21152 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
21153 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
21154 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
21155 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
21156 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21157 GIR_RootConstrainSelectedInstOperands,
21158 // GIR_Coverage, 2180,
21159 GIR_EraseRootFromParent_Done,
21160 // Label 1251: @56265
21161 GIM_Try, /*On fail goto*//*Label 1252*/ GIMT_Encode4(56319), // Rule ID 2181 //
21162 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
21163 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_smultt),
21164 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
21165 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
21166 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
21167 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
21168 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
21169 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
21170 // (intrinsic_wo_chain:{ *:[i32] } 3569:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SMULTT:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
21171 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SMULTT),
21172 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
21173 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
21174 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
21175 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
21176 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21177 GIR_RootConstrainSelectedInstOperands,
21178 // GIR_Coverage, 2181,
21179 GIR_EraseRootFromParent_Done,
21180 // Label 1252: @56319
21181 GIM_Try, /*On fail goto*//*Label 1253*/ GIMT_Encode4(56373), // Rule ID 2182 //
21182 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
21183 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_smulwb),
21184 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
21185 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
21186 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
21187 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
21188 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
21189 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
21190 // (intrinsic_wo_chain:{ *:[i32] } 3570:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SMULWB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
21191 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SMULWB),
21192 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
21193 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
21194 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
21195 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
21196 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21197 GIR_RootConstrainSelectedInstOperands,
21198 // GIR_Coverage, 2182,
21199 GIR_EraseRootFromParent_Done,
21200 // Label 1253: @56373
21201 GIM_Try, /*On fail goto*//*Label 1254*/ GIMT_Encode4(56427), // Rule ID 2183 //
21202 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
21203 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_smulwt),
21204 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
21205 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
21206 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
21207 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
21208 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
21209 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
21210 // (intrinsic_wo_chain:{ *:[i32] } 3571:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SMULWT:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
21211 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SMULWT),
21212 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
21213 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
21214 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
21215 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
21216 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21217 GIR_RootConstrainSelectedInstOperands,
21218 // GIR_Coverage, 2183,
21219 GIR_EraseRootFromParent_Done,
21220 // Label 1254: @56427
21221 GIM_Try, /*On fail goto*//*Label 1255*/ GIMT_Encode4(56475), // Rule ID 2510 //
21222 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON_HasV8_3a),
21223 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcadd_rot90),
21224 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
21225 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
21226 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s16,
21227 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
21228 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
21229 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
21230 // (intrinsic_wo_chain:{ *:[v4f16] } 3418:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Rn, DPR:{ *:[v4f16] }:$Rm) => (VCADDv4f16:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Rn, DPR:{ *:[v4f16] }:$Rm, 0:{ *:[i32] })
21231 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCADDv4f16),
21232 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
21233 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
21234 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
21235 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
21236 GIR_RootConstrainSelectedInstOperands,
21237 // GIR_Coverage, 2510,
21238 GIR_EraseRootFromParent_Done,
21239 // Label 1255: @56475
21240 GIM_Try, /*On fail goto*//*Label 1256*/ GIMT_Encode4(56523), // Rule ID 2511 //
21241 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON_HasV8_3a),
21242 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcadd_rot270),
21243 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
21244 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
21245 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s16,
21246 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
21247 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
21248 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
21249 // (intrinsic_wo_chain:{ *:[v4f16] } 3417:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Rn, DPR:{ *:[v4f16] }:$Rm) => (VCADDv4f16:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Rn, DPR:{ *:[v4f16] }:$Rm, 1:{ *:[i32] })
21250 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCADDv4f16),
21251 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
21252 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
21253 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
21254 GIR_AddImm8, /*InsnID*/0, /*Imm*/1,
21255 GIR_RootConstrainSelectedInstOperands,
21256 // GIR_Coverage, 2511,
21257 GIR_EraseRootFromParent_Done,
21258 // Label 1256: @56523
21259 GIM_Try, /*On fail goto*//*Label 1257*/ GIMT_Encode4(56571), // Rule ID 2512 //
21260 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON_HasV8_3a),
21261 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcadd_rot90),
21262 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
21263 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
21264 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
21265 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
21266 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
21267 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
21268 // (intrinsic_wo_chain:{ *:[v8f16] } 3418:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Rn, QPR:{ *:[v8f16] }:$Rm) => (VCADDv8f16:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Rn, QPR:{ *:[v8f16] }:$Rm, 0:{ *:[i32] })
21269 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCADDv8f16),
21270 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
21271 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
21272 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
21273 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
21274 GIR_RootConstrainSelectedInstOperands,
21275 // GIR_Coverage, 2512,
21276 GIR_EraseRootFromParent_Done,
21277 // Label 1257: @56571
21278 GIM_Try, /*On fail goto*//*Label 1258*/ GIMT_Encode4(56619), // Rule ID 2513 //
21279 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON_HasV8_3a),
21280 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcadd_rot270),
21281 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
21282 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
21283 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
21284 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
21285 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
21286 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
21287 // (intrinsic_wo_chain:{ *:[v8f16] } 3417:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Rn, QPR:{ *:[v8f16] }:$Rm) => (VCADDv8f16:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Rn, QPR:{ *:[v8f16] }:$Rm, 1:{ *:[i32] })
21288 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCADDv8f16),
21289 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
21290 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
21291 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
21292 GIR_AddImm8, /*InsnID*/0, /*Imm*/1,
21293 GIR_RootConstrainSelectedInstOperands,
21294 // GIR_Coverage, 2513,
21295 GIR_EraseRootFromParent_Done,
21296 // Label 1258: @56619
21297 GIM_Try, /*On fail goto*//*Label 1259*/ GIMT_Encode4(56667), // Rule ID 2514 //
21298 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasV8_3a),
21299 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcadd_rot90),
21300 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
21301 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
21302 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s32,
21303 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
21304 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
21305 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
21306 // (intrinsic_wo_chain:{ *:[v2f32] } 3418:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Rn, DPR:{ *:[v2f32] }:$Rm) => (VCADDv2f32:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Rn, DPR:{ *:[v2f32] }:$Rm, 0:{ *:[i32] })
21307 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCADDv2f32),
21308 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
21309 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
21310 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
21311 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
21312 GIR_RootConstrainSelectedInstOperands,
21313 // GIR_Coverage, 2514,
21314 GIR_EraseRootFromParent_Done,
21315 // Label 1259: @56667
21316 GIM_Try, /*On fail goto*//*Label 1260*/ GIMT_Encode4(56715), // Rule ID 2515 //
21317 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasV8_3a),
21318 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcadd_rot270),
21319 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
21320 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
21321 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s32,
21322 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
21323 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
21324 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
21325 // (intrinsic_wo_chain:{ *:[v2f32] } 3417:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Rn, DPR:{ *:[v2f32] }:$Rm) => (VCADDv2f32:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Rn, DPR:{ *:[v2f32] }:$Rm, 1:{ *:[i32] })
21326 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCADDv2f32),
21327 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
21328 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
21329 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
21330 GIR_AddImm8, /*InsnID*/0, /*Imm*/1,
21331 GIR_RootConstrainSelectedInstOperands,
21332 // GIR_Coverage, 2515,
21333 GIR_EraseRootFromParent_Done,
21334 // Label 1260: @56715
21335 GIM_Try, /*On fail goto*//*Label 1261*/ GIMT_Encode4(56763), // Rule ID 2516 //
21336 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasV8_3a),
21337 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcadd_rot90),
21338 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
21339 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
21340 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
21341 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
21342 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
21343 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
21344 // (intrinsic_wo_chain:{ *:[v4f32] } 3418:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Rn, QPR:{ *:[v4f32] }:$Rm) => (VCADDv4f32:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Rn, QPR:{ *:[v4f32] }:$Rm, 0:{ *:[i32] })
21345 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCADDv4f32),
21346 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
21347 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
21348 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
21349 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
21350 GIR_RootConstrainSelectedInstOperands,
21351 // GIR_Coverage, 2516,
21352 GIR_EraseRootFromParent_Done,
21353 // Label 1261: @56763
21354 GIM_Try, /*On fail goto*//*Label 1262*/ GIMT_Encode4(56811), // Rule ID 2517 //
21355 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasV8_3a),
21356 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vcadd_rot270),
21357 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
21358 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
21359 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
21360 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
21361 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
21362 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
21363 // (intrinsic_wo_chain:{ *:[v4f32] } 3417:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Rn, QPR:{ *:[v4f32] }:$Rm) => (VCADDv4f32:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Rn, QPR:{ *:[v4f32] }:$Rm, 1:{ *:[i32] })
21364 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCADDv4f32),
21365 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
21366 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
21367 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
21368 GIR_AddImm8, /*InsnID*/0, /*Imm*/1,
21369 GIR_RootConstrainSelectedInstOperands,
21370 // GIR_Coverage, 2517,
21371 GIR_EraseRootFromParent_Done,
21372 // Label 1262: @56811
21373 GIM_Try, /*On fail goto*//*Label 1263*/ GIMT_Encode4(56913), // Rule ID 3202 //
21374 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
21375 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_minnmv),
21376 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
21377 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
21378 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
21379 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
21380 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
21381 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
21382 // (intrinsic_wo_chain:{ *:[f32] } 3225:{ *:[iPTR] }, SPR:{ *:[f32] }:$prev, MQPR:{ *:[v4f32] }:$vec) => (COPY_TO_REGCLASS:{ *:[f32] } (MVE_VMINNMVf32:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } SPR:{ *:[f32] }:$prev, rGPR:{ *:[i32] }), MQPR:{ *:[v4f32] }:$vec), SPR:{ *:[i32] })
21383 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
21384 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
21385 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
21386 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
21387 GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/2, // prev
21388 GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
21389 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::MVE_VMINNMVf32),
21390 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
21391 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
21392 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // vec
21393 GIR_AddImm8, /*InsnID*/1, /*Imm*/0,
21394 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21395 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21396 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
21397 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
21398 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
21399 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
21400 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::SPRRegClassID),
21401 // GIR_Coverage, 3202,
21402 GIR_EraseRootFromParent_Done,
21403 // Label 1263: @56913
21404 GIM_Try, /*On fail goto*//*Label 1264*/ GIMT_Encode4(57015), // Rule ID 3204 //
21405 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
21406 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_minnmv),
21407 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s16,
21408 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s16,
21409 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
21410 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
21411 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
21412 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
21413 // (intrinsic_wo_chain:{ *:[f16] } 3225:{ *:[iPTR] }, HPR:{ *:[f16] }:$prev, MQPR:{ *:[v8f16] }:$vec) => (COPY_TO_REGCLASS:{ *:[f16] } (MVE_VMINNMVf16:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } HPR:{ *:[f16] }:$prev, rGPR:{ *:[i32] }), MQPR:{ *:[v8f16] }:$vec), HPR:{ *:[i32] })
21414 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
21415 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
21416 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
21417 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
21418 GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/2, // prev
21419 GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
21420 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::MVE_VMINNMVf16),
21421 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
21422 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
21423 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // vec
21424 GIR_AddImm8, /*InsnID*/1, /*Imm*/0,
21425 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21426 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21427 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
21428 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
21429 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
21430 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
21431 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::HPRRegClassID),
21432 // GIR_Coverage, 3204,
21433 GIR_EraseRootFromParent_Done,
21434 // Label 1264: @57015
21435 GIM_Try, /*On fail goto*//*Label 1265*/ GIMT_Encode4(57117), // Rule ID 3206 //
21436 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
21437 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_maxnmv),
21438 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
21439 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
21440 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
21441 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
21442 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
21443 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
21444 // (intrinsic_wo_chain:{ *:[f32] } 3216:{ *:[iPTR] }, SPR:{ *:[f32] }:$prev, MQPR:{ *:[v4f32] }:$vec) => (COPY_TO_REGCLASS:{ *:[f32] } (MVE_VMAXNMVf32:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } SPR:{ *:[f32] }:$prev, rGPR:{ *:[i32] }), MQPR:{ *:[v4f32] }:$vec), SPR:{ *:[i32] })
21445 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
21446 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
21447 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
21448 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
21449 GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/2, // prev
21450 GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
21451 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::MVE_VMAXNMVf32),
21452 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
21453 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
21454 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // vec
21455 GIR_AddImm8, /*InsnID*/1, /*Imm*/0,
21456 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21457 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21458 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
21459 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
21460 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
21461 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
21462 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::SPRRegClassID),
21463 // GIR_Coverage, 3206,
21464 GIR_EraseRootFromParent_Done,
21465 // Label 1265: @57117
21466 GIM_Try, /*On fail goto*//*Label 1266*/ GIMT_Encode4(57219), // Rule ID 3208 //
21467 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
21468 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_maxnmv),
21469 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s16,
21470 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s16,
21471 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
21472 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
21473 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
21474 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
21475 // (intrinsic_wo_chain:{ *:[f16] } 3216:{ *:[iPTR] }, HPR:{ *:[f16] }:$prev, MQPR:{ *:[v8f16] }:$vec) => (COPY_TO_REGCLASS:{ *:[f16] } (MVE_VMAXNMVf16:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } HPR:{ *:[f16] }:$prev, rGPR:{ *:[i32] }), MQPR:{ *:[v8f16] }:$vec), HPR:{ *:[i32] })
21476 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
21477 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
21478 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
21479 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
21480 GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/2, // prev
21481 GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
21482 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::MVE_VMAXNMVf16),
21483 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
21484 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
21485 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // vec
21486 GIR_AddImm8, /*InsnID*/1, /*Imm*/0,
21487 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21488 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21489 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
21490 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
21491 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
21492 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
21493 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::HPRRegClassID),
21494 // GIR_Coverage, 3208,
21495 GIR_EraseRootFromParent_Done,
21496 // Label 1266: @57219
21497 GIM_Try, /*On fail goto*//*Label 1267*/ GIMT_Encode4(57321), // Rule ID 3210 //
21498 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
21499 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_minnmav),
21500 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
21501 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
21502 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
21503 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
21504 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
21505 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
21506 // (intrinsic_wo_chain:{ *:[f32] } 3223:{ *:[iPTR] }, SPR:{ *:[f32] }:$prev, MQPR:{ *:[v4f32] }:$vec) => (COPY_TO_REGCLASS:{ *:[f32] } (MVE_VMINNMAVf32:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } SPR:{ *:[f32] }:$prev, rGPR:{ *:[i32] }), MQPR:{ *:[v4f32] }:$vec), SPR:{ *:[i32] })
21507 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
21508 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
21509 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
21510 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
21511 GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/2, // prev
21512 GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
21513 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::MVE_VMINNMAVf32),
21514 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
21515 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
21516 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // vec
21517 GIR_AddImm8, /*InsnID*/1, /*Imm*/0,
21518 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21519 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21520 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
21521 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
21522 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
21523 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
21524 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::SPRRegClassID),
21525 // GIR_Coverage, 3210,
21526 GIR_EraseRootFromParent_Done,
21527 // Label 1267: @57321
21528 GIM_Try, /*On fail goto*//*Label 1268*/ GIMT_Encode4(57423), // Rule ID 3212 //
21529 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
21530 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_minnmav),
21531 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s16,
21532 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s16,
21533 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
21534 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
21535 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
21536 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
21537 // (intrinsic_wo_chain:{ *:[f16] } 3223:{ *:[iPTR] }, HPR:{ *:[f16] }:$prev, MQPR:{ *:[v8f16] }:$vec) => (COPY_TO_REGCLASS:{ *:[f16] } (MVE_VMINNMAVf16:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } HPR:{ *:[f16] }:$prev, rGPR:{ *:[i32] }), MQPR:{ *:[v8f16] }:$vec), HPR:{ *:[i32] })
21538 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
21539 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
21540 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
21541 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
21542 GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/2, // prev
21543 GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
21544 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::MVE_VMINNMAVf16),
21545 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
21546 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
21547 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // vec
21548 GIR_AddImm8, /*InsnID*/1, /*Imm*/0,
21549 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21550 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21551 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
21552 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
21553 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
21554 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
21555 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::HPRRegClassID),
21556 // GIR_Coverage, 3212,
21557 GIR_EraseRootFromParent_Done,
21558 // Label 1268: @57423
21559 GIM_Try, /*On fail goto*//*Label 1269*/ GIMT_Encode4(57525), // Rule ID 3214 //
21560 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
21561 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_maxnmav),
21562 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
21563 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
21564 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
21565 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
21566 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
21567 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
21568 // (intrinsic_wo_chain:{ *:[f32] } 3214:{ *:[iPTR] }, SPR:{ *:[f32] }:$prev, MQPR:{ *:[v4f32] }:$vec) => (COPY_TO_REGCLASS:{ *:[f32] } (MVE_VMAXNMAVf32:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } SPR:{ *:[f32] }:$prev, rGPR:{ *:[i32] }), MQPR:{ *:[v4f32] }:$vec), SPR:{ *:[i32] })
21569 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
21570 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
21571 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
21572 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
21573 GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/2, // prev
21574 GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
21575 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::MVE_VMAXNMAVf32),
21576 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
21577 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
21578 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // vec
21579 GIR_AddImm8, /*InsnID*/1, /*Imm*/0,
21580 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21581 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21582 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
21583 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
21584 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
21585 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
21586 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::SPRRegClassID),
21587 // GIR_Coverage, 3214,
21588 GIR_EraseRootFromParent_Done,
21589 // Label 1269: @57525
21590 GIM_Try, /*On fail goto*//*Label 1270*/ GIMT_Encode4(57627), // Rule ID 3216 //
21591 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
21592 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_maxnmav),
21593 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s16,
21594 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s16,
21595 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
21596 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
21597 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
21598 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
21599 // (intrinsic_wo_chain:{ *:[f16] } 3214:{ *:[iPTR] }, HPR:{ *:[f16] }:$prev, MQPR:{ *:[v8f16] }:$vec) => (COPY_TO_REGCLASS:{ *:[f16] } (MVE_VMAXNMAVf16:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } HPR:{ *:[f16] }:$prev, rGPR:{ *:[i32] }), MQPR:{ *:[v8f16] }:$vec), HPR:{ *:[i32] })
21600 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
21601 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
21602 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
21603 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
21604 GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/2, // prev
21605 GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
21606 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::MVE_VMAXNMAVf16),
21607 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
21608 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
21609 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // vec
21610 GIR_AddImm8, /*InsnID*/1, /*Imm*/0,
21611 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21612 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21613 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
21614 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
21615 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
21616 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
21617 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::HPRRegClassID),
21618 // GIR_Coverage, 3216,
21619 GIR_EraseRootFromParent_Done,
21620 // Label 1270: @57627
21621 GIM_Try, /*On fail goto*//*Label 1271*/ GIMT_Encode4(57687), // Rule ID 3266 //
21622 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
21623 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_minav),
21624 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
21625 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
21626 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
21627 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
21628 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
21629 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
21630 // (intrinsic_wo_chain:{ *:[i32] } 3221:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v16i8] }:$vec) => (MVE_VMINAVs8:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v16i8] }:$vec)
21631 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMINAVs8),
21632 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
21633 GIR_RootToRootCopy, /*OpIdx*/2, // prev
21634 GIR_RootToRootCopy, /*OpIdx*/3, // vec
21635 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
21636 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21637 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21638 GIR_RootConstrainSelectedInstOperands,
21639 // GIR_Coverage, 3266,
21640 GIR_EraseRootFromParent_Done,
21641 // Label 1271: @57687
21642 GIM_Try, /*On fail goto*//*Label 1272*/ GIMT_Encode4(57747), // Rule ID 3268 //
21643 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
21644 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_minav),
21645 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
21646 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
21647 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
21648 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
21649 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
21650 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
21651 // (intrinsic_wo_chain:{ *:[i32] } 3221:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v8i16] }:$vec) => (MVE_VMINAVs16:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v8i16] }:$vec)
21652 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMINAVs16),
21653 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
21654 GIR_RootToRootCopy, /*OpIdx*/2, // prev
21655 GIR_RootToRootCopy, /*OpIdx*/3, // vec
21656 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
21657 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21658 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21659 GIR_RootConstrainSelectedInstOperands,
21660 // GIR_Coverage, 3268,
21661 GIR_EraseRootFromParent_Done,
21662 // Label 1272: @57747
21663 GIM_Try, /*On fail goto*//*Label 1273*/ GIMT_Encode4(57807), // Rule ID 3270 //
21664 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
21665 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_minav),
21666 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
21667 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
21668 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
21669 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
21670 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
21671 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
21672 // (intrinsic_wo_chain:{ *:[i32] } 3221:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v4i32] }:$vec) => (MVE_VMINAVs32:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v4i32] }:$vec)
21673 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMINAVs32),
21674 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
21675 GIR_RootToRootCopy, /*OpIdx*/2, // prev
21676 GIR_RootToRootCopy, /*OpIdx*/3, // vec
21677 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
21678 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21679 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21680 GIR_RootConstrainSelectedInstOperands,
21681 // GIR_Coverage, 3270,
21682 GIR_EraseRootFromParent_Done,
21683 // Label 1273: @57807
21684 GIM_Try, /*On fail goto*//*Label 1274*/ GIMT_Encode4(57867), // Rule ID 3272 //
21685 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
21686 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_maxav),
21687 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
21688 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
21689 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
21690 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
21691 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
21692 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
21693 // (intrinsic_wo_chain:{ *:[i32] } 3212:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v16i8] }:$vec) => (MVE_VMAXAVs8:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v16i8] }:$vec)
21694 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMAXAVs8),
21695 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
21696 GIR_RootToRootCopy, /*OpIdx*/2, // prev
21697 GIR_RootToRootCopy, /*OpIdx*/3, // vec
21698 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
21699 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21700 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21701 GIR_RootConstrainSelectedInstOperands,
21702 // GIR_Coverage, 3272,
21703 GIR_EraseRootFromParent_Done,
21704 // Label 1274: @57867
21705 GIM_Try, /*On fail goto*//*Label 1275*/ GIMT_Encode4(57927), // Rule ID 3274 //
21706 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
21707 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_maxav),
21708 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
21709 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
21710 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
21711 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
21712 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
21713 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
21714 // (intrinsic_wo_chain:{ *:[i32] } 3212:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v8i16] }:$vec) => (MVE_VMAXAVs16:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v8i16] }:$vec)
21715 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMAXAVs16),
21716 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
21717 GIR_RootToRootCopy, /*OpIdx*/2, // prev
21718 GIR_RootToRootCopy, /*OpIdx*/3, // vec
21719 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
21720 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21721 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21722 GIR_RootConstrainSelectedInstOperands,
21723 // GIR_Coverage, 3274,
21724 GIR_EraseRootFromParent_Done,
21725 // Label 1275: @57927
21726 GIM_Try, /*On fail goto*//*Label 1276*/ GIMT_Encode4(57987), // Rule ID 3276 //
21727 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
21728 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_maxav),
21729 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
21730 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
21731 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
21732 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
21733 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
21734 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
21735 // (intrinsic_wo_chain:{ *:[i32] } 3212:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v4i32] }:$vec) => (MVE_VMAXAVs32:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v4i32] }:$vec)
21736 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMAXAVs32),
21737 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
21738 GIR_RootToRootCopy, /*OpIdx*/2, // prev
21739 GIR_RootToRootCopy, /*OpIdx*/3, // vec
21740 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
21741 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21742 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21743 GIR_RootConstrainSelectedInstOperands,
21744 // GIR_Coverage, 3276,
21745 GIR_EraseRootFromParent_Done,
21746 // Label 1276: @57987
21747 GIM_Try, /*On fail goto*//*Label 1277*/ GIMT_Encode4(58060), // Rule ID 3567 //
21748 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
21749 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqdmulh),
21750 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
21751 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
21752 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
21753 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
21754 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
21755 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
21756 // (intrinsic_wo_chain:{ *:[v16i8] } 3334:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) => (MVE_VQDMULHi8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
21757 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
21758 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
21759 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
21760 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQDMULHi8),
21761 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
21762 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
21763 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
21764 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
21765 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21766 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21767 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
21768 GIR_RootConstrainSelectedInstOperands,
21769 // GIR_Coverage, 3567,
21770 GIR_EraseRootFromParent_Done,
21771 // Label 1277: @58060
21772 GIM_Try, /*On fail goto*//*Label 1278*/ GIMT_Encode4(58133), // Rule ID 3574 //
21773 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
21774 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqdmulh),
21775 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
21776 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
21777 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
21778 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
21779 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
21780 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
21781 // (intrinsic_wo_chain:{ *:[v8i16] } 3334:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) => (MVE_VQDMULHi16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
21782 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
21783 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
21784 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
21785 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQDMULHi16),
21786 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
21787 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
21788 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
21789 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
21790 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21791 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21792 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
21793 GIR_RootConstrainSelectedInstOperands,
21794 // GIR_Coverage, 3574,
21795 GIR_EraseRootFromParent_Done,
21796 // Label 1278: @58133
21797 GIM_Try, /*On fail goto*//*Label 1279*/ GIMT_Encode4(58206), // Rule ID 3578 //
21798 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
21799 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqdmulh),
21800 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
21801 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
21802 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
21803 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
21804 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
21805 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
21806 // (intrinsic_wo_chain:{ *:[v4i32] } 3334:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) => (MVE_VQDMULHi32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
21807 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
21808 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
21809 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
21810 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQDMULHi32),
21811 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
21812 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
21813 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
21814 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
21815 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21816 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21817 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
21818 GIR_RootConstrainSelectedInstOperands,
21819 // GIR_Coverage, 3578,
21820 GIR_EraseRootFromParent_Done,
21821 // Label 1279: @58206
21822 GIM_Try, /*On fail goto*//*Label 1280*/ GIMT_Encode4(58279), // Rule ID 3580 //
21823 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
21824 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqrdmulh),
21825 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
21826 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
21827 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
21828 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
21829 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
21830 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
21831 // (intrinsic_wo_chain:{ *:[v16i8] } 3343:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) => (MVE_VQRDMULHi8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
21832 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
21833 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
21834 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
21835 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRDMULHi8),
21836 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
21837 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
21838 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
21839 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
21840 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21841 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21842 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
21843 GIR_RootConstrainSelectedInstOperands,
21844 // GIR_Coverage, 3580,
21845 GIR_EraseRootFromParent_Done,
21846 // Label 1280: @58279
21847 GIM_Try, /*On fail goto*//*Label 1281*/ GIMT_Encode4(58352), // Rule ID 3582 //
21848 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
21849 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqrdmulh),
21850 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
21851 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
21852 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
21853 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
21854 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
21855 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
21856 // (intrinsic_wo_chain:{ *:[v8i16] } 3343:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) => (MVE_VQRDMULHi16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
21857 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
21858 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
21859 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
21860 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRDMULHi16),
21861 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
21862 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
21863 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
21864 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
21865 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21866 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21867 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
21868 GIR_RootConstrainSelectedInstOperands,
21869 // GIR_Coverage, 3582,
21870 GIR_EraseRootFromParent_Done,
21871 // Label 1281: @58352
21872 GIM_Try, /*On fail goto*//*Label 1282*/ GIMT_Encode4(58425), // Rule ID 3584 //
21873 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
21874 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqrdmulh),
21875 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
21876 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
21877 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
21878 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
21879 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
21880 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
21881 // (intrinsic_wo_chain:{ *:[v4i32] } 3343:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) => (MVE_VQRDMULHi32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
21882 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
21883 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
21884 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
21885 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRDMULHi32),
21886 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
21887 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
21888 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
21889 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
21890 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21891 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21892 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
21893 GIR_RootConstrainSelectedInstOperands,
21894 // GIR_Coverage, 3584,
21895 GIR_EraseRootFromParent_Done,
21896 // Label 1282: @58425
21897 GIM_Try, /*On fail goto*//*Label 1283*/ GIMT_Encode4(58498), // Rule ID 4870 //
21898 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
21899 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vbrsr),
21900 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
21901 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
21902 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
21903 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
21904 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
21905 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
21906 // (intrinsic_wo_chain:{ *:[v16i8] } 3267:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qn, rGPR:{ *:[i32] }:$Rm) => (MVE_VBRSR8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qn, rGPR:{ *:[i32] }:$Rm)
21907 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
21908 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
21909 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
21910 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VBRSR8),
21911 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
21912 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
21913 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
21914 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
21915 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21916 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21917 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
21918 GIR_RootConstrainSelectedInstOperands,
21919 // GIR_Coverage, 4870,
21920 GIR_EraseRootFromParent_Done,
21921 // Label 1283: @58498
21922 GIM_Try, /*On fail goto*//*Label 1284*/ GIMT_Encode4(58571), // Rule ID 4875 //
21923 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
21924 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vbrsr),
21925 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
21926 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
21927 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
21928 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
21929 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
21930 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
21931 // (intrinsic_wo_chain:{ *:[v8i16] } 3267:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qn, rGPR:{ *:[i32] }:$Rm) => (MVE_VBRSR16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qn, rGPR:{ *:[i32] }:$Rm)
21932 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
21933 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
21934 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
21935 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VBRSR16),
21936 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
21937 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
21938 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
21939 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
21940 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21941 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21942 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
21943 GIR_RootConstrainSelectedInstOperands,
21944 // GIR_Coverage, 4875,
21945 GIR_EraseRootFromParent_Done,
21946 // Label 1284: @58571
21947 GIM_Try, /*On fail goto*//*Label 1285*/ GIMT_Encode4(58644), // Rule ID 4877 //
21948 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
21949 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vbrsr),
21950 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
21951 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
21952 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
21953 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
21954 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
21955 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
21956 // (intrinsic_wo_chain:{ *:[v4i32] } 3267:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qn, rGPR:{ *:[i32] }:$Rm) => (MVE_VBRSR32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qn, rGPR:{ *:[i32] }:$Rm)
21957 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
21958 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
21959 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
21960 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VBRSR32),
21961 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
21962 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
21963 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
21964 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
21965 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21966 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21967 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
21968 GIR_RootConstrainSelectedInstOperands,
21969 // GIR_Coverage, 4877,
21970 GIR_EraseRootFromParent_Done,
21971 // Label 1285: @58644
21972 GIM_Try, /*On fail goto*//*Label 1286*/ GIMT_Encode4(58717), // Rule ID 4879 //
21973 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
21974 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vbrsr),
21975 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
21976 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
21977 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
21978 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
21979 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
21980 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
21981 // (intrinsic_wo_chain:{ *:[v8f16] } 3267:{ *:[iPTR] }, MQPR:{ *:[v8f16] }:$Qn, rGPR:{ *:[i32] }:$Rm) => (MVE_VBRSR16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qn, rGPR:{ *:[i32] }:$Rm)
21982 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
21983 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
21984 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
21985 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VBRSR16),
21986 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
21987 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
21988 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
21989 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
21990 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21991 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
21992 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
21993 GIR_RootConstrainSelectedInstOperands,
21994 // GIR_Coverage, 4879,
21995 GIR_EraseRootFromParent_Done,
21996 // Label 1286: @58717
21997 GIM_Try, /*On fail goto*//*Label 1287*/ GIMT_Encode4(58790), // Rule ID 4881 //
21998 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
21999 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vbrsr),
22000 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
22001 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
22002 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
22003 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22004 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22005 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
22006 // (intrinsic_wo_chain:{ *:[v4f32] } 3267:{ *:[iPTR] }, MQPR:{ *:[v4f32] }:$Qn, rGPR:{ *:[i32] }:$Rm) => (MVE_VBRSR32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qn, rGPR:{ *:[i32] }:$Rm)
22007 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
22008 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
22009 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
22010 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VBRSR32),
22011 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
22012 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
22013 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
22014 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
22015 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22016 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22017 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
22018 GIR_RootConstrainSelectedInstOperands,
22019 // GIR_Coverage, 4881,
22020 GIR_EraseRootFromParent_Done,
22021 // Label 1287: @58790
22022 GIM_Reject,
22023 // Label 932: @58791
22024 GIM_Try, /*On fail goto*//*Label 1288*/ GIMT_Encode4(70469),
22025 GIM_CheckNumOperands, /*MI*/0, /*Expected*/5,
22026 GIM_Try, /*On fail goto*//*Label 1289*/ GIMT_Encode4(58887), // Rule ID 4031 //
22027 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqshl_imm),
22028 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
22029 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
22030 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
22031 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
22032 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22033 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22034 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
22035 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
22036 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm0_7),
22037 // MIs[1] Operand 1
22038 // No operand predicates
22039 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
22040 GIM_CheckIsSafeToFold, /*NumInsns*/1,
22041 // (intrinsic_wo_chain:{ *:[v16i8] } 3344:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm, 0:{ *:[i32] }) => (MVE_VQSHLimms8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm)
22042 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
22043 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
22044 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
22045 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQSHLimms8),
22046 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
22047 GIR_RootToRootCopy, /*OpIdx*/2, // src
22048 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
22049 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
22050 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22051 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22052 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
22053 GIR_RootConstrainSelectedInstOperands,
22054 // GIR_Coverage, 4031,
22055 GIR_EraseRootFromParent_Done,
22056 // Label 1289: @58887
22057 GIM_Try, /*On fail goto*//*Label 1290*/ GIMT_Encode4(58975), // Rule ID 4033 //
22058 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqshl_imm),
22059 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
22060 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
22061 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
22062 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
22063 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22064 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22065 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
22066 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
22067 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm0_7),
22068 // MIs[1] Operand 1
22069 // No operand predicates
22070 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
22071 GIM_CheckIsSafeToFold, /*NumInsns*/1,
22072 // (intrinsic_wo_chain:{ *:[v16i8] } 3344:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm, 1:{ *:[i32] }) => (MVE_VQSHLimmu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm)
22073 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
22074 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
22075 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
22076 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQSHLimmu8),
22077 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
22078 GIR_RootToRootCopy, /*OpIdx*/2, // src
22079 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
22080 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
22081 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22082 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22083 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
22084 GIR_RootConstrainSelectedInstOperands,
22085 // GIR_Coverage, 4033,
22086 GIR_EraseRootFromParent_Done,
22087 // Label 1290: @58975
22088 GIM_Try, /*On fail goto*//*Label 1291*/ GIMT_Encode4(59063), // Rule ID 4035 //
22089 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqshl_imm),
22090 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
22091 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
22092 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
22093 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
22094 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22095 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22096 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
22097 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
22098 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm0_15),
22099 // MIs[1] Operand 1
22100 // No operand predicates
22101 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
22102 GIM_CheckIsSafeToFold, /*NumInsns*/1,
22103 // (intrinsic_wo_chain:{ *:[v8i16] } 3344:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm, 0:{ *:[i32] }) => (MVE_VQSHLimms16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm)
22104 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
22105 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
22106 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
22107 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQSHLimms16),
22108 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
22109 GIR_RootToRootCopy, /*OpIdx*/2, // src
22110 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
22111 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
22112 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22113 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22114 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
22115 GIR_RootConstrainSelectedInstOperands,
22116 // GIR_Coverage, 4035,
22117 GIR_EraseRootFromParent_Done,
22118 // Label 1291: @59063
22119 GIM_Try, /*On fail goto*//*Label 1292*/ GIMT_Encode4(59151), // Rule ID 4037 //
22120 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqshl_imm),
22121 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
22122 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
22123 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
22124 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
22125 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22126 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22127 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
22128 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
22129 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm0_15),
22130 // MIs[1] Operand 1
22131 // No operand predicates
22132 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
22133 GIM_CheckIsSafeToFold, /*NumInsns*/1,
22134 // (intrinsic_wo_chain:{ *:[v8i16] } 3344:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm, 1:{ *:[i32] }) => (MVE_VQSHLimmu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm)
22135 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
22136 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
22137 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
22138 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQSHLimmu16),
22139 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
22140 GIR_RootToRootCopy, /*OpIdx*/2, // src
22141 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
22142 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
22143 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22144 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22145 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
22146 GIR_RootConstrainSelectedInstOperands,
22147 // GIR_Coverage, 4037,
22148 GIR_EraseRootFromParent_Done,
22149 // Label 1292: @59151
22150 GIM_Try, /*On fail goto*//*Label 1293*/ GIMT_Encode4(59239), // Rule ID 4039 //
22151 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqshl_imm),
22152 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
22153 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
22154 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
22155 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
22156 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22157 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22158 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
22159 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
22160 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm0_31),
22161 // MIs[1] Operand 1
22162 // No operand predicates
22163 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
22164 GIM_CheckIsSafeToFold, /*NumInsns*/1,
22165 // (intrinsic_wo_chain:{ *:[v4i32] } 3344:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm, 0:{ *:[i32] }) => (MVE_VQSHLimms32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm)
22166 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
22167 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
22168 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
22169 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQSHLimms32),
22170 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
22171 GIR_RootToRootCopy, /*OpIdx*/2, // src
22172 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
22173 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
22174 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22175 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22176 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
22177 GIR_RootConstrainSelectedInstOperands,
22178 // GIR_Coverage, 4039,
22179 GIR_EraseRootFromParent_Done,
22180 // Label 1293: @59239
22181 GIM_Try, /*On fail goto*//*Label 1294*/ GIMT_Encode4(59327), // Rule ID 4041 //
22182 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqshl_imm),
22183 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
22184 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
22185 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
22186 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
22187 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22188 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22189 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
22190 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
22191 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm0_31),
22192 // MIs[1] Operand 1
22193 // No operand predicates
22194 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
22195 GIM_CheckIsSafeToFold, /*NumInsns*/1,
22196 // (intrinsic_wo_chain:{ *:[v4i32] } 3344:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm, 1:{ *:[i32] }) => (MVE_VQSHLimmu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm)
22197 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
22198 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
22199 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
22200 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQSHLimmu32),
22201 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
22202 GIR_RootToRootCopy, /*OpIdx*/2, // src
22203 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
22204 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
22205 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22206 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22207 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
22208 GIR_RootConstrainSelectedInstOperands,
22209 // GIR_Coverage, 4041,
22210 GIR_EraseRootFromParent_Done,
22211 // Label 1294: @59327
22212 GIM_Try, /*On fail goto*//*Label 1295*/ GIMT_Encode4(59415), // Rule ID 4049 //
22213 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vrshr_imm),
22214 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
22215 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
22216 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
22217 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
22218 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22219 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22220 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
22221 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
22222 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm8),
22223 // MIs[1] Operand 1
22224 // No operand predicates
22225 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
22226 GIM_CheckIsSafeToFold, /*NumInsns*/1,
22227 // (intrinsic_wo_chain:{ *:[v16i8] } 3361:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 0:{ *:[i32] }) => (MVE_VRSHR_imms8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm)
22228 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
22229 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
22230 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
22231 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRSHR_imms8),
22232 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
22233 GIR_RootToRootCopy, /*OpIdx*/2, // src
22234 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
22235 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
22236 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22237 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22238 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
22239 GIR_RootConstrainSelectedInstOperands,
22240 // GIR_Coverage, 4049,
22241 GIR_EraseRootFromParent_Done,
22242 // Label 1295: @59415
22243 GIM_Try, /*On fail goto*//*Label 1296*/ GIMT_Encode4(59503), // Rule ID 4051 //
22244 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vrshr_imm),
22245 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
22246 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
22247 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
22248 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
22249 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22250 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22251 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
22252 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
22253 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm8),
22254 // MIs[1] Operand 1
22255 // No operand predicates
22256 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
22257 GIM_CheckIsSafeToFold, /*NumInsns*/1,
22258 // (intrinsic_wo_chain:{ *:[v16i8] } 3361:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }) => (MVE_VRSHR_immu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm)
22259 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
22260 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
22261 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
22262 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRSHR_immu8),
22263 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
22264 GIR_RootToRootCopy, /*OpIdx*/2, // src
22265 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
22266 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
22267 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22268 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22269 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
22270 GIR_RootConstrainSelectedInstOperands,
22271 // GIR_Coverage, 4051,
22272 GIR_EraseRootFromParent_Done,
22273 // Label 1296: @59503
22274 GIM_Try, /*On fail goto*//*Label 1297*/ GIMT_Encode4(59591), // Rule ID 4053 //
22275 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vrshr_imm),
22276 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
22277 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
22278 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
22279 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
22280 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22281 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22282 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
22283 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
22284 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm16),
22285 // MIs[1] Operand 1
22286 // No operand predicates
22287 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
22288 GIM_CheckIsSafeToFold, /*NumInsns*/1,
22289 // (intrinsic_wo_chain:{ *:[v8i16] } 3361:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 0:{ *:[i32] }) => (MVE_VRSHR_imms16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm)
22290 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
22291 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
22292 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
22293 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRSHR_imms16),
22294 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
22295 GIR_RootToRootCopy, /*OpIdx*/2, // src
22296 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
22297 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
22298 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22299 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22300 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
22301 GIR_RootConstrainSelectedInstOperands,
22302 // GIR_Coverage, 4053,
22303 GIR_EraseRootFromParent_Done,
22304 // Label 1297: @59591
22305 GIM_Try, /*On fail goto*//*Label 1298*/ GIMT_Encode4(59679), // Rule ID 4055 //
22306 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vrshr_imm),
22307 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
22308 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
22309 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
22310 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
22311 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22312 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22313 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
22314 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
22315 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm16),
22316 // MIs[1] Operand 1
22317 // No operand predicates
22318 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
22319 GIM_CheckIsSafeToFold, /*NumInsns*/1,
22320 // (intrinsic_wo_chain:{ *:[v8i16] } 3361:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }) => (MVE_VRSHR_immu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm)
22321 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
22322 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
22323 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
22324 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRSHR_immu16),
22325 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
22326 GIR_RootToRootCopy, /*OpIdx*/2, // src
22327 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
22328 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
22329 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22330 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22331 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
22332 GIR_RootConstrainSelectedInstOperands,
22333 // GIR_Coverage, 4055,
22334 GIR_EraseRootFromParent_Done,
22335 // Label 1298: @59679
22336 GIM_Try, /*On fail goto*//*Label 1299*/ GIMT_Encode4(59767), // Rule ID 4057 //
22337 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vrshr_imm),
22338 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
22339 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
22340 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
22341 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
22342 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22343 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22344 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
22345 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
22346 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm32),
22347 // MIs[1] Operand 1
22348 // No operand predicates
22349 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
22350 GIM_CheckIsSafeToFold, /*NumInsns*/1,
22351 // (intrinsic_wo_chain:{ *:[v4i32] } 3361:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm32>>:$imm, 0:{ *:[i32] }) => (MVE_VRSHR_imms32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm32>>:$imm)
22352 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
22353 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
22354 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
22355 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRSHR_imms32),
22356 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
22357 GIR_RootToRootCopy, /*OpIdx*/2, // src
22358 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
22359 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
22360 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22361 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22362 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
22363 GIR_RootConstrainSelectedInstOperands,
22364 // GIR_Coverage, 4057,
22365 GIR_EraseRootFromParent_Done,
22366 // Label 1299: @59767
22367 GIM_Try, /*On fail goto*//*Label 1300*/ GIMT_Encode4(59855), // Rule ID 4059 //
22368 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vrshr_imm),
22369 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
22370 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
22371 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
22372 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
22373 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22374 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22375 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
22376 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
22377 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm32),
22378 // MIs[1] Operand 1
22379 // No operand predicates
22380 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
22381 GIM_CheckIsSafeToFold, /*NumInsns*/1,
22382 // (intrinsic_wo_chain:{ *:[v4i32] } 3361:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm32>>:$imm, 1:{ *:[i32] }) => (MVE_VRSHR_immu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm32>>:$imm)
22383 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
22384 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
22385 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
22386 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRSHR_immu32),
22387 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
22388 GIR_RootToRootCopy, /*OpIdx*/2, // src
22389 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
22390 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
22391 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22392 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22393 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
22394 GIR_RootConstrainSelectedInstOperands,
22395 // GIR_Coverage, 4059,
22396 GIR_EraseRootFromParent_Done,
22397 // Label 1300: @59855
22398 GIM_Try, /*On fail goto*//*Label 1301*/ GIMT_Encode4(59942), // Rule ID 4157 //
22399 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
22400 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vcvt_fix),
22401 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
22402 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
22403 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
22404 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
22405 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22406 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
22407 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22408 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
22409 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
22410 // MIs[1] Operand 1
22411 // No operand predicates
22412 GIM_CheckIsSafeToFold, /*NumInsns*/1,
22413 // (intrinsic_wo_chain:{ *:[v8f16] } 3280:{ *:[iPTR] }, 0:{ *:[i32] }, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$scale) => (MVE_VCVTf16s16_fix:{ *:[v8f16] } MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$scale)
22414 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
22415 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
22416 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
22417 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCVTf16s16_fix),
22418 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
22419 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
22420 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // scale
22421 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
22422 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22423 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22424 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
22425 GIR_RootConstrainSelectedInstOperands,
22426 // GIR_Coverage, 4157,
22427 GIR_EraseRootFromParent_Done,
22428 // Label 1301: @59942
22429 GIM_Try, /*On fail goto*//*Label 1302*/ GIMT_Encode4(60029), // Rule ID 4159 //
22430 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
22431 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vcvt_fix),
22432 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
22433 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
22434 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
22435 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
22436 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22437 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
22438 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22439 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
22440 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
22441 // MIs[1] Operand 1
22442 // No operand predicates
22443 GIM_CheckIsSafeToFold, /*NumInsns*/1,
22444 // (intrinsic_wo_chain:{ *:[v8i16] } 3280:{ *:[iPTR] }, 0:{ *:[i32] }, MQPR:{ *:[v8f16] }:$Qm, (imm:{ *:[i32] }):$scale) => (MVE_VCVTs16f16_fix:{ *:[v8i16] } MQPR:{ *:[v8f16] }:$Qm, (imm:{ *:[i32] }):$scale)
22445 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
22446 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
22447 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
22448 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCVTs16f16_fix),
22449 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
22450 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
22451 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // scale
22452 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
22453 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22454 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22455 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
22456 GIR_RootConstrainSelectedInstOperands,
22457 // GIR_Coverage, 4159,
22458 GIR_EraseRootFromParent_Done,
22459 // Label 1302: @60029
22460 GIM_Try, /*On fail goto*//*Label 1303*/ GIMT_Encode4(60116), // Rule ID 4161 //
22461 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
22462 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vcvt_fix),
22463 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
22464 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
22465 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
22466 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
22467 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22468 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
22469 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22470 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
22471 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
22472 // MIs[1] Operand 1
22473 // No operand predicates
22474 GIM_CheckIsSafeToFold, /*NumInsns*/1,
22475 // (intrinsic_wo_chain:{ *:[v8f16] } 3280:{ *:[iPTR] }, 1:{ *:[i32] }, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$scale) => (MVE_VCVTf16u16_fix:{ *:[v8f16] } MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$scale)
22476 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
22477 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
22478 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
22479 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCVTf16u16_fix),
22480 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
22481 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
22482 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // scale
22483 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
22484 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22485 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22486 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
22487 GIR_RootConstrainSelectedInstOperands,
22488 // GIR_Coverage, 4161,
22489 GIR_EraseRootFromParent_Done,
22490 // Label 1303: @60116
22491 GIM_Try, /*On fail goto*//*Label 1304*/ GIMT_Encode4(60203), // Rule ID 4163 //
22492 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
22493 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vcvt_fix),
22494 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
22495 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
22496 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
22497 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
22498 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22499 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
22500 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22501 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
22502 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
22503 // MIs[1] Operand 1
22504 // No operand predicates
22505 GIM_CheckIsSafeToFold, /*NumInsns*/1,
22506 // (intrinsic_wo_chain:{ *:[v8i16] } 3280:{ *:[iPTR] }, 1:{ *:[i32] }, MQPR:{ *:[v8f16] }:$Qm, (imm:{ *:[i32] }):$scale) => (MVE_VCVTu16f16_fix:{ *:[v8i16] } MQPR:{ *:[v8f16] }:$Qm, (imm:{ *:[i32] }):$scale)
22507 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
22508 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
22509 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
22510 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCVTu16f16_fix),
22511 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
22512 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
22513 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // scale
22514 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
22515 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22516 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22517 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
22518 GIR_RootConstrainSelectedInstOperands,
22519 // GIR_Coverage, 4163,
22520 GIR_EraseRootFromParent_Done,
22521 // Label 1304: @60203
22522 GIM_Try, /*On fail goto*//*Label 1305*/ GIMT_Encode4(60290), // Rule ID 4165 //
22523 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
22524 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vcvt_fix),
22525 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
22526 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
22527 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
22528 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
22529 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22530 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
22531 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22532 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
22533 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
22534 // MIs[1] Operand 1
22535 // No operand predicates
22536 GIM_CheckIsSafeToFold, /*NumInsns*/1,
22537 // (intrinsic_wo_chain:{ *:[v4f32] } 3280:{ *:[iPTR] }, 0:{ *:[i32] }, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$scale) => (MVE_VCVTf32s32_fix:{ *:[v4f32] } MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$scale)
22538 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
22539 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
22540 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
22541 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCVTf32s32_fix),
22542 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
22543 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
22544 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // scale
22545 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
22546 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22547 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22548 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
22549 GIR_RootConstrainSelectedInstOperands,
22550 // GIR_Coverage, 4165,
22551 GIR_EraseRootFromParent_Done,
22552 // Label 1305: @60290
22553 GIM_Try, /*On fail goto*//*Label 1306*/ GIMT_Encode4(60377), // Rule ID 4167 //
22554 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
22555 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vcvt_fix),
22556 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
22557 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
22558 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
22559 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
22560 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22561 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
22562 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22563 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
22564 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
22565 // MIs[1] Operand 1
22566 // No operand predicates
22567 GIM_CheckIsSafeToFold, /*NumInsns*/1,
22568 // (intrinsic_wo_chain:{ *:[v4i32] } 3280:{ *:[iPTR] }, 0:{ *:[i32] }, MQPR:{ *:[v4f32] }:$Qm, (imm:{ *:[i32] }):$scale) => (MVE_VCVTs32f32_fix:{ *:[v4i32] } MQPR:{ *:[v4f32] }:$Qm, (imm:{ *:[i32] }):$scale)
22569 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
22570 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
22571 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
22572 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCVTs32f32_fix),
22573 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
22574 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
22575 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // scale
22576 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
22577 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22578 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22579 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
22580 GIR_RootConstrainSelectedInstOperands,
22581 // GIR_Coverage, 4167,
22582 GIR_EraseRootFromParent_Done,
22583 // Label 1306: @60377
22584 GIM_Try, /*On fail goto*//*Label 1307*/ GIMT_Encode4(60464), // Rule ID 4169 //
22585 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
22586 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vcvt_fix),
22587 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
22588 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
22589 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
22590 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
22591 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22592 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
22593 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22594 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
22595 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
22596 // MIs[1] Operand 1
22597 // No operand predicates
22598 GIM_CheckIsSafeToFold, /*NumInsns*/1,
22599 // (intrinsic_wo_chain:{ *:[v4f32] } 3280:{ *:[iPTR] }, 1:{ *:[i32] }, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$scale) => (MVE_VCVTf32u32_fix:{ *:[v4f32] } MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$scale)
22600 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
22601 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
22602 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
22603 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCVTf32u32_fix),
22604 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
22605 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
22606 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // scale
22607 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
22608 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22609 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22610 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
22611 GIR_RootConstrainSelectedInstOperands,
22612 // GIR_Coverage, 4169,
22613 GIR_EraseRootFromParent_Done,
22614 // Label 1307: @60464
22615 GIM_Try, /*On fail goto*//*Label 1308*/ GIMT_Encode4(60551), // Rule ID 4171 //
22616 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
22617 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vcvt_fix),
22618 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
22619 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
22620 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
22621 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
22622 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22623 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
22624 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22625 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
22626 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
22627 // MIs[1] Operand 1
22628 // No operand predicates
22629 GIM_CheckIsSafeToFold, /*NumInsns*/1,
22630 // (intrinsic_wo_chain:{ *:[v4i32] } 3280:{ *:[iPTR] }, 1:{ *:[i32] }, MQPR:{ *:[v4f32] }:$Qm, (imm:{ *:[i32] }):$scale) => (MVE_VCVTu32f32_fix:{ *:[v4i32] } MQPR:{ *:[v4f32] }:$Qm, (imm:{ *:[i32] }):$scale)
22631 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
22632 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
22633 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
22634 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCVTu32f32_fix),
22635 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
22636 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
22637 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // scale
22638 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
22639 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22640 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22641 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
22642 GIR_RootConstrainSelectedInstOperands,
22643 // GIR_Coverage, 4171,
22644 GIR_EraseRootFromParent_Done,
22645 // Label 1308: @60551
22646 GIM_Try, /*On fail goto*//*Label 1309*/ GIMT_Encode4(60618), // Rule ID 3218 //
22647 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
22648 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_minv),
22649 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
22650 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
22651 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
22652 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
22653 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
22654 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
22655 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22656 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
22657 // (intrinsic_wo_chain:{ *:[i32] } 3227:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v16i8] }:$vec, 0:{ *:[i32] }) => (MVE_VMINVs8:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v16i8] }:$vec)
22658 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMINVs8),
22659 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
22660 GIR_RootToRootCopy, /*OpIdx*/2, // prev
22661 GIR_RootToRootCopy, /*OpIdx*/3, // vec
22662 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
22663 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22664 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22665 GIR_RootConstrainSelectedInstOperands,
22666 // GIR_Coverage, 3218,
22667 GIR_EraseRootFromParent_Done,
22668 // Label 1309: @60618
22669 GIM_Try, /*On fail goto*//*Label 1310*/ GIMT_Encode4(60685), // Rule ID 3220 //
22670 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
22671 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_minv),
22672 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
22673 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
22674 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
22675 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
22676 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
22677 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
22678 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22679 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
22680 // (intrinsic_wo_chain:{ *:[i32] } 3227:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v8i16] }:$vec, 0:{ *:[i32] }) => (MVE_VMINVs16:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v8i16] }:$vec)
22681 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMINVs16),
22682 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
22683 GIR_RootToRootCopy, /*OpIdx*/2, // prev
22684 GIR_RootToRootCopy, /*OpIdx*/3, // vec
22685 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
22686 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22687 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22688 GIR_RootConstrainSelectedInstOperands,
22689 // GIR_Coverage, 3220,
22690 GIR_EraseRootFromParent_Done,
22691 // Label 1310: @60685
22692 GIM_Try, /*On fail goto*//*Label 1311*/ GIMT_Encode4(60752), // Rule ID 3222 //
22693 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
22694 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_minv),
22695 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
22696 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
22697 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
22698 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
22699 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
22700 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
22701 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22702 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
22703 // (intrinsic_wo_chain:{ *:[i32] } 3227:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v4i32] }:$vec, 0:{ *:[i32] }) => (MVE_VMINVs32:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v4i32] }:$vec)
22704 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMINVs32),
22705 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
22706 GIR_RootToRootCopy, /*OpIdx*/2, // prev
22707 GIR_RootToRootCopy, /*OpIdx*/3, // vec
22708 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
22709 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22710 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22711 GIR_RootConstrainSelectedInstOperands,
22712 // GIR_Coverage, 3222,
22713 GIR_EraseRootFromParent_Done,
22714 // Label 1311: @60752
22715 GIM_Try, /*On fail goto*//*Label 1312*/ GIMT_Encode4(60819), // Rule ID 3224 //
22716 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
22717 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_minv),
22718 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
22719 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
22720 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
22721 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
22722 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
22723 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
22724 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22725 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
22726 // (intrinsic_wo_chain:{ *:[i32] } 3227:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v16i8] }:$vec, 1:{ *:[i32] }) => (MVE_VMINVu8:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v16i8] }:$vec)
22727 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMINVu8),
22728 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
22729 GIR_RootToRootCopy, /*OpIdx*/2, // prev
22730 GIR_RootToRootCopy, /*OpIdx*/3, // vec
22731 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
22732 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22733 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22734 GIR_RootConstrainSelectedInstOperands,
22735 // GIR_Coverage, 3224,
22736 GIR_EraseRootFromParent_Done,
22737 // Label 1312: @60819
22738 GIM_Try, /*On fail goto*//*Label 1313*/ GIMT_Encode4(60886), // Rule ID 3226 //
22739 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
22740 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_minv),
22741 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
22742 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
22743 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
22744 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
22745 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
22746 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
22747 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22748 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
22749 // (intrinsic_wo_chain:{ *:[i32] } 3227:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v8i16] }:$vec, 1:{ *:[i32] }) => (MVE_VMINVu16:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v8i16] }:$vec)
22750 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMINVu16),
22751 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
22752 GIR_RootToRootCopy, /*OpIdx*/2, // prev
22753 GIR_RootToRootCopy, /*OpIdx*/3, // vec
22754 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
22755 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22756 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22757 GIR_RootConstrainSelectedInstOperands,
22758 // GIR_Coverage, 3226,
22759 GIR_EraseRootFromParent_Done,
22760 // Label 1313: @60886
22761 GIM_Try, /*On fail goto*//*Label 1314*/ GIMT_Encode4(60953), // Rule ID 3228 //
22762 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
22763 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_minv),
22764 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
22765 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
22766 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
22767 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
22768 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
22769 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
22770 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22771 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
22772 // (intrinsic_wo_chain:{ *:[i32] } 3227:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v4i32] }:$vec, 1:{ *:[i32] }) => (MVE_VMINVu32:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v4i32] }:$vec)
22773 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMINVu32),
22774 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
22775 GIR_RootToRootCopy, /*OpIdx*/2, // prev
22776 GIR_RootToRootCopy, /*OpIdx*/3, // vec
22777 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
22778 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22779 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22780 GIR_RootConstrainSelectedInstOperands,
22781 // GIR_Coverage, 3228,
22782 GIR_EraseRootFromParent_Done,
22783 // Label 1314: @60953
22784 GIM_Try, /*On fail goto*//*Label 1315*/ GIMT_Encode4(61020), // Rule ID 3230 //
22785 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
22786 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_maxv),
22787 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
22788 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
22789 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
22790 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
22791 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
22792 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
22793 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22794 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
22795 // (intrinsic_wo_chain:{ *:[i32] } 3218:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v16i8] }:$vec, 0:{ *:[i32] }) => (MVE_VMAXVs8:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v16i8] }:$vec)
22796 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMAXVs8),
22797 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
22798 GIR_RootToRootCopy, /*OpIdx*/2, // prev
22799 GIR_RootToRootCopy, /*OpIdx*/3, // vec
22800 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
22801 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22802 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22803 GIR_RootConstrainSelectedInstOperands,
22804 // GIR_Coverage, 3230,
22805 GIR_EraseRootFromParent_Done,
22806 // Label 1315: @61020
22807 GIM_Try, /*On fail goto*//*Label 1316*/ GIMT_Encode4(61087), // Rule ID 3232 //
22808 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
22809 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_maxv),
22810 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
22811 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
22812 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
22813 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
22814 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
22815 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
22816 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22817 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
22818 // (intrinsic_wo_chain:{ *:[i32] } 3218:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v8i16] }:$vec, 0:{ *:[i32] }) => (MVE_VMAXVs16:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v8i16] }:$vec)
22819 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMAXVs16),
22820 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
22821 GIR_RootToRootCopy, /*OpIdx*/2, // prev
22822 GIR_RootToRootCopy, /*OpIdx*/3, // vec
22823 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
22824 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22825 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22826 GIR_RootConstrainSelectedInstOperands,
22827 // GIR_Coverage, 3232,
22828 GIR_EraseRootFromParent_Done,
22829 // Label 1316: @61087
22830 GIM_Try, /*On fail goto*//*Label 1317*/ GIMT_Encode4(61154), // Rule ID 3234 //
22831 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
22832 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_maxv),
22833 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
22834 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
22835 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
22836 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
22837 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
22838 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
22839 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22840 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
22841 // (intrinsic_wo_chain:{ *:[i32] } 3218:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v4i32] }:$vec, 0:{ *:[i32] }) => (MVE_VMAXVs32:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v4i32] }:$vec)
22842 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMAXVs32),
22843 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
22844 GIR_RootToRootCopy, /*OpIdx*/2, // prev
22845 GIR_RootToRootCopy, /*OpIdx*/3, // vec
22846 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
22847 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22848 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22849 GIR_RootConstrainSelectedInstOperands,
22850 // GIR_Coverage, 3234,
22851 GIR_EraseRootFromParent_Done,
22852 // Label 1317: @61154
22853 GIM_Try, /*On fail goto*//*Label 1318*/ GIMT_Encode4(61221), // Rule ID 3236 //
22854 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
22855 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_maxv),
22856 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
22857 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
22858 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
22859 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
22860 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
22861 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
22862 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22863 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
22864 // (intrinsic_wo_chain:{ *:[i32] } 3218:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v16i8] }:$vec, 1:{ *:[i32] }) => (MVE_VMAXVu8:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v16i8] }:$vec)
22865 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMAXVu8),
22866 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
22867 GIR_RootToRootCopy, /*OpIdx*/2, // prev
22868 GIR_RootToRootCopy, /*OpIdx*/3, // vec
22869 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
22870 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22871 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22872 GIR_RootConstrainSelectedInstOperands,
22873 // GIR_Coverage, 3236,
22874 GIR_EraseRootFromParent_Done,
22875 // Label 1318: @61221
22876 GIM_Try, /*On fail goto*//*Label 1319*/ GIMT_Encode4(61288), // Rule ID 3238 //
22877 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
22878 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_maxv),
22879 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
22880 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
22881 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
22882 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
22883 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
22884 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
22885 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22886 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
22887 // (intrinsic_wo_chain:{ *:[i32] } 3218:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v8i16] }:$vec, 1:{ *:[i32] }) => (MVE_VMAXVu16:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v8i16] }:$vec)
22888 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMAXVu16),
22889 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
22890 GIR_RootToRootCopy, /*OpIdx*/2, // prev
22891 GIR_RootToRootCopy, /*OpIdx*/3, // vec
22892 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
22893 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22894 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22895 GIR_RootConstrainSelectedInstOperands,
22896 // GIR_Coverage, 3238,
22897 GIR_EraseRootFromParent_Done,
22898 // Label 1319: @61288
22899 GIM_Try, /*On fail goto*//*Label 1320*/ GIMT_Encode4(61355), // Rule ID 3240 //
22900 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
22901 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_maxv),
22902 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
22903 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
22904 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
22905 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
22906 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
22907 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
22908 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22909 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
22910 // (intrinsic_wo_chain:{ *:[i32] } 3218:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v4i32] }:$vec, 1:{ *:[i32] }) => (MVE_VMAXVu32:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v4i32] }:$vec)
22911 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMAXVu32),
22912 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
22913 GIR_RootToRootCopy, /*OpIdx*/2, // prev
22914 GIR_RootToRootCopy, /*OpIdx*/3, // vec
22915 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
22916 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22917 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22918 GIR_RootConstrainSelectedInstOperands,
22919 // GIR_Coverage, 3240,
22920 GIR_EraseRootFromParent_Done,
22921 // Label 1320: @61355
22922 GIM_Try, /*On fail goto*//*Label 1321*/ GIMT_Encode4(61435), // Rule ID 3645 //
22923 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
22924 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vabd),
22925 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
22926 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
22927 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
22928 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
22929 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22930 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22931 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22932 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
22933 // (intrinsic_wo_chain:{ *:[v16i8] } 3264:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 0:{ *:[i32] }) => (MVE_VABDs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
22934 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
22935 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
22936 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
22937 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VABDs8),
22938 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
22939 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
22940 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
22941 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
22942 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22943 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22944 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
22945 GIR_RootConstrainSelectedInstOperands,
22946 // GIR_Coverage, 3645,
22947 GIR_EraseRootFromParent_Done,
22948 // Label 1321: @61435
22949 GIM_Try, /*On fail goto*//*Label 1322*/ GIMT_Encode4(61515), // Rule ID 3652 //
22950 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
22951 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vabd),
22952 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
22953 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
22954 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
22955 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
22956 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22957 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22958 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22959 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
22960 // (intrinsic_wo_chain:{ *:[v8i16] } 3264:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 0:{ *:[i32] }) => (MVE_VABDs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
22961 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
22962 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
22963 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
22964 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VABDs16),
22965 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
22966 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
22967 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
22968 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
22969 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22970 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22971 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
22972 GIR_RootConstrainSelectedInstOperands,
22973 // GIR_Coverage, 3652,
22974 GIR_EraseRootFromParent_Done,
22975 // Label 1322: @61515
22976 GIM_Try, /*On fail goto*//*Label 1323*/ GIMT_Encode4(61595), // Rule ID 3656 //
22977 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
22978 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vabd),
22979 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
22980 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
22981 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
22982 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
22983 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22984 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22985 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
22986 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
22987 // (intrinsic_wo_chain:{ *:[v4i32] } 3264:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 0:{ *:[i32] }) => (MVE_VABDs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
22988 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
22989 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
22990 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
22991 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VABDs32),
22992 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
22993 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
22994 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
22995 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
22996 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22997 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
22998 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
22999 GIR_RootConstrainSelectedInstOperands,
23000 // GIR_Coverage, 3656,
23001 GIR_EraseRootFromParent_Done,
23002 // Label 1323: @61595
23003 GIM_Try, /*On fail goto*//*Label 1324*/ GIMT_Encode4(61675), // Rule ID 3660 //
23004 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
23005 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vabd),
23006 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
23007 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
23008 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
23009 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
23010 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23011 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23012 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23013 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
23014 // (intrinsic_wo_chain:{ *:[v16i8] } 3264:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }) => (MVE_VABDu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
23015 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
23016 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
23017 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
23018 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VABDu8),
23019 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
23020 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
23021 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
23022 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
23023 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23024 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23025 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
23026 GIR_RootConstrainSelectedInstOperands,
23027 // GIR_Coverage, 3660,
23028 GIR_EraseRootFromParent_Done,
23029 // Label 1324: @61675
23030 GIM_Try, /*On fail goto*//*Label 1325*/ GIMT_Encode4(61755), // Rule ID 3664 //
23031 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
23032 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vabd),
23033 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
23034 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
23035 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
23036 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
23037 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23038 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23039 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23040 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
23041 // (intrinsic_wo_chain:{ *:[v8i16] } 3264:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }) => (MVE_VABDu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
23042 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
23043 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
23044 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
23045 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VABDu16),
23046 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
23047 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
23048 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
23049 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
23050 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23051 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23052 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
23053 GIR_RootConstrainSelectedInstOperands,
23054 // GIR_Coverage, 3664,
23055 GIR_EraseRootFromParent_Done,
23056 // Label 1325: @61755
23057 GIM_Try, /*On fail goto*//*Label 1326*/ GIMT_Encode4(61835), // Rule ID 3668 //
23058 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
23059 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vabd),
23060 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
23061 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
23062 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
23063 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
23064 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23065 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23066 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23067 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
23068 // (intrinsic_wo_chain:{ *:[v4i32] } 3264:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }) => (MVE_VABDu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
23069 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
23070 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
23071 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
23072 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VABDu32),
23073 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
23074 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
23075 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
23076 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
23077 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23078 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23079 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
23080 GIR_RootConstrainSelectedInstOperands,
23081 // GIR_Coverage, 3668,
23082 GIR_EraseRootFromParent_Done,
23083 // Label 1326: @61835
23084 GIM_Try, /*On fail goto*//*Label 1327*/ GIMT_Encode4(61915), // Rule ID 3669 //
23085 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
23086 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vrhadd),
23087 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
23088 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
23089 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
23090 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
23091 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23092 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23093 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23094 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
23095 // (intrinsic_wo_chain:{ *:[v16i8] } 3350:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 0:{ *:[i32] }) => (MVE_VRHADDs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
23096 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
23097 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
23098 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
23099 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRHADDs8),
23100 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
23101 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
23102 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
23103 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
23104 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23105 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23106 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
23107 GIR_RootConstrainSelectedInstOperands,
23108 // GIR_Coverage, 3669,
23109 GIR_EraseRootFromParent_Done,
23110 // Label 1327: @61915
23111 GIM_Try, /*On fail goto*//*Label 1328*/ GIMT_Encode4(61995), // Rule ID 3676 //
23112 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
23113 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vrhadd),
23114 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
23115 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
23116 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
23117 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
23118 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23119 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23120 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23121 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
23122 // (intrinsic_wo_chain:{ *:[v8i16] } 3350:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 0:{ *:[i32] }) => (MVE_VRHADDs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
23123 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
23124 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
23125 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
23126 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRHADDs16),
23127 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
23128 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
23129 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
23130 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
23131 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23132 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23133 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
23134 GIR_RootConstrainSelectedInstOperands,
23135 // GIR_Coverage, 3676,
23136 GIR_EraseRootFromParent_Done,
23137 // Label 1328: @61995
23138 GIM_Try, /*On fail goto*//*Label 1329*/ GIMT_Encode4(62075), // Rule ID 3680 //
23139 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
23140 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vrhadd),
23141 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
23142 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
23143 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
23144 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
23145 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23146 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23147 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23148 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
23149 // (intrinsic_wo_chain:{ *:[v4i32] } 3350:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 0:{ *:[i32] }) => (MVE_VRHADDs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
23150 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
23151 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
23152 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
23153 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRHADDs32),
23154 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
23155 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
23156 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
23157 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
23158 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23159 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23160 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
23161 GIR_RootConstrainSelectedInstOperands,
23162 // GIR_Coverage, 3680,
23163 GIR_EraseRootFromParent_Done,
23164 // Label 1329: @62075
23165 GIM_Try, /*On fail goto*//*Label 1330*/ GIMT_Encode4(62155), // Rule ID 3684 //
23166 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
23167 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vrhadd),
23168 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
23169 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
23170 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
23171 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
23172 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23173 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23174 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23175 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
23176 // (intrinsic_wo_chain:{ *:[v16i8] } 3350:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }) => (MVE_VRHADDu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
23177 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
23178 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
23179 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
23180 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRHADDu8),
23181 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
23182 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
23183 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
23184 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
23185 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23186 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23187 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
23188 GIR_RootConstrainSelectedInstOperands,
23189 // GIR_Coverage, 3684,
23190 GIR_EraseRootFromParent_Done,
23191 // Label 1330: @62155
23192 GIM_Try, /*On fail goto*//*Label 1331*/ GIMT_Encode4(62235), // Rule ID 3688 //
23193 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
23194 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vrhadd),
23195 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
23196 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
23197 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
23198 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
23199 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23200 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23201 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23202 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
23203 // (intrinsic_wo_chain:{ *:[v8i16] } 3350:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }) => (MVE_VRHADDu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
23204 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
23205 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
23206 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
23207 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRHADDu16),
23208 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
23209 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
23210 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
23211 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
23212 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23213 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23214 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
23215 GIR_RootConstrainSelectedInstOperands,
23216 // GIR_Coverage, 3688,
23217 GIR_EraseRootFromParent_Done,
23218 // Label 1331: @62235
23219 GIM_Try, /*On fail goto*//*Label 1332*/ GIMT_Encode4(62315), // Rule ID 3692 //
23220 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
23221 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vrhadd),
23222 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
23223 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
23224 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
23225 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
23226 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23227 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23228 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23229 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
23230 // (intrinsic_wo_chain:{ *:[v4i32] } 3350:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }) => (MVE_VRHADDu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
23231 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
23232 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
23233 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
23234 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRHADDu32),
23235 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
23236 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
23237 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
23238 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
23239 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23240 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23241 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
23242 GIR_RootConstrainSelectedInstOperands,
23243 // GIR_Coverage, 3692,
23244 GIR_EraseRootFromParent_Done,
23245 // Label 1332: @62315
23246 GIM_Try, /*On fail goto*//*Label 1333*/ GIMT_Encode4(62395), // Rule ID 3705 //
23247 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
23248 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vhadd),
23249 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
23250 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
23251 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
23252 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
23253 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23254 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23255 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23256 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
23257 // (intrinsic_wo_chain:{ *:[v16i8] } 3299:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 0:{ *:[i32] }) => (MVE_VHADDs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
23258 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
23259 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
23260 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
23261 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VHADDs8),
23262 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
23263 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
23264 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
23265 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
23266 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23267 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23268 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
23269 GIR_RootConstrainSelectedInstOperands,
23270 // GIR_Coverage, 3705,
23271 GIR_EraseRootFromParent_Done,
23272 // Label 1333: @62395
23273 GIM_Try, /*On fail goto*//*Label 1334*/ GIMT_Encode4(62475), // Rule ID 3713 //
23274 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
23275 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vhadd),
23276 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
23277 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
23278 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
23279 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
23280 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23281 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23282 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23283 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
23284 // (intrinsic_wo_chain:{ *:[v8i16] } 3299:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 0:{ *:[i32] }) => (MVE_VHADDs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
23285 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
23286 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
23287 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
23288 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VHADDs16),
23289 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
23290 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
23291 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
23292 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
23293 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23294 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23295 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
23296 GIR_RootConstrainSelectedInstOperands,
23297 // GIR_Coverage, 3713,
23298 GIR_EraseRootFromParent_Done,
23299 // Label 1334: @62475
23300 GIM_Try, /*On fail goto*//*Label 1335*/ GIMT_Encode4(62555), // Rule ID 3718 //
23301 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
23302 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vhadd),
23303 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
23304 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
23305 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
23306 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
23307 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23308 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23309 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23310 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
23311 // (intrinsic_wo_chain:{ *:[v4i32] } 3299:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 0:{ *:[i32] }) => (MVE_VHADDs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
23312 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
23313 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
23314 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
23315 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VHADDs32),
23316 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
23317 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
23318 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
23319 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
23320 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23321 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23322 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
23323 GIR_RootConstrainSelectedInstOperands,
23324 // GIR_Coverage, 3718,
23325 GIR_EraseRootFromParent_Done,
23326 // Label 1335: @62555
23327 GIM_Try, /*On fail goto*//*Label 1336*/ GIMT_Encode4(62635), // Rule ID 3723 //
23328 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
23329 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vhadd),
23330 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
23331 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
23332 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
23333 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
23334 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23335 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23336 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23337 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
23338 // (intrinsic_wo_chain:{ *:[v16i8] } 3299:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }) => (MVE_VHADDu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
23339 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
23340 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
23341 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
23342 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VHADDu8),
23343 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
23344 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
23345 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
23346 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
23347 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23348 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23349 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
23350 GIR_RootConstrainSelectedInstOperands,
23351 // GIR_Coverage, 3723,
23352 GIR_EraseRootFromParent_Done,
23353 // Label 1336: @62635
23354 GIM_Try, /*On fail goto*//*Label 1337*/ GIMT_Encode4(62715), // Rule ID 3728 //
23355 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
23356 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vhadd),
23357 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
23358 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
23359 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
23360 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
23361 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23362 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23363 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23364 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
23365 // (intrinsic_wo_chain:{ *:[v8i16] } 3299:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }) => (MVE_VHADDu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
23366 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
23367 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
23368 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
23369 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VHADDu16),
23370 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
23371 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
23372 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
23373 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
23374 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23375 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23376 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
23377 GIR_RootConstrainSelectedInstOperands,
23378 // GIR_Coverage, 3728,
23379 GIR_EraseRootFromParent_Done,
23380 // Label 1337: @62715
23381 GIM_Try, /*On fail goto*//*Label 1338*/ GIMT_Encode4(62795), // Rule ID 3733 //
23382 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
23383 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vhadd),
23384 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
23385 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
23386 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
23387 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
23388 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23389 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23390 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23391 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
23392 // (intrinsic_wo_chain:{ *:[v4i32] } 3299:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }) => (MVE_VHADDu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
23393 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
23394 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
23395 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
23396 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VHADDu32),
23397 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
23398 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
23399 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
23400 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
23401 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23402 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23403 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
23404 GIR_RootConstrainSelectedInstOperands,
23405 // GIR_Coverage, 3733,
23406 GIR_EraseRootFromParent_Done,
23407 // Label 1338: @62795
23408 GIM_Try, /*On fail goto*//*Label 1339*/ GIMT_Encode4(62875), // Rule ID 3735 //
23409 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
23410 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vhsub),
23411 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
23412 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
23413 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
23414 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
23415 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23416 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23417 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23418 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
23419 // (intrinsic_wo_chain:{ *:[v16i8] } 3300:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 0:{ *:[i32] }) => (MVE_VHSUBs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
23420 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
23421 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
23422 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
23423 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VHSUBs8),
23424 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
23425 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
23426 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
23427 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
23428 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23429 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23430 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
23431 GIR_RootConstrainSelectedInstOperands,
23432 // GIR_Coverage, 3735,
23433 GIR_EraseRootFromParent_Done,
23434 // Label 1339: @62875
23435 GIM_Try, /*On fail goto*//*Label 1340*/ GIMT_Encode4(62955), // Rule ID 3738 //
23436 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
23437 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vhsub),
23438 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
23439 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
23440 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
23441 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
23442 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23443 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23444 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23445 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
23446 // (intrinsic_wo_chain:{ *:[v8i16] } 3300:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 0:{ *:[i32] }) => (MVE_VHSUBs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
23447 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
23448 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
23449 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
23450 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VHSUBs16),
23451 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
23452 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
23453 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
23454 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
23455 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23456 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23457 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
23458 GIR_RootConstrainSelectedInstOperands,
23459 // GIR_Coverage, 3738,
23460 GIR_EraseRootFromParent_Done,
23461 // Label 1340: @62955
23462 GIM_Try, /*On fail goto*//*Label 1341*/ GIMT_Encode4(63035), // Rule ID 3741 //
23463 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
23464 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vhsub),
23465 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
23466 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
23467 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
23468 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
23469 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23470 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23471 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23472 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
23473 // (intrinsic_wo_chain:{ *:[v4i32] } 3300:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 0:{ *:[i32] }) => (MVE_VHSUBs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
23474 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
23475 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
23476 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
23477 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VHSUBs32),
23478 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
23479 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
23480 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
23481 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
23482 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23483 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23484 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
23485 GIR_RootConstrainSelectedInstOperands,
23486 // GIR_Coverage, 3741,
23487 GIR_EraseRootFromParent_Done,
23488 // Label 1341: @63035
23489 GIM_Try, /*On fail goto*//*Label 1342*/ GIMT_Encode4(63115), // Rule ID 3744 //
23490 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
23491 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vhsub),
23492 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
23493 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
23494 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
23495 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
23496 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23497 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23498 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23499 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
23500 // (intrinsic_wo_chain:{ *:[v16i8] } 3300:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }) => (MVE_VHSUBu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
23501 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
23502 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
23503 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
23504 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VHSUBu8),
23505 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
23506 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
23507 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
23508 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
23509 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23510 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23511 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
23512 GIR_RootConstrainSelectedInstOperands,
23513 // GIR_Coverage, 3744,
23514 GIR_EraseRootFromParent_Done,
23515 // Label 1342: @63115
23516 GIM_Try, /*On fail goto*//*Label 1343*/ GIMT_Encode4(63195), // Rule ID 3747 //
23517 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
23518 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vhsub),
23519 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
23520 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
23521 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
23522 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
23523 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23524 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23525 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23526 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
23527 // (intrinsic_wo_chain:{ *:[v8i16] } 3300:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }) => (MVE_VHSUBu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
23528 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
23529 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
23530 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
23531 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VHSUBu16),
23532 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
23533 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
23534 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
23535 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
23536 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23537 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23538 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
23539 GIR_RootConstrainSelectedInstOperands,
23540 // GIR_Coverage, 3747,
23541 GIR_EraseRootFromParent_Done,
23542 // Label 1343: @63195
23543 GIM_Try, /*On fail goto*//*Label 1344*/ GIMT_Encode4(63275), // Rule ID 3750 //
23544 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
23545 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vhsub),
23546 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
23547 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
23548 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
23549 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
23550 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23551 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23552 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23553 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
23554 // (intrinsic_wo_chain:{ *:[v4i32] } 3300:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }) => (MVE_VHSUBu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
23555 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
23556 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
23557 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
23558 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VHSUBu32),
23559 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
23560 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
23561 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
23562 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
23563 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23564 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23565 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
23566 GIR_RootConstrainSelectedInstOperands,
23567 // GIR_Coverage, 3750,
23568 GIR_EraseRootFromParent_Done,
23569 // Label 1344: @63275
23570 GIM_Try, /*On fail goto*//*Label 1345*/ GIMT_Encode4(63355), // Rule ID 4151 //
23571 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
23572 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vabd),
23573 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
23574 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
23575 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
23576 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
23577 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23578 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23579 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23580 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
23581 // (intrinsic_wo_chain:{ *:[v4f32] } 3264:{ *:[iPTR] }, MQPR:{ *:[v4f32] }:$Qm, MQPR:{ *:[v4f32] }:$Qn, 0:{ *:[i32] }) => (MVE_VABDf32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qm, MQPR:{ *:[v4f32] }:$Qn)
23582 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
23583 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
23584 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
23585 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VABDf32),
23586 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
23587 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
23588 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
23589 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
23590 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23591 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23592 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
23593 GIR_RootConstrainSelectedInstOperands,
23594 // GIR_Coverage, 4151,
23595 GIR_EraseRootFromParent_Done,
23596 // Label 1345: @63355
23597 GIM_Try, /*On fail goto*//*Label 1346*/ GIMT_Encode4(63435), // Rule ID 4153 //
23598 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
23599 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vabd),
23600 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
23601 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
23602 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
23603 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
23604 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23605 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23606 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23607 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
23608 // (intrinsic_wo_chain:{ *:[v8f16] } 3264:{ *:[iPTR] }, MQPR:{ *:[v8f16] }:$Qm, MQPR:{ *:[v8f16] }:$Qn, 0:{ *:[i32] }) => (MVE_VABDf16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qm, MQPR:{ *:[v8f16] }:$Qn)
23609 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
23610 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
23611 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
23612 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VABDf16),
23613 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
23614 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
23615 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
23616 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
23617 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23618 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23619 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
23620 GIR_RootConstrainSelectedInstOperands,
23621 // GIR_Coverage, 4153,
23622 GIR_EraseRootFromParent_Done,
23623 // Label 1346: @63435
23624 GIM_Try, /*On fail goto*//*Label 1347*/ GIMT_Encode4(63515), // Rule ID 4526 //
23625 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
23626 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmull_poly),
23627 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
23628 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
23629 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
23630 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
23631 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23632 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23633 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23634 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
23635 // (intrinsic_wo_chain:{ *:[v8i16] } 3327:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 0:{ *:[i32] }) => (MVE_VMULLBp8:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
23636 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
23637 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
23638 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
23639 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMULLBp8),
23640 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
23641 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
23642 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
23643 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
23644 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23645 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23646 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
23647 GIR_RootConstrainSelectedInstOperands,
23648 // GIR_Coverage, 4526,
23649 GIR_EraseRootFromParent_Done,
23650 // Label 1347: @63515
23651 GIM_Try, /*On fail goto*//*Label 1348*/ GIMT_Encode4(63595), // Rule ID 4528 //
23652 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
23653 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmull_poly),
23654 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
23655 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
23656 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
23657 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
23658 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23659 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23660 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23661 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
23662 // (intrinsic_wo_chain:{ *:[v8i16] } 3327:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }) => (MVE_VMULLTp8:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
23663 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
23664 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
23665 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
23666 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMULLTp8),
23667 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
23668 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
23669 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
23670 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
23671 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23672 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23673 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
23674 GIR_RootConstrainSelectedInstOperands,
23675 // GIR_Coverage, 4528,
23676 GIR_EraseRootFromParent_Done,
23677 // Label 1348: @63595
23678 GIM_Try, /*On fail goto*//*Label 1349*/ GIMT_Encode4(63675), // Rule ID 4530 //
23679 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
23680 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmull_poly),
23681 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
23682 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
23683 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
23684 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
23685 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23686 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23687 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23688 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
23689 // (intrinsic_wo_chain:{ *:[v4i32] } 3327:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 0:{ *:[i32] }) => (MVE_VMULLBp16:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
23690 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
23691 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
23692 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
23693 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMULLBp16),
23694 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
23695 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
23696 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
23697 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
23698 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23699 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23700 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
23701 GIR_RootConstrainSelectedInstOperands,
23702 // GIR_Coverage, 4530,
23703 GIR_EraseRootFromParent_Done,
23704 // Label 1349: @63675
23705 GIM_Try, /*On fail goto*//*Label 1350*/ GIMT_Encode4(63755), // Rule ID 4532 //
23706 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
23707 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmull_poly),
23708 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
23709 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
23710 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
23711 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
23712 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23713 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23714 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23715 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
23716 // (intrinsic_wo_chain:{ *:[v4i32] } 3327:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }) => (MVE_VMULLTp16:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
23717 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
23718 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
23719 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
23720 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMULLTp16),
23721 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
23722 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
23723 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
23724 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
23725 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23726 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23727 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
23728 GIR_RootConstrainSelectedInstOperands,
23729 // GIR_Coverage, 4532,
23730 GIR_EraseRootFromParent_Done,
23731 // Label 1350: @63755
23732 GIM_Try, /*On fail goto*//*Label 1351*/ GIMT_Encode4(63835), // Rule ID 4559 //
23733 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
23734 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmulh),
23735 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
23736 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
23737 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
23738 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
23739 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23740 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23741 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23742 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
23743 // (intrinsic_wo_chain:{ *:[v16i8] } 3325:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 0:{ *:[i32] }) => (MVE_VMULHs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
23744 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
23745 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
23746 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
23747 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMULHs8),
23748 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
23749 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
23750 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
23751 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
23752 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23753 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23754 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
23755 GIR_RootConstrainSelectedInstOperands,
23756 // GIR_Coverage, 4559,
23757 GIR_EraseRootFromParent_Done,
23758 // Label 1351: @63835
23759 GIM_Try, /*On fail goto*//*Label 1352*/ GIMT_Encode4(63915), // Rule ID 4566 //
23760 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
23761 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmulh),
23762 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
23763 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
23764 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
23765 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
23766 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23767 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23768 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23769 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
23770 // (intrinsic_wo_chain:{ *:[v8i16] } 3325:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 0:{ *:[i32] }) => (MVE_VMULHs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
23771 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
23772 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
23773 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
23774 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMULHs16),
23775 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
23776 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
23777 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
23778 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
23779 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23780 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23781 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
23782 GIR_RootConstrainSelectedInstOperands,
23783 // GIR_Coverage, 4566,
23784 GIR_EraseRootFromParent_Done,
23785 // Label 1352: @63915
23786 GIM_Try, /*On fail goto*//*Label 1353*/ GIMT_Encode4(63995), // Rule ID 4570 //
23787 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
23788 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmulh),
23789 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
23790 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
23791 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
23792 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
23793 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23794 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23795 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23796 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
23797 // (intrinsic_wo_chain:{ *:[v4i32] } 3325:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 0:{ *:[i32] }) => (MVE_VMULHs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
23798 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
23799 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
23800 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
23801 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMULHs32),
23802 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
23803 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
23804 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
23805 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
23806 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23807 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23808 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
23809 GIR_RootConstrainSelectedInstOperands,
23810 // GIR_Coverage, 4570,
23811 GIR_EraseRootFromParent_Done,
23812 // Label 1353: @63995
23813 GIM_Try, /*On fail goto*//*Label 1354*/ GIMT_Encode4(64075), // Rule ID 4574 //
23814 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
23815 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmulh),
23816 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
23817 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
23818 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
23819 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
23820 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23821 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23822 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23823 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
23824 // (intrinsic_wo_chain:{ *:[v16i8] } 3325:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }) => (MVE_VMULHu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
23825 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
23826 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
23827 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
23828 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMULHu8),
23829 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
23830 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
23831 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
23832 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
23833 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23834 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23835 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
23836 GIR_RootConstrainSelectedInstOperands,
23837 // GIR_Coverage, 4574,
23838 GIR_EraseRootFromParent_Done,
23839 // Label 1354: @64075
23840 GIM_Try, /*On fail goto*//*Label 1355*/ GIMT_Encode4(64155), // Rule ID 4578 //
23841 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
23842 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmulh),
23843 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
23844 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
23845 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
23846 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
23847 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23848 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23849 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23850 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
23851 // (intrinsic_wo_chain:{ *:[v8i16] } 3325:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }) => (MVE_VMULHu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
23852 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
23853 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
23854 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
23855 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMULHu16),
23856 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
23857 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
23858 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
23859 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
23860 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23861 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23862 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
23863 GIR_RootConstrainSelectedInstOperands,
23864 // GIR_Coverage, 4578,
23865 GIR_EraseRootFromParent_Done,
23866 // Label 1355: @64155
23867 GIM_Try, /*On fail goto*//*Label 1356*/ GIMT_Encode4(64235), // Rule ID 4582 //
23868 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
23869 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmulh),
23870 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
23871 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
23872 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
23873 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
23874 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23875 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23876 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23877 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
23878 // (intrinsic_wo_chain:{ *:[v4i32] } 3325:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }) => (MVE_VMULHu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
23879 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
23880 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
23881 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
23882 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMULHu32),
23883 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
23884 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
23885 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
23886 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
23887 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23888 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23889 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
23890 GIR_RootConstrainSelectedInstOperands,
23891 // GIR_Coverage, 4582,
23892 GIR_EraseRootFromParent_Done,
23893 // Label 1356: @64235
23894 GIM_Try, /*On fail goto*//*Label 1357*/ GIMT_Encode4(64315), // Rule ID 4583 //
23895 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
23896 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vrmulh),
23897 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
23898 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
23899 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
23900 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
23901 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23902 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23903 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23904 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
23905 // (intrinsic_wo_chain:{ *:[v16i8] } 3360:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 0:{ *:[i32] }) => (MVE_VRMULHs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
23906 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
23907 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
23908 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
23909 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRMULHs8),
23910 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
23911 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
23912 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
23913 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
23914 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23915 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23916 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
23917 GIR_RootConstrainSelectedInstOperands,
23918 // GIR_Coverage, 4583,
23919 GIR_EraseRootFromParent_Done,
23920 // Label 1357: @64315
23921 GIM_Try, /*On fail goto*//*Label 1358*/ GIMT_Encode4(64395), // Rule ID 4585 //
23922 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
23923 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vrmulh),
23924 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
23925 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
23926 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
23927 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
23928 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23929 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23930 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23931 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
23932 // (intrinsic_wo_chain:{ *:[v8i16] } 3360:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 0:{ *:[i32] }) => (MVE_VRMULHs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
23933 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
23934 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
23935 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
23936 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRMULHs16),
23937 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
23938 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
23939 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
23940 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
23941 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23942 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23943 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
23944 GIR_RootConstrainSelectedInstOperands,
23945 // GIR_Coverage, 4585,
23946 GIR_EraseRootFromParent_Done,
23947 // Label 1358: @64395
23948 GIM_Try, /*On fail goto*//*Label 1359*/ GIMT_Encode4(64475), // Rule ID 4587 //
23949 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
23950 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vrmulh),
23951 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
23952 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
23953 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
23954 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
23955 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23956 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23957 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23958 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
23959 // (intrinsic_wo_chain:{ *:[v4i32] } 3360:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 0:{ *:[i32] }) => (MVE_VRMULHs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
23960 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
23961 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
23962 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
23963 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRMULHs32),
23964 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
23965 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
23966 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
23967 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
23968 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23969 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23970 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
23971 GIR_RootConstrainSelectedInstOperands,
23972 // GIR_Coverage, 4587,
23973 GIR_EraseRootFromParent_Done,
23974 // Label 1359: @64475
23975 GIM_Try, /*On fail goto*//*Label 1360*/ GIMT_Encode4(64555), // Rule ID 4589 //
23976 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
23977 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vrmulh),
23978 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
23979 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
23980 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
23981 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
23982 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23983 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23984 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
23985 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
23986 // (intrinsic_wo_chain:{ *:[v16i8] } 3360:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }) => (MVE_VRMULHu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
23987 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
23988 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
23989 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
23990 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRMULHu8),
23991 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
23992 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
23993 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
23994 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
23995 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23996 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
23997 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
23998 GIR_RootConstrainSelectedInstOperands,
23999 // GIR_Coverage, 4589,
24000 GIR_EraseRootFromParent_Done,
24001 // Label 1360: @64555
24002 GIM_Try, /*On fail goto*//*Label 1361*/ GIMT_Encode4(64635), // Rule ID 4591 //
24003 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
24004 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vrmulh),
24005 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
24006 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
24007 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
24008 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
24009 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24010 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24011 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24012 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
24013 // (intrinsic_wo_chain:{ *:[v8i16] } 3360:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }) => (MVE_VRMULHu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
24014 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
24015 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
24016 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
24017 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRMULHu16),
24018 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
24019 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
24020 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
24021 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
24022 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
24023 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
24024 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
24025 GIR_RootConstrainSelectedInstOperands,
24026 // GIR_Coverage, 4591,
24027 GIR_EraseRootFromParent_Done,
24028 // Label 1361: @64635
24029 GIM_Try, /*On fail goto*//*Label 1362*/ GIMT_Encode4(64715), // Rule ID 4593 //
24030 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
24031 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vrmulh),
24032 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
24033 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
24034 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
24035 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
24036 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24037 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24038 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24039 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
24040 // (intrinsic_wo_chain:{ *:[v4i32] } 3360:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }) => (MVE_VRMULHu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
24041 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
24042 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
24043 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
24044 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRMULHu32),
24045 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
24046 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
24047 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
24048 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
24049 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
24050 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
24051 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
24052 GIR_RootConstrainSelectedInstOperands,
24053 // GIR_Coverage, 4593,
24054 GIR_EraseRootFromParent_Done,
24055 // Label 1362: @64715
24056 GIM_Try, /*On fail goto*//*Label 1363*/ GIMT_Encode4(64782), // Rule ID 4644 //
24057 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
24058 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vcvt_narrow),
24059 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
24060 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
24061 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
24062 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
24063 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24064 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24065 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24066 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
24067 // (intrinsic_wo_chain:{ *:[v8f16] } 3283:{ *:[iPTR] }, MQPR:{ *:[v8f16] }:$Qd_src, MQPR:{ *:[v4f32] }:$Qm, 0:{ *:[i32] }) => (MVE_VCVTf16f32bh:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qd_src, MQPR:{ *:[v4f32] }:$Qm)
24068 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCVTf16f32bh),
24069 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
24070 GIR_RootToRootCopy, /*OpIdx*/2, // Qd_src
24071 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
24072 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
24073 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
24074 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
24075 GIR_RootConstrainSelectedInstOperands,
24076 // GIR_Coverage, 4644,
24077 GIR_EraseRootFromParent_Done,
24078 // Label 1363: @64782
24079 GIM_Try, /*On fail goto*//*Label 1364*/ GIMT_Encode4(64849), // Rule ID 4650 //
24080 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
24081 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vcvt_narrow),
24082 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
24083 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
24084 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
24085 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
24086 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24087 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24088 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24089 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
24090 // (intrinsic_wo_chain:{ *:[v8f16] } 3283:{ *:[iPTR] }, MQPR:{ *:[v8f16] }:$Qd_src, MQPR:{ *:[v4f32] }:$Qm, 1:{ *:[i32] }) => (MVE_VCVTf16f32th:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qd_src, MQPR:{ *:[v4f32] }:$Qm)
24091 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCVTf16f32th),
24092 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
24093 GIR_RootToRootCopy, /*OpIdx*/2, // Qd_src
24094 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
24095 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
24096 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
24097 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
24098 GIR_RootConstrainSelectedInstOperands,
24099 // GIR_Coverage, 4650,
24100 GIR_EraseRootFromParent_Done,
24101 // Label 1364: @64849
24102 GIM_Try, /*On fail goto*//*Label 1365*/ GIMT_Encode4(64929), // Rule ID 4668 //
24103 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
24104 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqdmull),
24105 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
24106 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
24107 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
24108 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
24109 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24110 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24111 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24112 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
24113 // (intrinsic_wo_chain:{ *:[v4i32] } 3335:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 0:{ *:[i32] }) => (MVE_VQDMULLs16bh:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
24114 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
24115 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
24116 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
24117 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQDMULLs16bh),
24118 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
24119 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
24120 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
24121 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
24122 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
24123 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
24124 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
24125 GIR_RootConstrainSelectedInstOperands,
24126 // GIR_Coverage, 4668,
24127 GIR_EraseRootFromParent_Done,
24128 // Label 1365: @64929
24129 GIM_Try, /*On fail goto*//*Label 1366*/ GIMT_Encode4(65009), // Rule ID 4670 //
24130 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
24131 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqdmull),
24132 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
24133 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
24134 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
24135 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
24136 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24137 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24138 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24139 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
24140 // (intrinsic_wo_chain:{ *:[v4i32] } 3335:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }) => (MVE_VQDMULLs16th:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
24141 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
24142 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
24143 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
24144 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQDMULLs16th),
24145 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
24146 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
24147 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
24148 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
24149 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
24150 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
24151 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
24152 GIR_RootConstrainSelectedInstOperands,
24153 // GIR_Coverage, 4670,
24154 GIR_EraseRootFromParent_Done,
24155 // Label 1366: @65009
24156 GIM_Try, /*On fail goto*//*Label 1367*/ GIMT_Encode4(65089), // Rule ID 4672 //
24157 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
24158 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqdmull),
24159 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s64,
24160 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
24161 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
24162 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
24163 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24164 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24165 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24166 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
24167 // (intrinsic_wo_chain:{ *:[v2i64] } 3335:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 0:{ *:[i32] }) => (MVE_VQDMULLs32bh:{ *:[v2i64] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
24168 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
24169 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
24170 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
24171 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQDMULLs32bh),
24172 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
24173 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
24174 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
24175 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
24176 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
24177 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
24178 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
24179 GIR_RootConstrainSelectedInstOperands,
24180 // GIR_Coverage, 4672,
24181 GIR_EraseRootFromParent_Done,
24182 // Label 1367: @65089
24183 GIM_Try, /*On fail goto*//*Label 1368*/ GIMT_Encode4(65169), // Rule ID 4674 //
24184 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
24185 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqdmull),
24186 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s64,
24187 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
24188 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
24189 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
24190 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24191 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24192 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24193 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
24194 // (intrinsic_wo_chain:{ *:[v2i64] } 3335:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }) => (MVE_VQDMULLs32th:{ *:[v2i64] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
24195 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
24196 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
24197 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
24198 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQDMULLs32th),
24199 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
24200 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
24201 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
24202 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
24203 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
24204 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
24205 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
24206 GIR_RootConstrainSelectedInstOperands,
24207 // GIR_Coverage, 4674,
24208 GIR_EraseRootFromParent_Done,
24209 // Label 1368: @65169
24210 GIM_Try, /*On fail goto*//*Label 1369*/ GIMT_Encode4(65246), // Rule ID 4019 //
24211 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vsli),
24212 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
24213 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
24214 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
24215 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
24216 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24217 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24218 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24219 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
24220 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
24221 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm0_7),
24222 // MIs[1] Operand 1
24223 // No operand predicates
24224 GIM_CheckIsSafeToFold, /*NumInsns*/1,
24225 // (intrinsic_wo_chain:{ *:[v16i8] } 3375:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v16i8] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm) => (MVE_VSLIimm8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v16i8] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm)
24226 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSLIimm8),
24227 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
24228 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
24229 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
24230 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
24231 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
24232 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
24233 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
24234 GIR_RootConstrainSelectedInstOperands,
24235 // GIR_Coverage, 4019,
24236 GIR_EraseRootFromParent_Done,
24237 // Label 1369: @65246
24238 GIM_Try, /*On fail goto*//*Label 1370*/ GIMT_Encode4(65323), // Rule ID 4021 //
24239 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vsli),
24240 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
24241 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
24242 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
24243 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
24244 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24245 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24246 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24247 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
24248 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
24249 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm0_15),
24250 // MIs[1] Operand 1
24251 // No operand predicates
24252 GIM_CheckIsSafeToFold, /*NumInsns*/1,
24253 // (intrinsic_wo_chain:{ *:[v8i16] } 3375:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm) => (MVE_VSLIimm16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm)
24254 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSLIimm16),
24255 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
24256 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
24257 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
24258 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
24259 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
24260 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
24261 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
24262 GIR_RootConstrainSelectedInstOperands,
24263 // GIR_Coverage, 4021,
24264 GIR_EraseRootFromParent_Done,
24265 // Label 1370: @65323
24266 GIM_Try, /*On fail goto*//*Label 1371*/ GIMT_Encode4(65400), // Rule ID 4023 //
24267 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vsli),
24268 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
24269 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
24270 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
24271 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
24272 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24273 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24274 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24275 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
24276 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
24277 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm0_31),
24278 // MIs[1] Operand 1
24279 // No operand predicates
24280 GIM_CheckIsSafeToFold, /*NumInsns*/1,
24281 // (intrinsic_wo_chain:{ *:[v4i32] } 3375:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm) => (MVE_VSLIimm32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm)
24282 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSLIimm32),
24283 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
24284 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
24285 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
24286 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
24287 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
24288 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
24289 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
24290 GIR_RootConstrainSelectedInstOperands,
24291 // GIR_Coverage, 4023,
24292 GIR_EraseRootFromParent_Done,
24293 // Label 1371: @65400
24294 GIM_Try, /*On fail goto*//*Label 1372*/ GIMT_Encode4(65477), // Rule ID 4025 //
24295 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vsri),
24296 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
24297 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
24298 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
24299 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
24300 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24301 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24302 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24303 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
24304 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
24305 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm8),
24306 // MIs[1] Operand 1
24307 // No operand predicates
24308 GIM_CheckIsSafeToFold, /*NumInsns*/1,
24309 // (intrinsic_wo_chain:{ *:[v16i8] } 3377:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v16i8] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm) => (MVE_VSRIimm8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v16i8] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm)
24310 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSRIimm8),
24311 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
24312 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
24313 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
24314 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
24315 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
24316 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
24317 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
24318 GIR_RootConstrainSelectedInstOperands,
24319 // GIR_Coverage, 4025,
24320 GIR_EraseRootFromParent_Done,
24321 // Label 1372: @65477
24322 GIM_Try, /*On fail goto*//*Label 1373*/ GIMT_Encode4(65554), // Rule ID 4027 //
24323 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vsri),
24324 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
24325 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
24326 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
24327 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
24328 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24329 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24330 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24331 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
24332 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
24333 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm16),
24334 // MIs[1] Operand 1
24335 // No operand predicates
24336 GIM_CheckIsSafeToFold, /*NumInsns*/1,
24337 // (intrinsic_wo_chain:{ *:[v8i16] } 3377:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm) => (MVE_VSRIimm16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm)
24338 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSRIimm16),
24339 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
24340 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
24341 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
24342 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
24343 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
24344 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
24345 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
24346 GIR_RootConstrainSelectedInstOperands,
24347 // GIR_Coverage, 4027,
24348 GIR_EraseRootFromParent_Done,
24349 // Label 1373: @65554
24350 GIM_Try, /*On fail goto*//*Label 1374*/ GIMT_Encode4(65631), // Rule ID 4029 //
24351 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vsri),
24352 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
24353 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
24354 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
24355 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
24356 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24357 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24358 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24359 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
24360 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
24361 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm32),
24362 // MIs[1] Operand 1
24363 // No operand predicates
24364 GIM_CheckIsSafeToFold, /*NumInsns*/1,
24365 // (intrinsic_wo_chain:{ *:[v4i32] } 3377:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm32>>:$imm) => (MVE_VSRIimm32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm32>>:$imm)
24366 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSRIimm32),
24367 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
24368 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
24369 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
24370 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
24371 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
24372 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
24373 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
24374 GIR_RootConstrainSelectedInstOperands,
24375 // GIR_Coverage, 4029,
24376 GIR_EraseRootFromParent_Done,
24377 // Label 1374: @65631
24378 GIM_Try, /*On fail goto*//*Label 1375*/ GIMT_Encode4(65720), // Rule ID 4498 //
24379 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
24380 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vcmulq),
24381 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
24382 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
24383 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
24384 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v8s16,
24385 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24386 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
24387 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
24388 // MIs[1] Operand 1
24389 // No operand predicates
24390 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24391 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24392 GIM_CheckIsSafeToFold, /*NumInsns*/1,
24393 // (intrinsic_wo_chain:{ *:[v8f16] } 3274:{ *:[iPTR] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v8f16] }:$Qn, MQPR:{ *:[v8f16] }:$Qm) => (MVE_VCMULf16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qn, MQPR:{ *:[v8f16] }:$Qm, (imm:{ *:[i32] }):$rot)
24394 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
24395 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
24396 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
24397 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCMULf16),
24398 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
24399 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
24400 GIR_RootToRootCopy, /*OpIdx*/4, // Qm
24401 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // rot
24402 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
24403 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
24404 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
24405 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
24406 GIR_RootConstrainSelectedInstOperands,
24407 // GIR_Coverage, 4498,
24408 GIR_EraseRootFromParent_Done,
24409 // Label 1375: @65720
24410 GIM_Try, /*On fail goto*//*Label 1376*/ GIMT_Encode4(65809), // Rule ID 4500 //
24411 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
24412 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vcmulq),
24413 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
24414 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
24415 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
24416 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v4s32,
24417 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24418 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
24419 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
24420 // MIs[1] Operand 1
24421 // No operand predicates
24422 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24423 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
24424 GIM_CheckIsSafeToFold, /*NumInsns*/1,
24425 // (intrinsic_wo_chain:{ *:[v4f32] } 3274:{ *:[iPTR] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v4f32] }:$Qn, MQPR:{ *:[v4f32] }:$Qm) => (MVE_VCMULf32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qn, MQPR:{ *:[v4f32] }:$Qm, (imm:{ *:[i32] }):$rot)
24426 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
24427 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
24428 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
24429 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCMULf32),
24430 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
24431 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
24432 GIR_RootToRootCopy, /*OpIdx*/4, // Qm
24433 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // rot
24434 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
24435 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
24436 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
24437 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
24438 GIR_RootConstrainSelectedInstOperands,
24439 // GIR_Coverage, 4500,
24440 GIR_EraseRootFromParent_Done,
24441 // Label 1376: @65809
24442 GIM_Try, /*On fail goto*//*Label 1377*/ GIMT_Encode4(65872), // Rule ID 146 //
24443 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
24444 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_usada8),
24445 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
24446 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
24447 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
24448 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
24449 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
24450 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
24451 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
24452 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
24453 // (intrinsic_wo_chain:{ *:[i32] } 3607:{ *:[iPTR] }, GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra) => (USADA8:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra)
24454 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::USADA8),
24455 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
24456 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
24457 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
24458 GIR_RootToRootCopy, /*OpIdx*/4, // Ra
24459 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
24460 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
24461 GIR_RootConstrainSelectedInstOperands,
24462 // GIR_Coverage, 146,
24463 GIR_EraseRootFromParent_Done,
24464 // Label 1377: @65872
24465 GIM_Try, /*On fail goto*//*Label 1378*/ GIMT_Encode4(65935), // Rule ID 477 //
24466 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
24467 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_usada8),
24468 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
24469 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
24470 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
24471 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
24472 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
24473 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
24474 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
24475 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
24476 // (intrinsic_wo_chain:{ *:[i32] } 3607:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra) => (t2USADA8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
24477 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2USADA8),
24478 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
24479 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
24480 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
24481 GIR_RootToRootCopy, /*OpIdx*/4, // Ra
24482 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
24483 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
24484 GIR_RootConstrainSelectedInstOperands,
24485 // GIR_Coverage, 477,
24486 GIR_EraseRootFromParent_Done,
24487 // Label 1378: @65935
24488 GIM_Try, /*On fail goto*//*Label 1379*/ GIMT_Encode4(65998), // Rule ID 536 //
24489 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
24490 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_smlad),
24491 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
24492 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
24493 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
24494 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
24495 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
24496 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
24497 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
24498 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
24499 // (intrinsic_wo_chain:{ *:[i32] } 3552:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra) => (t2SMLAD:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
24500 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SMLAD),
24501 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
24502 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
24503 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
24504 GIR_RootToRootCopy, /*OpIdx*/4, // Ra
24505 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
24506 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
24507 GIR_RootConstrainSelectedInstOperands,
24508 // GIR_Coverage, 536,
24509 GIR_EraseRootFromParent_Done,
24510 // Label 1379: @65998
24511 GIM_Try, /*On fail goto*//*Label 1380*/ GIMT_Encode4(66061), // Rule ID 537 //
24512 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
24513 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_smladx),
24514 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
24515 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
24516 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
24517 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
24518 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
24519 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
24520 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
24521 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
24522 // (intrinsic_wo_chain:{ *:[i32] } 3553:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra) => (t2SMLADX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
24523 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SMLADX),
24524 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
24525 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
24526 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
24527 GIR_RootToRootCopy, /*OpIdx*/4, // Ra
24528 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
24529 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
24530 GIR_RootConstrainSelectedInstOperands,
24531 // GIR_Coverage, 537,
24532 GIR_EraseRootFromParent_Done,
24533 // Label 1380: @66061
24534 GIM_Try, /*On fail goto*//*Label 1381*/ GIMT_Encode4(66124), // Rule ID 538 //
24535 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
24536 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_smlsd),
24537 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
24538 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
24539 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
24540 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
24541 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
24542 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
24543 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
24544 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
24545 // (intrinsic_wo_chain:{ *:[i32] } 3560:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra) => (t2SMLSD:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
24546 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SMLSD),
24547 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
24548 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
24549 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
24550 GIR_RootToRootCopy, /*OpIdx*/4, // Ra
24551 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
24552 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
24553 GIR_RootConstrainSelectedInstOperands,
24554 // GIR_Coverage, 538,
24555 GIR_EraseRootFromParent_Done,
24556 // Label 1381: @66124
24557 GIM_Try, /*On fail goto*//*Label 1382*/ GIMT_Encode4(66187), // Rule ID 539 //
24558 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
24559 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_smlsdx),
24560 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
24561 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
24562 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
24563 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
24564 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
24565 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
24566 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
24567 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
24568 // (intrinsic_wo_chain:{ *:[i32] } 3561:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra) => (t2SMLSDX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
24569 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SMLSDX),
24570 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
24571 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
24572 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
24573 GIR_RootToRootCopy, /*OpIdx*/4, // Ra
24574 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
24575 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
24576 GIR_RootConstrainSelectedInstOperands,
24577 // GIR_Coverage, 539,
24578 GIR_EraseRootFromParent_Done,
24579 // Label 1382: @66187
24580 GIM_Try, /*On fail goto*//*Label 1383*/ GIMT_Encode4(66241), // Rule ID 968 //
24581 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDotProd),
24582 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_udot),
24583 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
24584 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
24585 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s8,
24586 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v8s8,
24587 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
24588 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
24589 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
24590 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
24591 // (intrinsic_wo_chain:{ *:[v2i32] } 3407:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VUDOTD:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
24592 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VUDOTD),
24593 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
24594 GIR_RootToRootCopy, /*OpIdx*/2, // Vd
24595 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
24596 GIR_RootToRootCopy, /*OpIdx*/4, // Vm
24597 GIR_RootConstrainSelectedInstOperands,
24598 // GIR_Coverage, 968,
24599 GIR_EraseRootFromParent_Done,
24600 // Label 1383: @66241
24601 GIM_Try, /*On fail goto*//*Label 1384*/ GIMT_Encode4(66295), // Rule ID 969 //
24602 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDotProd),
24603 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_sdot),
24604 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
24605 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
24606 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s8,
24607 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v8s8,
24608 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
24609 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
24610 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
24611 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
24612 // (intrinsic_wo_chain:{ *:[v2i32] } 3395:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VSDOTD:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
24613 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSDOTD),
24614 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
24615 GIR_RootToRootCopy, /*OpIdx*/2, // Vd
24616 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
24617 GIR_RootToRootCopy, /*OpIdx*/4, // Vm
24618 GIR_RootConstrainSelectedInstOperands,
24619 // GIR_Coverage, 969,
24620 GIR_EraseRootFromParent_Done,
24621 // Label 1384: @66295
24622 GIM_Try, /*On fail goto*//*Label 1385*/ GIMT_Encode4(66349), // Rule ID 970 //
24623 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDotProd),
24624 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_udot),
24625 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
24626 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
24627 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
24628 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v16s8,
24629 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24630 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24631 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24632 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24633 // (intrinsic_wo_chain:{ *:[v4i32] } 3407:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VUDOTQ:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
24634 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VUDOTQ),
24635 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
24636 GIR_RootToRootCopy, /*OpIdx*/2, // Vd
24637 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
24638 GIR_RootToRootCopy, /*OpIdx*/4, // Vm
24639 GIR_RootConstrainSelectedInstOperands,
24640 // GIR_Coverage, 970,
24641 GIR_EraseRootFromParent_Done,
24642 // Label 1385: @66349
24643 GIM_Try, /*On fail goto*//*Label 1386*/ GIMT_Encode4(66403), // Rule ID 971 //
24644 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDotProd),
24645 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_sdot),
24646 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
24647 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
24648 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
24649 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v16s8,
24650 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24651 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24652 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24653 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24654 // (intrinsic_wo_chain:{ *:[v4i32] } 3395:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VSDOTQ:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
24655 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSDOTQ),
24656 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
24657 GIR_RootToRootCopy, /*OpIdx*/2, // Vd
24658 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
24659 GIR_RootToRootCopy, /*OpIdx*/4, // Vm
24660 GIR_RootConstrainSelectedInstOperands,
24661 // GIR_Coverage, 971,
24662 GIR_EraseRootFromParent_Done,
24663 // Label 1386: @66403
24664 GIM_Try, /*On fail goto*//*Label 1387*/ GIMT_Encode4(66457), // Rule ID 972 //
24665 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMatMulInt8),
24666 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_smmla),
24667 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
24668 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
24669 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
24670 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v16s8,
24671 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24672 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24673 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24674 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24675 // (intrinsic_wo_chain:{ *:[v4i32] } 3406:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VSMMLA:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
24676 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSMMLA),
24677 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
24678 GIR_RootToRootCopy, /*OpIdx*/2, // Vd
24679 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
24680 GIR_RootToRootCopy, /*OpIdx*/4, // Vm
24681 GIR_RootConstrainSelectedInstOperands,
24682 // GIR_Coverage, 972,
24683 GIR_EraseRootFromParent_Done,
24684 // Label 1387: @66457
24685 GIM_Try, /*On fail goto*//*Label 1388*/ GIMT_Encode4(66511), // Rule ID 973 //
24686 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMatMulInt8),
24687 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_ummla),
24688 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
24689 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
24690 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
24691 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v16s8,
24692 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24693 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24694 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24695 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24696 // (intrinsic_wo_chain:{ *:[v4i32] } 3408:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VUMMLA:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
24697 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VUMMLA),
24698 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
24699 GIR_RootToRootCopy, /*OpIdx*/2, // Vd
24700 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
24701 GIR_RootToRootCopy, /*OpIdx*/4, // Vm
24702 GIR_RootConstrainSelectedInstOperands,
24703 // GIR_Coverage, 973,
24704 GIR_EraseRootFromParent_Done,
24705 // Label 1388: @66511
24706 GIM_Try, /*On fail goto*//*Label 1389*/ GIMT_Encode4(66565), // Rule ID 974 //
24707 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMatMulInt8),
24708 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_usmmla),
24709 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
24710 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
24711 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
24712 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v16s8,
24713 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24714 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24715 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24716 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24717 // (intrinsic_wo_chain:{ *:[v4i32] } 3410:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VUSMMLA:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
24718 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VUSMMLA),
24719 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
24720 GIR_RootToRootCopy, /*OpIdx*/2, // Vd
24721 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
24722 GIR_RootToRootCopy, /*OpIdx*/4, // Vm
24723 GIR_RootConstrainSelectedInstOperands,
24724 // GIR_Coverage, 974,
24725 GIR_EraseRootFromParent_Done,
24726 // Label 1389: @66565
24727 GIM_Try, /*On fail goto*//*Label 1390*/ GIMT_Encode4(66619), // Rule ID 975 //
24728 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMatMulInt8),
24729 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_usdot),
24730 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
24731 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
24732 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s8,
24733 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v8s8,
24734 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
24735 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
24736 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
24737 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
24738 // (intrinsic_wo_chain:{ *:[v2i32] } 3409:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VUSDOTD:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
24739 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VUSDOTD),
24740 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
24741 GIR_RootToRootCopy, /*OpIdx*/2, // Vd
24742 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
24743 GIR_RootToRootCopy, /*OpIdx*/4, // Vm
24744 GIR_RootConstrainSelectedInstOperands,
24745 // GIR_Coverage, 975,
24746 GIR_EraseRootFromParent_Done,
24747 // Label 1390: @66619
24748 GIM_Try, /*On fail goto*//*Label 1391*/ GIMT_Encode4(66673), // Rule ID 976 //
24749 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMatMulInt8),
24750 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_usdot),
24751 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
24752 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
24753 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
24754 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v16s8,
24755 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24756 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24757 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24758 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24759 // (intrinsic_wo_chain:{ *:[v4i32] } 3409:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VUSDOTQ:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
24760 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VUSDOTQ),
24761 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
24762 GIR_RootToRootCopy, /*OpIdx*/2, // Vd
24763 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
24764 GIR_RootToRootCopy, /*OpIdx*/4, // Vm
24765 GIR_RootConstrainSelectedInstOperands,
24766 // GIR_Coverage, 976,
24767 GIR_EraseRootFromParent_Done,
24768 // Label 1391: @66673
24769 GIM_Try, /*On fail goto*//*Label 1392*/ GIMT_Encode4(66736), // Rule ID 1709 //
24770 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
24771 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vtbx1),
24772 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s8,
24773 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
24774 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s8,
24775 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v8s8,
24776 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
24777 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
24778 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
24779 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
24780 // (intrinsic_wo_chain:{ *:[v8i8] } 3527:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$orig, VecListOneD:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VTBX1:{ *:[v8i8] } DPR:{ *:[v8i8] }:$orig, VecListOneD:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
24781 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VTBX1),
24782 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
24783 GIR_RootToRootCopy, /*OpIdx*/2, // orig
24784 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
24785 GIR_RootToRootCopy, /*OpIdx*/4, // Vm
24786 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
24787 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
24788 GIR_RootConstrainSelectedInstOperands,
24789 // GIR_Coverage, 1709,
24790 GIR_EraseRootFromParent_Done,
24791 // Label 1392: @66736
24792 GIM_Try, /*On fail goto*//*Label 1393*/ GIMT_Encode4(66790), // Rule ID 1740 //
24793 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasSHA2_HasV8),
24794 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_sha1su0),
24795 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
24796 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
24797 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
24798 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v4s32,
24799 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24800 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24801 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24802 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24803 // (intrinsic_wo_chain:{ *:[v4i32] } 3400:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (SHA1SU0:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
24804 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SHA1SU0),
24805 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
24806 GIR_RootToRootCopy, /*OpIdx*/2, // src
24807 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
24808 GIR_RootToRootCopy, /*OpIdx*/4, // Vm
24809 GIR_RootConstrainSelectedInstOperands,
24810 // GIR_Coverage, 1740,
24811 GIR_EraseRootFromParent_Done,
24812 // Label 1393: @66790
24813 GIM_Try, /*On fail goto*//*Label 1394*/ GIMT_Encode4(66844), // Rule ID 1741 //
24814 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasSHA2_HasV8),
24815 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_sha256h),
24816 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
24817 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
24818 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
24819 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v4s32,
24820 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24821 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24822 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24823 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24824 // (intrinsic_wo_chain:{ *:[v4i32] } 3402:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (SHA256H:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
24825 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SHA256H),
24826 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
24827 GIR_RootToRootCopy, /*OpIdx*/2, // src
24828 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
24829 GIR_RootToRootCopy, /*OpIdx*/4, // Vm
24830 GIR_RootConstrainSelectedInstOperands,
24831 // GIR_Coverage, 1741,
24832 GIR_EraseRootFromParent_Done,
24833 // Label 1394: @66844
24834 GIM_Try, /*On fail goto*//*Label 1395*/ GIMT_Encode4(66898), // Rule ID 1742 //
24835 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasSHA2_HasV8),
24836 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_sha256h2),
24837 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
24838 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
24839 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
24840 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v4s32,
24841 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24842 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24843 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24844 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24845 // (intrinsic_wo_chain:{ *:[v4i32] } 3403:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (SHA256H2:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
24846 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SHA256H2),
24847 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
24848 GIR_RootToRootCopy, /*OpIdx*/2, // src
24849 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
24850 GIR_RootToRootCopy, /*OpIdx*/4, // Vm
24851 GIR_RootConstrainSelectedInstOperands,
24852 // GIR_Coverage, 1742,
24853 GIR_EraseRootFromParent_Done,
24854 // Label 1395: @66898
24855 GIM_Try, /*On fail goto*//*Label 1396*/ GIMT_Encode4(66952), // Rule ID 1743 //
24856 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasSHA2_HasV8),
24857 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_sha256su1),
24858 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
24859 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
24860 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
24861 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v4s32,
24862 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24863 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24864 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24865 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24866 // (intrinsic_wo_chain:{ *:[v4i32] } 3405:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (SHA256SU1:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
24867 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SHA256SU1),
24868 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
24869 GIR_RootToRootCopy, /*OpIdx*/2, // src
24870 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
24871 GIR_RootToRootCopy, /*OpIdx*/4, // Vm
24872 GIR_RootConstrainSelectedInstOperands,
24873 // GIR_Coverage, 1743,
24874 GIR_EraseRootFromParent_Done,
24875 // Label 1396: @66952
24876 GIM_Try, /*On fail goto*//*Label 1397*/ GIMT_Encode4(67006), // Rule ID 1744 //
24877 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasBF16_HasNEON),
24878 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_bfdot),
24879 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
24880 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
24881 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s16,
24882 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v4s16,
24883 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
24884 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
24885 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
24886 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
24887 // (intrinsic_wo_chain:{ *:[v2f32] } 3391:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vd, DPR:{ *:[v4bf16] }:$Vn, DPR:{ *:[v4bf16] }:$Vm) => (BF16VDOTS_VDOTD:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vd, DPR:{ *:[v4bf16] }:$Vn, DPR:{ *:[v4bf16] }:$Vm)
24888 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::BF16VDOTS_VDOTD),
24889 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
24890 GIR_RootToRootCopy, /*OpIdx*/2, // Vd
24891 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
24892 GIR_RootToRootCopy, /*OpIdx*/4, // Vm
24893 GIR_RootConstrainSelectedInstOperands,
24894 // GIR_Coverage, 1744,
24895 GIR_EraseRootFromParent_Done,
24896 // Label 1397: @67006
24897 GIM_Try, /*On fail goto*//*Label 1398*/ GIMT_Encode4(67060), // Rule ID 1745 //
24898 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasBF16_HasNEON),
24899 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_bfdot),
24900 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
24901 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
24902 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
24903 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v8s16,
24904 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24905 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24906 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24907 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24908 // (intrinsic_wo_chain:{ *:[v4f32] } 3391:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vd, QPR:{ *:[v8bf16] }:$Vn, QPR:{ *:[v8bf16] }:$Vm) => (BF16VDOTS_VDOTQ:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vd, QPR:{ *:[v8bf16] }:$Vn, QPR:{ *:[v8bf16] }:$Vm)
24909 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::BF16VDOTS_VDOTQ),
24910 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
24911 GIR_RootToRootCopy, /*OpIdx*/2, // Vd
24912 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
24913 GIR_RootToRootCopy, /*OpIdx*/4, // Vm
24914 GIR_RootConstrainSelectedInstOperands,
24915 // GIR_Coverage, 1745,
24916 GIR_EraseRootFromParent_Done,
24917 // Label 1398: @67060
24918 GIM_Try, /*On fail goto*//*Label 1399*/ GIMT_Encode4(67114), // Rule ID 1746 //
24919 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasBF16_HasNEON),
24920 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_bfmmla),
24921 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
24922 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
24923 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
24924 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v8s16,
24925 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24926 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24927 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24928 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24929 // (intrinsic_wo_chain:{ *:[v4f32] } 3394:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vd, QPR:{ *:[v8bf16] }:$Vn, QPR:{ *:[v8bf16] }:$Vm) => (VMMLA:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vd, QPR:{ *:[v8bf16] }:$Vn, QPR:{ *:[v8bf16] }:$Vm)
24930 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMMLA),
24931 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
24932 GIR_RootToRootCopy, /*OpIdx*/2, // Vd
24933 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
24934 GIR_RootToRootCopy, /*OpIdx*/4, // Vm
24935 GIR_RootConstrainSelectedInstOperands,
24936 // GIR_Coverage, 1746,
24937 GIR_EraseRootFromParent_Done,
24938 // Label 1399: @67114
24939 GIM_Try, /*On fail goto*//*Label 1400*/ GIMT_Encode4(67168), // Rule ID 1747 //
24940 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasBF16_HasNEON),
24941 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_bfmlalt),
24942 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
24943 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
24944 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
24945 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v8s16,
24946 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24947 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24948 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24949 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24950 // (intrinsic_wo_chain:{ *:[v4f32] } 3393:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vd, QPR:{ *:[v8bf16] }:$Vn, QPR:{ *:[v8bf16] }:$Vm) => (VBF16MALTQ:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vd, QPR:{ *:[v8bf16] }:$Vn, QPR:{ *:[v8bf16] }:$Vm)
24951 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VBF16MALTQ),
24952 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
24953 GIR_RootToRootCopy, /*OpIdx*/2, // Vd
24954 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
24955 GIR_RootToRootCopy, /*OpIdx*/4, // Vm
24956 GIR_RootConstrainSelectedInstOperands,
24957 // GIR_Coverage, 1747,
24958 GIR_EraseRootFromParent_Done,
24959 // Label 1400: @67168
24960 GIM_Try, /*On fail goto*//*Label 1401*/ GIMT_Encode4(67222), // Rule ID 1748 //
24961 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasBF16_HasNEON),
24962 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_bfmlalb),
24963 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
24964 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
24965 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
24966 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v8s16,
24967 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24968 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24969 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24970 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
24971 // (intrinsic_wo_chain:{ *:[v4f32] } 3392:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vd, QPR:{ *:[v8bf16] }:$Vn, QPR:{ *:[v8bf16] }:$Vm) => (VBF16MALBQ:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vd, QPR:{ *:[v8bf16] }:$Vn, QPR:{ *:[v8bf16] }:$Vm)
24972 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VBF16MALBQ),
24973 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
24974 GIR_RootToRootCopy, /*OpIdx*/2, // Vd
24975 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
24976 GIR_RootToRootCopy, /*OpIdx*/4, // Vm
24977 GIR_RootConstrainSelectedInstOperands,
24978 // GIR_Coverage, 1748,
24979 GIR_EraseRootFromParent_Done,
24980 // Label 1401: @67222
24981 GIM_Try, /*On fail goto*//*Label 1402*/ GIMT_Encode4(67285), // Rule ID 1923 //
24982 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
24983 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_smlad),
24984 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
24985 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
24986 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
24987 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
24988 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
24989 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
24990 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
24991 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
24992 // (intrinsic_wo_chain:{ *:[i32] } 3552:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra) => (SMLAD:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Ra)
24993 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SMLAD),
24994 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
24995 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
24996 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
24997 GIR_RootToRootCopy, /*OpIdx*/4, // Ra
24998 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
24999 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25000 GIR_RootConstrainSelectedInstOperands,
25001 // GIR_Coverage, 1923,
25002 GIR_EraseRootFromParent_Done,
25003 // Label 1402: @67285
25004 GIM_Try, /*On fail goto*//*Label 1403*/ GIMT_Encode4(67348), // Rule ID 1924 //
25005 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
25006 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_smladx),
25007 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
25008 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
25009 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
25010 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
25011 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
25012 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
25013 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
25014 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
25015 // (intrinsic_wo_chain:{ *:[i32] } 3553:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra) => (SMLADX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Ra)
25016 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SMLADX),
25017 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
25018 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
25019 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
25020 GIR_RootToRootCopy, /*OpIdx*/4, // Ra
25021 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
25022 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25023 GIR_RootConstrainSelectedInstOperands,
25024 // GIR_Coverage, 1924,
25025 GIR_EraseRootFromParent_Done,
25026 // Label 1403: @67348
25027 GIM_Try, /*On fail goto*//*Label 1404*/ GIMT_Encode4(67411), // Rule ID 1925 //
25028 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
25029 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_smlsd),
25030 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
25031 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
25032 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
25033 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
25034 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
25035 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
25036 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
25037 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
25038 // (intrinsic_wo_chain:{ *:[i32] } 3560:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra) => (SMLSD:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Ra)
25039 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SMLSD),
25040 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
25041 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
25042 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
25043 GIR_RootToRootCopy, /*OpIdx*/4, // Ra
25044 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
25045 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25046 GIR_RootConstrainSelectedInstOperands,
25047 // GIR_Coverage, 1925,
25048 GIR_EraseRootFromParent_Done,
25049 // Label 1404: @67411
25050 GIM_Try, /*On fail goto*//*Label 1405*/ GIMT_Encode4(67474), // Rule ID 1926 //
25051 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
25052 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_smlsdx),
25053 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
25054 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
25055 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
25056 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
25057 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
25058 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
25059 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
25060 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
25061 // (intrinsic_wo_chain:{ *:[i32] } 3561:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra) => (SMLSDX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Ra)
25062 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SMLSDX),
25063 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
25064 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
25065 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
25066 GIR_RootToRootCopy, /*OpIdx*/4, // Ra
25067 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
25068 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25069 GIR_RootConstrainSelectedInstOperands,
25070 // GIR_Coverage, 1926,
25071 GIR_EraseRootFromParent_Done,
25072 // Label 1405: @67474
25073 GIM_Try, /*On fail goto*//*Label 1406*/ GIMT_Encode4(67537), // Rule ID 2005 //
25074 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV5TE_IsARM),
25075 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_smlabb),
25076 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
25077 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
25078 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
25079 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
25080 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
25081 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
25082 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
25083 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
25084 // (intrinsic_wo_chain:{ *:[i32] } 3550:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) => (SMLABB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
25085 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SMLABB),
25086 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
25087 GIR_RootToRootCopy, /*OpIdx*/2, // a
25088 GIR_RootToRootCopy, /*OpIdx*/3, // b
25089 GIR_RootToRootCopy, /*OpIdx*/4, // acc
25090 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
25091 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25092 GIR_RootConstrainSelectedInstOperands,
25093 // GIR_Coverage, 2005,
25094 GIR_EraseRootFromParent_Done,
25095 // Label 1406: @67537
25096 GIM_Try, /*On fail goto*//*Label 1407*/ GIMT_Encode4(67600), // Rule ID 2006 //
25097 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV5TE_IsARM),
25098 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_smlabt),
25099 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
25100 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
25101 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
25102 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
25103 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
25104 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
25105 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
25106 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
25107 // (intrinsic_wo_chain:{ *:[i32] } 3551:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) => (SMLABT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
25108 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SMLABT),
25109 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
25110 GIR_RootToRootCopy, /*OpIdx*/2, // a
25111 GIR_RootToRootCopy, /*OpIdx*/3, // b
25112 GIR_RootToRootCopy, /*OpIdx*/4, // acc
25113 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
25114 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25115 GIR_RootConstrainSelectedInstOperands,
25116 // GIR_Coverage, 2006,
25117 GIR_EraseRootFromParent_Done,
25118 // Label 1407: @67600
25119 GIM_Try, /*On fail goto*//*Label 1408*/ GIMT_Encode4(67663), // Rule ID 2007 //
25120 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV5TE_IsARM),
25121 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_smlatb),
25122 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
25123 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
25124 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
25125 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
25126 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
25127 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
25128 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
25129 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
25130 // (intrinsic_wo_chain:{ *:[i32] } 3556:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) => (SMLATB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
25131 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SMLATB),
25132 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
25133 GIR_RootToRootCopy, /*OpIdx*/2, // a
25134 GIR_RootToRootCopy, /*OpIdx*/3, // b
25135 GIR_RootToRootCopy, /*OpIdx*/4, // acc
25136 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
25137 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25138 GIR_RootConstrainSelectedInstOperands,
25139 // GIR_Coverage, 2007,
25140 GIR_EraseRootFromParent_Done,
25141 // Label 1408: @67663
25142 GIM_Try, /*On fail goto*//*Label 1409*/ GIMT_Encode4(67726), // Rule ID 2008 //
25143 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV5TE_IsARM),
25144 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_smlatt),
25145 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
25146 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
25147 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
25148 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
25149 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
25150 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
25151 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
25152 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
25153 // (intrinsic_wo_chain:{ *:[i32] } 3557:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) => (SMLATT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
25154 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SMLATT),
25155 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
25156 GIR_RootToRootCopy, /*OpIdx*/2, // a
25157 GIR_RootToRootCopy, /*OpIdx*/3, // b
25158 GIR_RootToRootCopy, /*OpIdx*/4, // acc
25159 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
25160 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25161 GIR_RootConstrainSelectedInstOperands,
25162 // GIR_Coverage, 2008,
25163 GIR_EraseRootFromParent_Done,
25164 // Label 1409: @67726
25165 GIM_Try, /*On fail goto*//*Label 1410*/ GIMT_Encode4(67789), // Rule ID 2009 //
25166 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV5TE_IsARM),
25167 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_smlawb),
25168 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
25169 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
25170 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
25171 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
25172 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
25173 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
25174 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
25175 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
25176 // (intrinsic_wo_chain:{ *:[i32] } 3558:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) => (SMLAWB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
25177 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SMLAWB),
25178 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
25179 GIR_RootToRootCopy, /*OpIdx*/2, // a
25180 GIR_RootToRootCopy, /*OpIdx*/3, // b
25181 GIR_RootToRootCopy, /*OpIdx*/4, // acc
25182 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
25183 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25184 GIR_RootConstrainSelectedInstOperands,
25185 // GIR_Coverage, 2009,
25186 GIR_EraseRootFromParent_Done,
25187 // Label 1410: @67789
25188 GIM_Try, /*On fail goto*//*Label 1411*/ GIMT_Encode4(67852), // Rule ID 2010 //
25189 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV5TE_IsARM),
25190 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_smlawt),
25191 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
25192 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
25193 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
25194 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
25195 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
25196 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
25197 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
25198 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
25199 // (intrinsic_wo_chain:{ *:[i32] } 3559:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) => (SMLAWT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
25200 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SMLAWT),
25201 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
25202 GIR_RootToRootCopy, /*OpIdx*/2, // a
25203 GIR_RootToRootCopy, /*OpIdx*/3, // b
25204 GIR_RootToRootCopy, /*OpIdx*/4, // acc
25205 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
25206 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25207 GIR_RootConstrainSelectedInstOperands,
25208 // GIR_Coverage, 2010,
25209 GIR_EraseRootFromParent_Done,
25210 // Label 1411: @67852
25211 GIM_Try, /*On fail goto*//*Label 1412*/ GIMT_Encode4(67915), // Rule ID 2188 //
25212 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
25213 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_smlabb),
25214 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
25215 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
25216 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
25217 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
25218 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
25219 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
25220 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
25221 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
25222 // (intrinsic_wo_chain:{ *:[i32] } 3550:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) => (t2SMLABB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
25223 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SMLABB),
25224 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
25225 GIR_RootToRootCopy, /*OpIdx*/2, // a
25226 GIR_RootToRootCopy, /*OpIdx*/3, // b
25227 GIR_RootToRootCopy, /*OpIdx*/4, // acc
25228 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
25229 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25230 GIR_RootConstrainSelectedInstOperands,
25231 // GIR_Coverage, 2188,
25232 GIR_EraseRootFromParent_Done,
25233 // Label 1412: @67915
25234 GIM_Try, /*On fail goto*//*Label 1413*/ GIMT_Encode4(67978), // Rule ID 2189 //
25235 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
25236 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_smlabt),
25237 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
25238 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
25239 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
25240 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
25241 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
25242 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
25243 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
25244 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
25245 // (intrinsic_wo_chain:{ *:[i32] } 3551:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) => (t2SMLABT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
25246 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SMLABT),
25247 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
25248 GIR_RootToRootCopy, /*OpIdx*/2, // a
25249 GIR_RootToRootCopy, /*OpIdx*/3, // b
25250 GIR_RootToRootCopy, /*OpIdx*/4, // acc
25251 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
25252 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25253 GIR_RootConstrainSelectedInstOperands,
25254 // GIR_Coverage, 2189,
25255 GIR_EraseRootFromParent_Done,
25256 // Label 1413: @67978
25257 GIM_Try, /*On fail goto*//*Label 1414*/ GIMT_Encode4(68041), // Rule ID 2190 //
25258 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
25259 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_smlatb),
25260 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
25261 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
25262 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
25263 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
25264 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
25265 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
25266 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
25267 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
25268 // (intrinsic_wo_chain:{ *:[i32] } 3556:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) => (t2SMLATB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
25269 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SMLATB),
25270 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
25271 GIR_RootToRootCopy, /*OpIdx*/2, // a
25272 GIR_RootToRootCopy, /*OpIdx*/3, // b
25273 GIR_RootToRootCopy, /*OpIdx*/4, // acc
25274 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
25275 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25276 GIR_RootConstrainSelectedInstOperands,
25277 // GIR_Coverage, 2190,
25278 GIR_EraseRootFromParent_Done,
25279 // Label 1414: @68041
25280 GIM_Try, /*On fail goto*//*Label 1415*/ GIMT_Encode4(68104), // Rule ID 2191 //
25281 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
25282 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_smlatt),
25283 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
25284 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
25285 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
25286 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
25287 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
25288 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
25289 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
25290 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
25291 // (intrinsic_wo_chain:{ *:[i32] } 3557:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) => (t2SMLATT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
25292 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SMLATT),
25293 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
25294 GIR_RootToRootCopy, /*OpIdx*/2, // a
25295 GIR_RootToRootCopy, /*OpIdx*/3, // b
25296 GIR_RootToRootCopy, /*OpIdx*/4, // acc
25297 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
25298 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25299 GIR_RootConstrainSelectedInstOperands,
25300 // GIR_Coverage, 2191,
25301 GIR_EraseRootFromParent_Done,
25302 // Label 1415: @68104
25303 GIM_Try, /*On fail goto*//*Label 1416*/ GIMT_Encode4(68167), // Rule ID 2192 //
25304 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
25305 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_smlawb),
25306 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
25307 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
25308 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
25309 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
25310 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
25311 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
25312 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
25313 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
25314 // (intrinsic_wo_chain:{ *:[i32] } 3558:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) => (t2SMLAWB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
25315 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SMLAWB),
25316 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
25317 GIR_RootToRootCopy, /*OpIdx*/2, // a
25318 GIR_RootToRootCopy, /*OpIdx*/3, // b
25319 GIR_RootToRootCopy, /*OpIdx*/4, // acc
25320 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
25321 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25322 GIR_RootConstrainSelectedInstOperands,
25323 // GIR_Coverage, 2192,
25324 GIR_EraseRootFromParent_Done,
25325 // Label 1416: @68167
25326 GIM_Try, /*On fail goto*//*Label 1417*/ GIMT_Encode4(68230), // Rule ID 2193 //
25327 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
25328 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_smlawt),
25329 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
25330 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
25331 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
25332 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
25333 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
25334 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
25335 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
25336 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
25337 // (intrinsic_wo_chain:{ *:[i32] } 3559:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) => (t2SMLAWT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
25338 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SMLAWT),
25339 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
25340 GIR_RootToRootCopy, /*OpIdx*/2, // a
25341 GIR_RootToRootCopy, /*OpIdx*/3, // b
25342 GIR_RootToRootCopy, /*OpIdx*/4, // acc
25343 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
25344 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25345 GIR_RootConstrainSelectedInstOperands,
25346 // GIR_Coverage, 2193,
25347 GIR_EraseRootFromParent_Done,
25348 // Label 1417: @68230
25349 GIM_Try, /*On fail goto*//*Label 1418*/ GIMT_Encode4(68293), // Rule ID 2469 //
25350 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasV8_1a),
25351 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqrdmlah),
25352 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
25353 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
25354 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s16,
25355 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v4s16,
25356 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
25357 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
25358 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
25359 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
25360 // (intrinsic_wo_chain:{ *:[v4i16] } 3479:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VQRDMLAHv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
25361 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQRDMLAHv4i16),
25362 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
25363 GIR_RootToRootCopy, /*OpIdx*/2, // src1
25364 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
25365 GIR_RootToRootCopy, /*OpIdx*/4, // Vm
25366 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
25367 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25368 GIR_RootConstrainSelectedInstOperands,
25369 // GIR_Coverage, 2469,
25370 GIR_EraseRootFromParent_Done,
25371 // Label 1418: @68293
25372 GIM_Try, /*On fail goto*//*Label 1419*/ GIMT_Encode4(68356), // Rule ID 2470 //
25373 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasV8_1a),
25374 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqrdmlah),
25375 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
25376 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
25377 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s32,
25378 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v2s32,
25379 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
25380 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
25381 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
25382 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
25383 // (intrinsic_wo_chain:{ *:[v2i32] } 3479:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VQRDMLAHv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
25384 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQRDMLAHv2i32),
25385 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
25386 GIR_RootToRootCopy, /*OpIdx*/2, // src1
25387 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
25388 GIR_RootToRootCopy, /*OpIdx*/4, // Vm
25389 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
25390 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25391 GIR_RootConstrainSelectedInstOperands,
25392 // GIR_Coverage, 2470,
25393 GIR_EraseRootFromParent_Done,
25394 // Label 1419: @68356
25395 GIM_Try, /*On fail goto*//*Label 1420*/ GIMT_Encode4(68419), // Rule ID 2471 //
25396 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasV8_1a),
25397 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqrdmlah),
25398 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
25399 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
25400 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
25401 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v8s16,
25402 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
25403 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
25404 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
25405 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
25406 // (intrinsic_wo_chain:{ *:[v8i16] } 3479:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VQRDMLAHv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
25407 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQRDMLAHv8i16),
25408 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
25409 GIR_RootToRootCopy, /*OpIdx*/2, // src1
25410 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
25411 GIR_RootToRootCopy, /*OpIdx*/4, // Vm
25412 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
25413 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25414 GIR_RootConstrainSelectedInstOperands,
25415 // GIR_Coverage, 2471,
25416 GIR_EraseRootFromParent_Done,
25417 // Label 1420: @68419
25418 GIM_Try, /*On fail goto*//*Label 1421*/ GIMT_Encode4(68482), // Rule ID 2472 //
25419 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasV8_1a),
25420 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqrdmlah),
25421 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
25422 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
25423 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
25424 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v4s32,
25425 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
25426 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
25427 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
25428 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
25429 // (intrinsic_wo_chain:{ *:[v4i32] } 3479:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VQRDMLAHv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
25430 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQRDMLAHv4i32),
25431 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
25432 GIR_RootToRootCopy, /*OpIdx*/2, // src1
25433 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
25434 GIR_RootToRootCopy, /*OpIdx*/4, // Vm
25435 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
25436 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25437 GIR_RootConstrainSelectedInstOperands,
25438 // GIR_Coverage, 2472,
25439 GIR_EraseRootFromParent_Done,
25440 // Label 1421: @68482
25441 GIM_Try, /*On fail goto*//*Label 1422*/ GIMT_Encode4(68545), // Rule ID 2477 //
25442 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasV8_1a),
25443 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqrdmlsh),
25444 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
25445 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
25446 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s16,
25447 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v4s16,
25448 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
25449 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
25450 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
25451 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
25452 // (intrinsic_wo_chain:{ *:[v4i16] } 3480:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VQRDMLSHv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
25453 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQRDMLSHv4i16),
25454 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
25455 GIR_RootToRootCopy, /*OpIdx*/2, // src1
25456 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
25457 GIR_RootToRootCopy, /*OpIdx*/4, // Vm
25458 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
25459 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25460 GIR_RootConstrainSelectedInstOperands,
25461 // GIR_Coverage, 2477,
25462 GIR_EraseRootFromParent_Done,
25463 // Label 1422: @68545
25464 GIM_Try, /*On fail goto*//*Label 1423*/ GIMT_Encode4(68608), // Rule ID 2478 //
25465 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasV8_1a),
25466 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqrdmlsh),
25467 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
25468 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
25469 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s32,
25470 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v2s32,
25471 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
25472 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
25473 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
25474 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
25475 // (intrinsic_wo_chain:{ *:[v2i32] } 3480:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VQRDMLSHv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
25476 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQRDMLSHv2i32),
25477 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
25478 GIR_RootToRootCopy, /*OpIdx*/2, // src1
25479 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
25480 GIR_RootToRootCopy, /*OpIdx*/4, // Vm
25481 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
25482 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25483 GIR_RootConstrainSelectedInstOperands,
25484 // GIR_Coverage, 2478,
25485 GIR_EraseRootFromParent_Done,
25486 // Label 1423: @68608
25487 GIM_Try, /*On fail goto*//*Label 1424*/ GIMT_Encode4(68671), // Rule ID 2479 //
25488 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasV8_1a),
25489 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqrdmlsh),
25490 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
25491 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
25492 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
25493 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v8s16,
25494 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
25495 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
25496 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
25497 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
25498 // (intrinsic_wo_chain:{ *:[v8i16] } 3480:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VQRDMLSHv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
25499 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQRDMLSHv8i16),
25500 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
25501 GIR_RootToRootCopy, /*OpIdx*/2, // src1
25502 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
25503 GIR_RootToRootCopy, /*OpIdx*/4, // Vm
25504 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
25505 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25506 GIR_RootConstrainSelectedInstOperands,
25507 // GIR_Coverage, 2479,
25508 GIR_EraseRootFromParent_Done,
25509 // Label 1424: @68671
25510 GIM_Try, /*On fail goto*//*Label 1425*/ GIMT_Encode4(68734), // Rule ID 2480 //
25511 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasV8_1a),
25512 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqrdmlsh),
25513 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
25514 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
25515 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
25516 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v4s32,
25517 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
25518 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
25519 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
25520 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
25521 // (intrinsic_wo_chain:{ *:[v4i32] } 3480:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VQRDMLSHv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
25522 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQRDMLSHv4i32),
25523 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
25524 GIR_RootToRootCopy, /*OpIdx*/2, // src1
25525 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
25526 GIR_RootToRootCopy, /*OpIdx*/4, // Vm
25527 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
25528 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25529 GIR_RootConstrainSelectedInstOperands,
25530 // GIR_Coverage, 2480,
25531 GIR_EraseRootFromParent_Done,
25532 // Label 1425: @68734
25533 GIM_Try, /*On fail goto*//*Label 1426*/ GIMT_Encode4(68797), // Rule ID 2557 //
25534 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
25535 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vbsl),
25536 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s8,
25537 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
25538 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s8,
25539 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v8s8,
25540 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
25541 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
25542 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
25543 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
25544 // (intrinsic_wo_chain:{ *:[v8i8] } 3416:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VBSPd:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
25545 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VBSPd),
25546 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
25547 GIR_RootToRootCopy, /*OpIdx*/2, // src1
25548 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
25549 GIR_RootToRootCopy, /*OpIdx*/4, // Vm
25550 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
25551 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25552 GIR_RootConstrainSelectedInstOperands,
25553 // GIR_Coverage, 2557,
25554 GIR_EraseRootFromParent_Done,
25555 // Label 1426: @68797
25556 GIM_Try, /*On fail goto*//*Label 1427*/ GIMT_Encode4(68860), // Rule ID 2558 //
25557 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
25558 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vbsl),
25559 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s16,
25560 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
25561 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s16,
25562 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v4s16,
25563 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
25564 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
25565 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
25566 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
25567 // (intrinsic_wo_chain:{ *:[v4i16] } 3416:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VBSPd:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
25568 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VBSPd),
25569 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
25570 GIR_RootToRootCopy, /*OpIdx*/2, // src1
25571 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
25572 GIR_RootToRootCopy, /*OpIdx*/4, // Vm
25573 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
25574 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25575 GIR_RootConstrainSelectedInstOperands,
25576 // GIR_Coverage, 2558,
25577 GIR_EraseRootFromParent_Done,
25578 // Label 1427: @68860
25579 GIM_Try, /*On fail goto*//*Label 1428*/ GIMT_Encode4(68923), // Rule ID 2559 //
25580 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
25581 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vbsl),
25582 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
25583 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
25584 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s32,
25585 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v2s32,
25586 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
25587 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
25588 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
25589 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
25590 // (intrinsic_wo_chain:{ *:[v2i32] } 3416:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VBSPd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
25591 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VBSPd),
25592 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
25593 GIR_RootToRootCopy, /*OpIdx*/2, // src1
25594 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
25595 GIR_RootToRootCopy, /*OpIdx*/4, // Vm
25596 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
25597 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25598 GIR_RootConstrainSelectedInstOperands,
25599 // GIR_Coverage, 2559,
25600 GIR_EraseRootFromParent_Done,
25601 // Label 1428: @68923
25602 GIM_Try, /*On fail goto*//*Label 1429*/ GIMT_Encode4(68986), // Rule ID 2560 //
25603 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
25604 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vbsl),
25605 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s32,
25606 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
25607 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s32,
25608 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v2s32,
25609 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
25610 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
25611 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
25612 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
25613 // (intrinsic_wo_chain:{ *:[v2f32] } 3416:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$src1, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) => (VBSPd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$src1, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
25614 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VBSPd),
25615 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
25616 GIR_RootToRootCopy, /*OpIdx*/2, // src1
25617 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
25618 GIR_RootToRootCopy, /*OpIdx*/4, // Vm
25619 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
25620 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25621 GIR_RootConstrainSelectedInstOperands,
25622 // GIR_Coverage, 2560,
25623 GIR_EraseRootFromParent_Done,
25624 // Label 1429: @68986
25625 GIM_Try, /*On fail goto*//*Label 1430*/ GIMT_Encode4(69049), // Rule ID 2561 //
25626 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
25627 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vbsl),
25628 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s64,
25629 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
25630 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s64,
25631 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s64,
25632 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
25633 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
25634 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
25635 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
25636 // (intrinsic_wo_chain:{ *:[v1i64] } 3416:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm) => (VBSPd:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
25637 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VBSPd),
25638 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
25639 GIR_RootToRootCopy, /*OpIdx*/2, // src1
25640 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
25641 GIR_RootToRootCopy, /*OpIdx*/4, // Vm
25642 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
25643 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25644 GIR_RootConstrainSelectedInstOperands,
25645 // GIR_Coverage, 2561,
25646 GIR_EraseRootFromParent_Done,
25647 // Label 1430: @69049
25648 GIM_Try, /*On fail goto*//*Label 1431*/ GIMT_Encode4(69112), // Rule ID 2566 //
25649 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
25650 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vbsl),
25651 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
25652 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
25653 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
25654 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v16s8,
25655 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
25656 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
25657 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
25658 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
25659 // (intrinsic_wo_chain:{ *:[v16i8] } 3416:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VBSPq:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
25660 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VBSPq),
25661 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
25662 GIR_RootToRootCopy, /*OpIdx*/2, // src1
25663 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
25664 GIR_RootToRootCopy, /*OpIdx*/4, // Vm
25665 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
25666 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25667 GIR_RootConstrainSelectedInstOperands,
25668 // GIR_Coverage, 2566,
25669 GIR_EraseRootFromParent_Done,
25670 // Label 1431: @69112
25671 GIM_Try, /*On fail goto*//*Label 1432*/ GIMT_Encode4(69175), // Rule ID 2567 //
25672 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
25673 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vbsl),
25674 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
25675 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
25676 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
25677 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v8s16,
25678 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
25679 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
25680 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
25681 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
25682 // (intrinsic_wo_chain:{ *:[v8i16] } 3416:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VBSPq:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
25683 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VBSPq),
25684 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
25685 GIR_RootToRootCopy, /*OpIdx*/2, // src1
25686 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
25687 GIR_RootToRootCopy, /*OpIdx*/4, // Vm
25688 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
25689 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25690 GIR_RootConstrainSelectedInstOperands,
25691 // GIR_Coverage, 2567,
25692 GIR_EraseRootFromParent_Done,
25693 // Label 1432: @69175
25694 GIM_Try, /*On fail goto*//*Label 1433*/ GIMT_Encode4(69238), // Rule ID 2568 //
25695 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
25696 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vbsl),
25697 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
25698 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
25699 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
25700 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v4s32,
25701 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
25702 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
25703 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
25704 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
25705 // (intrinsic_wo_chain:{ *:[v4i32] } 3416:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VBSPq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
25706 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VBSPq),
25707 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
25708 GIR_RootToRootCopy, /*OpIdx*/2, // src1
25709 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
25710 GIR_RootToRootCopy, /*OpIdx*/4, // Vm
25711 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
25712 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25713 GIR_RootConstrainSelectedInstOperands,
25714 // GIR_Coverage, 2568,
25715 GIR_EraseRootFromParent_Done,
25716 // Label 1433: @69238
25717 GIM_Try, /*On fail goto*//*Label 1434*/ GIMT_Encode4(69301), // Rule ID 2569 //
25718 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
25719 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vbsl),
25720 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
25721 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
25722 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
25723 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v4s32,
25724 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
25725 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
25726 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
25727 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
25728 // (intrinsic_wo_chain:{ *:[v4f32] } 3416:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$src1, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) => (VBSPq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
25729 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VBSPq),
25730 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
25731 GIR_RootToRootCopy, /*OpIdx*/2, // src1
25732 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
25733 GIR_RootToRootCopy, /*OpIdx*/4, // Vm
25734 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
25735 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25736 GIR_RootConstrainSelectedInstOperands,
25737 // GIR_Coverage, 2569,
25738 GIR_EraseRootFromParent_Done,
25739 // Label 1434: @69301
25740 GIM_Try, /*On fail goto*//*Label 1435*/ GIMT_Encode4(69364), // Rule ID 2570 //
25741 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
25742 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vbsl),
25743 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s64,
25744 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s64,
25745 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s64,
25746 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v2s64,
25747 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
25748 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
25749 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
25750 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
25751 // (intrinsic_wo_chain:{ *:[v2i64] } 3416:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm) => (VBSPq:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
25752 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VBSPq),
25753 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
25754 GIR_RootToRootCopy, /*OpIdx*/2, // src1
25755 GIR_RootToRootCopy, /*OpIdx*/3, // Vn
25756 GIR_RootToRootCopy, /*OpIdx*/4, // Vm
25757 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
25758 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25759 GIR_RootConstrainSelectedInstOperands,
25760 // GIR_Coverage, 2570,
25761 GIR_EraseRootFromParent_Done,
25762 // Label 1435: @69364
25763 GIM_Try, /*On fail goto*//*Label 1436*/ GIMT_Encode4(69433), // Rule ID 4957 //
25764 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
25765 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqdmlah),
25766 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
25767 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
25768 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
25769 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
25770 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
25771 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
25772 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
25773 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
25774 // (intrinsic_wo_chain:{ *:[v16i8] } 3330:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, rGPR:{ *:[i32] }:$s) => (MVE_VQDMLAH_qrs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, rGPR:{ *:[i32] }:$s)
25775 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQDMLAH_qrs8),
25776 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
25777 GIR_RootToRootCopy, /*OpIdx*/2, // v1
25778 GIR_RootToRootCopy, /*OpIdx*/3, // v2
25779 GIR_RootToRootCopy, /*OpIdx*/4, // s
25780 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
25781 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25782 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25783 GIR_RootConstrainSelectedInstOperands,
25784 // GIR_Coverage, 4957,
25785 GIR_EraseRootFromParent_Done,
25786 // Label 1436: @69433
25787 GIM_Try, /*On fail goto*//*Label 1437*/ GIMT_Encode4(69502), // Rule ID 4959 //
25788 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
25789 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqdmlah),
25790 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
25791 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
25792 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
25793 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
25794 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
25795 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
25796 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
25797 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
25798 // (intrinsic_wo_chain:{ *:[v8i16] } 3330:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, rGPR:{ *:[i32] }:$s) => (MVE_VQDMLAH_qrs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, rGPR:{ *:[i32] }:$s)
25799 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQDMLAH_qrs16),
25800 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
25801 GIR_RootToRootCopy, /*OpIdx*/2, // v1
25802 GIR_RootToRootCopy, /*OpIdx*/3, // v2
25803 GIR_RootToRootCopy, /*OpIdx*/4, // s
25804 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
25805 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25806 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25807 GIR_RootConstrainSelectedInstOperands,
25808 // GIR_Coverage, 4959,
25809 GIR_EraseRootFromParent_Done,
25810 // Label 1437: @69502
25811 GIM_Try, /*On fail goto*//*Label 1438*/ GIMT_Encode4(69571), // Rule ID 4961 //
25812 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
25813 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqdmlah),
25814 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
25815 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
25816 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
25817 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
25818 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
25819 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
25820 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
25821 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
25822 // (intrinsic_wo_chain:{ *:[v4i32] } 3330:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, rGPR:{ *:[i32] }:$s) => (MVE_VQDMLAH_qrs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, rGPR:{ *:[i32] }:$s)
25823 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQDMLAH_qrs32),
25824 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
25825 GIR_RootToRootCopy, /*OpIdx*/2, // v1
25826 GIR_RootToRootCopy, /*OpIdx*/3, // v2
25827 GIR_RootToRootCopy, /*OpIdx*/4, // s
25828 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
25829 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25830 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25831 GIR_RootConstrainSelectedInstOperands,
25832 // GIR_Coverage, 4961,
25833 GIR_EraseRootFromParent_Done,
25834 // Label 1438: @69571
25835 GIM_Try, /*On fail goto*//*Label 1439*/ GIMT_Encode4(69640), // Rule ID 4963 //
25836 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
25837 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqrdmlah),
25838 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
25839 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
25840 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
25841 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
25842 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
25843 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
25844 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
25845 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
25846 // (intrinsic_wo_chain:{ *:[v16i8] } 3339:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, rGPR:{ *:[i32] }:$s) => (MVE_VQRDMLAH_qrs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, rGPR:{ *:[i32] }:$s)
25847 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRDMLAH_qrs8),
25848 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
25849 GIR_RootToRootCopy, /*OpIdx*/2, // v1
25850 GIR_RootToRootCopy, /*OpIdx*/3, // v2
25851 GIR_RootToRootCopy, /*OpIdx*/4, // s
25852 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
25853 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25854 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25855 GIR_RootConstrainSelectedInstOperands,
25856 // GIR_Coverage, 4963,
25857 GIR_EraseRootFromParent_Done,
25858 // Label 1439: @69640
25859 GIM_Try, /*On fail goto*//*Label 1440*/ GIMT_Encode4(69709), // Rule ID 4965 //
25860 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
25861 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqrdmlah),
25862 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
25863 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
25864 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
25865 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
25866 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
25867 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
25868 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
25869 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
25870 // (intrinsic_wo_chain:{ *:[v8i16] } 3339:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, rGPR:{ *:[i32] }:$s) => (MVE_VQRDMLAH_qrs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, rGPR:{ *:[i32] }:$s)
25871 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRDMLAH_qrs16),
25872 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
25873 GIR_RootToRootCopy, /*OpIdx*/2, // v1
25874 GIR_RootToRootCopy, /*OpIdx*/3, // v2
25875 GIR_RootToRootCopy, /*OpIdx*/4, // s
25876 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
25877 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25878 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25879 GIR_RootConstrainSelectedInstOperands,
25880 // GIR_Coverage, 4965,
25881 GIR_EraseRootFromParent_Done,
25882 // Label 1440: @69709
25883 GIM_Try, /*On fail goto*//*Label 1441*/ GIMT_Encode4(69778), // Rule ID 4967 //
25884 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
25885 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqrdmlah),
25886 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
25887 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
25888 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
25889 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
25890 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
25891 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
25892 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
25893 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
25894 // (intrinsic_wo_chain:{ *:[v4i32] } 3339:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, rGPR:{ *:[i32] }:$s) => (MVE_VQRDMLAH_qrs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, rGPR:{ *:[i32] }:$s)
25895 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRDMLAH_qrs32),
25896 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
25897 GIR_RootToRootCopy, /*OpIdx*/2, // v1
25898 GIR_RootToRootCopy, /*OpIdx*/3, // v2
25899 GIR_RootToRootCopy, /*OpIdx*/4, // s
25900 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
25901 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25902 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25903 GIR_RootConstrainSelectedInstOperands,
25904 // GIR_Coverage, 4967,
25905 GIR_EraseRootFromParent_Done,
25906 // Label 1441: @69778
25907 GIM_Try, /*On fail goto*//*Label 1442*/ GIMT_Encode4(69847), // Rule ID 4969 //
25908 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
25909 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqdmlash),
25910 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
25911 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
25912 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
25913 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
25914 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
25915 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
25916 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
25917 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
25918 // (intrinsic_wo_chain:{ *:[v16i8] } 3332:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, rGPR:{ *:[i32] }:$s) => (MVE_VQDMLASH_qrs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, rGPR:{ *:[i32] }:$s)
25919 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQDMLASH_qrs8),
25920 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
25921 GIR_RootToRootCopy, /*OpIdx*/2, // v1
25922 GIR_RootToRootCopy, /*OpIdx*/3, // v2
25923 GIR_RootToRootCopy, /*OpIdx*/4, // s
25924 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
25925 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25926 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25927 GIR_RootConstrainSelectedInstOperands,
25928 // GIR_Coverage, 4969,
25929 GIR_EraseRootFromParent_Done,
25930 // Label 1442: @69847
25931 GIM_Try, /*On fail goto*//*Label 1443*/ GIMT_Encode4(69916), // Rule ID 4971 //
25932 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
25933 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqdmlash),
25934 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
25935 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
25936 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
25937 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
25938 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
25939 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
25940 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
25941 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
25942 // (intrinsic_wo_chain:{ *:[v8i16] } 3332:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, rGPR:{ *:[i32] }:$s) => (MVE_VQDMLASH_qrs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, rGPR:{ *:[i32] }:$s)
25943 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQDMLASH_qrs16),
25944 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
25945 GIR_RootToRootCopy, /*OpIdx*/2, // v1
25946 GIR_RootToRootCopy, /*OpIdx*/3, // v2
25947 GIR_RootToRootCopy, /*OpIdx*/4, // s
25948 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
25949 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25950 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25951 GIR_RootConstrainSelectedInstOperands,
25952 // GIR_Coverage, 4971,
25953 GIR_EraseRootFromParent_Done,
25954 // Label 1443: @69916
25955 GIM_Try, /*On fail goto*//*Label 1444*/ GIMT_Encode4(69985), // Rule ID 4973 //
25956 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
25957 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqdmlash),
25958 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
25959 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
25960 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
25961 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
25962 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
25963 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
25964 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
25965 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
25966 // (intrinsic_wo_chain:{ *:[v4i32] } 3332:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, rGPR:{ *:[i32] }:$s) => (MVE_VQDMLASH_qrs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, rGPR:{ *:[i32] }:$s)
25967 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQDMLASH_qrs32),
25968 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
25969 GIR_RootToRootCopy, /*OpIdx*/2, // v1
25970 GIR_RootToRootCopy, /*OpIdx*/3, // v2
25971 GIR_RootToRootCopy, /*OpIdx*/4, // s
25972 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
25973 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25974 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25975 GIR_RootConstrainSelectedInstOperands,
25976 // GIR_Coverage, 4973,
25977 GIR_EraseRootFromParent_Done,
25978 // Label 1444: @69985
25979 GIM_Try, /*On fail goto*//*Label 1445*/ GIMT_Encode4(70054), // Rule ID 4975 //
25980 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
25981 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqrdmlash),
25982 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
25983 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
25984 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
25985 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
25986 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
25987 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
25988 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
25989 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
25990 // (intrinsic_wo_chain:{ *:[v16i8] } 3341:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, rGPR:{ *:[i32] }:$s) => (MVE_VQRDMLASH_qrs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, rGPR:{ *:[i32] }:$s)
25991 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRDMLASH_qrs8),
25992 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
25993 GIR_RootToRootCopy, /*OpIdx*/2, // v1
25994 GIR_RootToRootCopy, /*OpIdx*/3, // v2
25995 GIR_RootToRootCopy, /*OpIdx*/4, // s
25996 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
25997 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25998 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
25999 GIR_RootConstrainSelectedInstOperands,
26000 // GIR_Coverage, 4975,
26001 GIR_EraseRootFromParent_Done,
26002 // Label 1445: @70054
26003 GIM_Try, /*On fail goto*//*Label 1446*/ GIMT_Encode4(70123), // Rule ID 4977 //
26004 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
26005 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqrdmlash),
26006 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
26007 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
26008 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
26009 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
26010 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26011 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26012 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26013 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
26014 // (intrinsic_wo_chain:{ *:[v8i16] } 3341:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, rGPR:{ *:[i32] }:$s) => (MVE_VQRDMLASH_qrs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, rGPR:{ *:[i32] }:$s)
26015 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRDMLASH_qrs16),
26016 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
26017 GIR_RootToRootCopy, /*OpIdx*/2, // v1
26018 GIR_RootToRootCopy, /*OpIdx*/3, // v2
26019 GIR_RootToRootCopy, /*OpIdx*/4, // s
26020 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
26021 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26022 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26023 GIR_RootConstrainSelectedInstOperands,
26024 // GIR_Coverage, 4977,
26025 GIR_EraseRootFromParent_Done,
26026 // Label 1446: @70123
26027 GIM_Try, /*On fail goto*//*Label 1447*/ GIMT_Encode4(70192), // Rule ID 4979 //
26028 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
26029 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqrdmlash),
26030 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
26031 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
26032 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
26033 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
26034 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26035 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26036 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26037 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
26038 // (intrinsic_wo_chain:{ *:[v4i32] } 3341:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, rGPR:{ *:[i32] }:$s) => (MVE_VQRDMLASH_qrs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, rGPR:{ *:[i32] }:$s)
26039 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRDMLASH_qrs32),
26040 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
26041 GIR_RootToRootCopy, /*OpIdx*/2, // v1
26042 GIR_RootToRootCopy, /*OpIdx*/3, // v2
26043 GIR_RootToRootCopy, /*OpIdx*/4, // s
26044 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
26045 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26046 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26047 GIR_RootConstrainSelectedInstOperands,
26048 // GIR_Coverage, 4979,
26049 GIR_EraseRootFromParent_Done,
26050 // Label 1447: @70192
26051 GIM_Try, /*On fail goto*//*Label 1448*/ GIMT_Encode4(70284), // Rule ID 2712 //
26052 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
26053 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_sha1c),
26054 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
26055 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
26056 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
26057 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v4s32,
26058 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
26059 // (intrinsic_wo_chain:{ *:[v4i32] } 3396:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$hash_abcd, i32:{ *:[i32] }:$hash_e, v4i32:{ *:[v4i32] }:$wk) => (SHA1C:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$hash_abcd, (SUBREG_TO_REG:{ *:[v16i8] } 0:{ *:[i64] }, (COPY_TO_REGCLASS:{ *:[f32] } i32:{ *:[i32] }:$hash_e, SPR:{ *:[i32] }), ssub_0:{ *:[i32] }), v4i32:{ *:[v4i32] }:$wk)
26060 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v16s8,
26061 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
26062 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
26063 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
26064 GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/3, // hash_e
26065 GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
26066 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::SUBREG_TO_REG),
26067 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
26068 GIR_AddImm8, /*InsnID*/1, /*Imm*/0,
26069 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
26070 GIR_AddImm8, /*InsnID*/1, /*Imm*/17,
26071 GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/0, GIMT_Encode2(ARM::DPair_with_ssub_0RegClassID),
26072 GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/2, GIMT_Encode2(ARM::SPRRegClassID),
26073 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SHA1C),
26074 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
26075 GIR_RootToRootCopy, /*OpIdx*/2, // hash_abcd
26076 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
26077 GIR_RootToRootCopy, /*OpIdx*/4, // wk
26078 GIR_RootConstrainSelectedInstOperands,
26079 // GIR_Coverage, 2712,
26080 GIR_EraseRootFromParent_Done,
26081 // Label 1448: @70284
26082 GIM_Try, /*On fail goto*//*Label 1449*/ GIMT_Encode4(70376), // Rule ID 2713 //
26083 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
26084 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_sha1m),
26085 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
26086 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
26087 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
26088 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v4s32,
26089 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
26090 // (intrinsic_wo_chain:{ *:[v4i32] } 3398:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$hash_abcd, i32:{ *:[i32] }:$hash_e, v4i32:{ *:[v4i32] }:$wk) => (SHA1M:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$hash_abcd, (SUBREG_TO_REG:{ *:[v16i8] } 0:{ *:[i64] }, (COPY_TO_REGCLASS:{ *:[f32] } i32:{ *:[i32] }:$hash_e, SPR:{ *:[i32] }), ssub_0:{ *:[i32] }), v4i32:{ *:[v4i32] }:$wk)
26091 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v16s8,
26092 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
26093 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
26094 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
26095 GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/3, // hash_e
26096 GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
26097 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::SUBREG_TO_REG),
26098 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
26099 GIR_AddImm8, /*InsnID*/1, /*Imm*/0,
26100 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
26101 GIR_AddImm8, /*InsnID*/1, /*Imm*/17,
26102 GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/0, GIMT_Encode2(ARM::DPair_with_ssub_0RegClassID),
26103 GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/2, GIMT_Encode2(ARM::SPRRegClassID),
26104 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SHA1M),
26105 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
26106 GIR_RootToRootCopy, /*OpIdx*/2, // hash_abcd
26107 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
26108 GIR_RootToRootCopy, /*OpIdx*/4, // wk
26109 GIR_RootConstrainSelectedInstOperands,
26110 // GIR_Coverage, 2713,
26111 GIR_EraseRootFromParent_Done,
26112 // Label 1449: @70376
26113 GIM_Try, /*On fail goto*//*Label 1450*/ GIMT_Encode4(70468), // Rule ID 2714 //
26114 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
26115 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_sha1p),
26116 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
26117 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
26118 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
26119 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v4s32,
26120 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
26121 // (intrinsic_wo_chain:{ *:[v4i32] } 3399:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$hash_abcd, i32:{ *:[i32] }:$hash_e, v4i32:{ *:[v4i32] }:$wk) => (SHA1P:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$hash_abcd, (SUBREG_TO_REG:{ *:[v16i8] } 0:{ *:[i64] }, (COPY_TO_REGCLASS:{ *:[f32] } i32:{ *:[i32] }:$hash_e, SPR:{ *:[i32] }), ssub_0:{ *:[i32] }), v4i32:{ *:[v4i32] }:$wk)
26122 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v16s8,
26123 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
26124 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
26125 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
26126 GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/3, // hash_e
26127 GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
26128 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::SUBREG_TO_REG),
26129 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
26130 GIR_AddImm8, /*InsnID*/1, /*Imm*/0,
26131 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
26132 GIR_AddImm8, /*InsnID*/1, /*Imm*/17,
26133 GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/0, GIMT_Encode2(ARM::DPair_with_ssub_0RegClassID),
26134 GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/2, GIMT_Encode2(ARM::SPRRegClassID),
26135 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SHA1P),
26136 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
26137 GIR_RootToRootCopy, /*OpIdx*/2, // hash_abcd
26138 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
26139 GIR_RootToRootCopy, /*OpIdx*/4, // wk
26140 GIR_RootConstrainSelectedInstOperands,
26141 // GIR_Coverage, 2714,
26142 GIR_EraseRootFromParent_Done,
26143 // Label 1450: @70468
26144 GIM_Reject,
26145 // Label 1288: @70469
26146 GIM_Try, /*On fail goto*//*Label 1451*/ GIMT_Encode4(73799),
26147 GIM_CheckNumOperands, /*MI*/0, /*Expected*/6,
26148 GIM_Try, /*On fail goto*//*Label 1452*/ GIMT_Encode4(70559), // Rule ID 3842 //
26149 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshll_imm),
26150 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
26151 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
26152 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
26153 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
26154 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
26155 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26156 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26157 GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 8,
26158 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
26159 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
26160 // (intrinsic_wo_chain:{ *:[v8i16] } 3371:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, 8:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSHLL_lws8bh:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$src)
26161 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
26162 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
26163 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
26164 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSHLL_lws8bh),
26165 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
26166 GIR_RootToRootCopy, /*OpIdx*/2, // src
26167 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
26168 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26169 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26170 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
26171 GIR_RootConstrainSelectedInstOperands,
26172 // GIR_Coverage, 3842,
26173 GIR_EraseRootFromParent_Done,
26174 // Label 1452: @70559
26175 GIM_Try, /*On fail goto*//*Label 1453*/ GIMT_Encode4(70641), // Rule ID 3846 //
26176 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshll_imm),
26177 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
26178 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
26179 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
26180 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
26181 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
26182 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26183 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26184 GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 8,
26185 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
26186 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
26187 // (intrinsic_wo_chain:{ *:[v8i16] } 3371:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, 8:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VSHLL_lws8th:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$src)
26188 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
26189 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
26190 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
26191 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSHLL_lws8th),
26192 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
26193 GIR_RootToRootCopy, /*OpIdx*/2, // src
26194 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
26195 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26196 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26197 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
26198 GIR_RootConstrainSelectedInstOperands,
26199 // GIR_Coverage, 3846,
26200 GIR_EraseRootFromParent_Done,
26201 // Label 1453: @70641
26202 GIM_Try, /*On fail goto*//*Label 1454*/ GIMT_Encode4(70723), // Rule ID 3850 //
26203 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshll_imm),
26204 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
26205 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
26206 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
26207 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
26208 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
26209 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26210 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26211 GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 16,
26212 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
26213 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
26214 // (intrinsic_wo_chain:{ *:[v4i32] } 3371:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, 16:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSHLL_lws16bh:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$src)
26215 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
26216 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
26217 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
26218 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSHLL_lws16bh),
26219 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
26220 GIR_RootToRootCopy, /*OpIdx*/2, // src
26221 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
26222 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26223 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26224 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
26225 GIR_RootConstrainSelectedInstOperands,
26226 // GIR_Coverage, 3850,
26227 GIR_EraseRootFromParent_Done,
26228 // Label 1454: @70723
26229 GIM_Try, /*On fail goto*//*Label 1455*/ GIMT_Encode4(70805), // Rule ID 3854 //
26230 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshll_imm),
26231 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
26232 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
26233 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
26234 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
26235 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
26236 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26237 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26238 GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 16,
26239 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
26240 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
26241 // (intrinsic_wo_chain:{ *:[v4i32] } 3371:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, 16:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VSHLL_lws16th:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$src)
26242 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
26243 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
26244 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
26245 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSHLL_lws16th),
26246 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
26247 GIR_RootToRootCopy, /*OpIdx*/2, // src
26248 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
26249 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26250 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26251 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
26252 GIR_RootConstrainSelectedInstOperands,
26253 // GIR_Coverage, 3854,
26254 GIR_EraseRootFromParent_Done,
26255 // Label 1455: @70805
26256 GIM_Try, /*On fail goto*//*Label 1456*/ GIMT_Encode4(70887), // Rule ID 3858 //
26257 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshll_imm),
26258 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
26259 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
26260 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
26261 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
26262 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
26263 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26264 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26265 GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 8,
26266 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
26267 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
26268 // (intrinsic_wo_chain:{ *:[v8i16] } 3371:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, 8:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSHLL_lwu8bh:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$src)
26269 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
26270 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
26271 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
26272 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSHLL_lwu8bh),
26273 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
26274 GIR_RootToRootCopy, /*OpIdx*/2, // src
26275 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
26276 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26277 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26278 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
26279 GIR_RootConstrainSelectedInstOperands,
26280 // GIR_Coverage, 3858,
26281 GIR_EraseRootFromParent_Done,
26282 // Label 1456: @70887
26283 GIM_Try, /*On fail goto*//*Label 1457*/ GIMT_Encode4(70969), // Rule ID 3862 //
26284 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshll_imm),
26285 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
26286 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
26287 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
26288 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
26289 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
26290 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26291 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26292 GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 8,
26293 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
26294 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
26295 // (intrinsic_wo_chain:{ *:[v8i16] } 3371:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, 8:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VSHLL_lwu8th:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$src)
26296 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
26297 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
26298 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
26299 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSHLL_lwu8th),
26300 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
26301 GIR_RootToRootCopy, /*OpIdx*/2, // src
26302 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
26303 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26304 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26305 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
26306 GIR_RootConstrainSelectedInstOperands,
26307 // GIR_Coverage, 3862,
26308 GIR_EraseRootFromParent_Done,
26309 // Label 1457: @70969
26310 GIM_Try, /*On fail goto*//*Label 1458*/ GIMT_Encode4(71051), // Rule ID 3866 //
26311 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshll_imm),
26312 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
26313 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
26314 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
26315 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
26316 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
26317 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26318 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26319 GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 16,
26320 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
26321 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
26322 // (intrinsic_wo_chain:{ *:[v4i32] } 3371:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, 16:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSHLL_lwu16bh:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$src)
26323 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
26324 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
26325 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
26326 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSHLL_lwu16bh),
26327 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
26328 GIR_RootToRootCopy, /*OpIdx*/2, // src
26329 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
26330 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26331 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26332 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
26333 GIR_RootConstrainSelectedInstOperands,
26334 // GIR_Coverage, 3866,
26335 GIR_EraseRootFromParent_Done,
26336 // Label 1458: @71051
26337 GIM_Try, /*On fail goto*//*Label 1459*/ GIMT_Encode4(71133), // Rule ID 3870 //
26338 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshll_imm),
26339 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
26340 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
26341 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
26342 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
26343 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
26344 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26345 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26346 GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 16,
26347 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
26348 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
26349 // (intrinsic_wo_chain:{ *:[v4i32] } 3371:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, 16:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VSHLL_lwu16th:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$src)
26350 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
26351 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
26352 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
26353 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSHLL_lwu16th),
26354 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
26355 GIR_RootToRootCopy, /*OpIdx*/2, // src
26356 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
26357 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26358 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26359 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
26360 GIR_RootConstrainSelectedInstOperands,
26361 // GIR_Coverage, 3870,
26362 GIR_EraseRootFromParent_Done,
26363 // Label 1459: @71133
26364 GIM_Try, /*On fail goto*//*Label 1460*/ GIMT_Encode4(71220), // Rule ID 4502 //
26365 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
26366 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmull),
26367 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
26368 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
26369 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
26370 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
26371 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
26372 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26373 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26374 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26375 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
26376 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
26377 // (intrinsic_wo_chain:{ *:[v8i16] } 3326:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VMULLBs8:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
26378 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
26379 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
26380 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
26381 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMULLBs8),
26382 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
26383 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
26384 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
26385 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
26386 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26387 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26388 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
26389 GIR_RootConstrainSelectedInstOperands,
26390 // GIR_Coverage, 4502,
26391 GIR_EraseRootFromParent_Done,
26392 // Label 1460: @71220
26393 GIM_Try, /*On fail goto*//*Label 1461*/ GIMT_Encode4(71307), // Rule ID 4504 //
26394 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
26395 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmull),
26396 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
26397 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
26398 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
26399 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
26400 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
26401 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26402 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26403 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26404 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
26405 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
26406 // (intrinsic_wo_chain:{ *:[v8i16] } 3326:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VMULLTs8:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
26407 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
26408 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
26409 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
26410 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMULLTs8),
26411 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
26412 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
26413 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
26414 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
26415 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26416 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26417 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
26418 GIR_RootConstrainSelectedInstOperands,
26419 // GIR_Coverage, 4504,
26420 GIR_EraseRootFromParent_Done,
26421 // Label 1461: @71307
26422 GIM_Try, /*On fail goto*//*Label 1462*/ GIMT_Encode4(71394), // Rule ID 4506 //
26423 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
26424 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmull),
26425 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
26426 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
26427 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
26428 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
26429 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
26430 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26431 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26432 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26433 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
26434 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
26435 // (intrinsic_wo_chain:{ *:[v4i32] } 3326:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VMULLBs16:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
26436 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
26437 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
26438 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
26439 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMULLBs16),
26440 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
26441 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
26442 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
26443 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
26444 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26445 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26446 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
26447 GIR_RootConstrainSelectedInstOperands,
26448 // GIR_Coverage, 4506,
26449 GIR_EraseRootFromParent_Done,
26450 // Label 1462: @71394
26451 GIM_Try, /*On fail goto*//*Label 1463*/ GIMT_Encode4(71481), // Rule ID 4508 //
26452 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
26453 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmull),
26454 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
26455 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
26456 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
26457 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
26458 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
26459 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26460 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26461 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26462 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
26463 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
26464 // (intrinsic_wo_chain:{ *:[v4i32] } 3326:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VMULLTs16:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
26465 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
26466 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
26467 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
26468 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMULLTs16),
26469 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
26470 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
26471 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
26472 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
26473 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26474 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26475 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
26476 GIR_RootConstrainSelectedInstOperands,
26477 // GIR_Coverage, 4508,
26478 GIR_EraseRootFromParent_Done,
26479 // Label 1463: @71481
26480 GIM_Try, /*On fail goto*//*Label 1464*/ GIMT_Encode4(71568), // Rule ID 4510 //
26481 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
26482 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmull),
26483 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s64,
26484 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
26485 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
26486 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
26487 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
26488 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26489 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26490 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26491 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
26492 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
26493 // (intrinsic_wo_chain:{ *:[v2i64] } 3326:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VMULLBs32:{ *:[v2i64] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
26494 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
26495 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
26496 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
26497 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMULLBs32),
26498 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
26499 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
26500 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
26501 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
26502 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26503 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26504 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
26505 GIR_RootConstrainSelectedInstOperands,
26506 // GIR_Coverage, 4510,
26507 GIR_EraseRootFromParent_Done,
26508 // Label 1464: @71568
26509 GIM_Try, /*On fail goto*//*Label 1465*/ GIMT_Encode4(71655), // Rule ID 4512 //
26510 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
26511 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmull),
26512 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s64,
26513 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
26514 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
26515 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
26516 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
26517 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26518 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26519 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26520 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
26521 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
26522 // (intrinsic_wo_chain:{ *:[v2i64] } 3326:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VMULLTs32:{ *:[v2i64] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
26523 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
26524 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
26525 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
26526 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMULLTs32),
26527 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
26528 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
26529 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
26530 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
26531 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26532 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26533 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
26534 GIR_RootConstrainSelectedInstOperands,
26535 // GIR_Coverage, 4512,
26536 GIR_EraseRootFromParent_Done,
26537 // Label 1465: @71655
26538 GIM_Try, /*On fail goto*//*Label 1466*/ GIMT_Encode4(71742), // Rule ID 4514 //
26539 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
26540 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmull),
26541 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
26542 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
26543 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
26544 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
26545 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
26546 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26547 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26548 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26549 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
26550 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
26551 // (intrinsic_wo_chain:{ *:[v8i16] } 3326:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VMULLBu8:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
26552 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
26553 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
26554 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
26555 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMULLBu8),
26556 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
26557 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
26558 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
26559 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
26560 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26561 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26562 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
26563 GIR_RootConstrainSelectedInstOperands,
26564 // GIR_Coverage, 4514,
26565 GIR_EraseRootFromParent_Done,
26566 // Label 1466: @71742
26567 GIM_Try, /*On fail goto*//*Label 1467*/ GIMT_Encode4(71829), // Rule ID 4516 //
26568 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
26569 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmull),
26570 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
26571 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
26572 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
26573 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
26574 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
26575 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26576 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26577 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26578 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
26579 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
26580 // (intrinsic_wo_chain:{ *:[v8i16] } 3326:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VMULLTu8:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
26581 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
26582 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
26583 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
26584 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMULLTu8),
26585 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
26586 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
26587 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
26588 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
26589 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26590 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26591 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
26592 GIR_RootConstrainSelectedInstOperands,
26593 // GIR_Coverage, 4516,
26594 GIR_EraseRootFromParent_Done,
26595 // Label 1467: @71829
26596 GIM_Try, /*On fail goto*//*Label 1468*/ GIMT_Encode4(71916), // Rule ID 4518 //
26597 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
26598 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmull),
26599 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
26600 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
26601 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
26602 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
26603 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
26604 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26605 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26606 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26607 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
26608 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
26609 // (intrinsic_wo_chain:{ *:[v4i32] } 3326:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VMULLBu16:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
26610 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
26611 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
26612 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
26613 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMULLBu16),
26614 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
26615 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
26616 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
26617 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
26618 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26619 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26620 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
26621 GIR_RootConstrainSelectedInstOperands,
26622 // GIR_Coverage, 4518,
26623 GIR_EraseRootFromParent_Done,
26624 // Label 1468: @71916
26625 GIM_Try, /*On fail goto*//*Label 1469*/ GIMT_Encode4(72003), // Rule ID 4520 //
26626 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
26627 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmull),
26628 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
26629 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
26630 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
26631 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
26632 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
26633 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26634 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26635 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26636 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
26637 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
26638 // (intrinsic_wo_chain:{ *:[v4i32] } 3326:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VMULLTu16:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
26639 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
26640 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
26641 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
26642 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMULLTu16),
26643 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
26644 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
26645 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
26646 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
26647 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26648 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26649 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
26650 GIR_RootConstrainSelectedInstOperands,
26651 // GIR_Coverage, 4520,
26652 GIR_EraseRootFromParent_Done,
26653 // Label 1469: @72003
26654 GIM_Try, /*On fail goto*//*Label 1470*/ GIMT_Encode4(72090), // Rule ID 4522 //
26655 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
26656 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmull),
26657 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s64,
26658 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
26659 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
26660 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
26661 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
26662 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26663 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26664 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26665 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
26666 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
26667 // (intrinsic_wo_chain:{ *:[v2i64] } 3326:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VMULLBu32:{ *:[v2i64] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
26668 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
26669 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
26670 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
26671 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMULLBu32),
26672 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
26673 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
26674 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
26675 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
26676 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26677 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26678 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
26679 GIR_RootConstrainSelectedInstOperands,
26680 // GIR_Coverage, 4522,
26681 GIR_EraseRootFromParent_Done,
26682 // Label 1470: @72090
26683 GIM_Try, /*On fail goto*//*Label 1471*/ GIMT_Encode4(72177), // Rule ID 4524 //
26684 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
26685 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmull),
26686 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s64,
26687 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
26688 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
26689 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
26690 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
26691 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26692 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26693 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26694 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
26695 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
26696 // (intrinsic_wo_chain:{ *:[v2i64] } 3326:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VMULLTu32:{ *:[v2i64] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
26697 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
26698 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
26699 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
26700 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMULLTu32),
26701 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
26702 GIR_RootToRootCopy, /*OpIdx*/2, // Qm
26703 GIR_RootToRootCopy, /*OpIdx*/3, // Qn
26704 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
26705 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26706 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26707 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
26708 GIR_RootConstrainSelectedInstOperands,
26709 // GIR_Coverage, 4524,
26710 GIR_EraseRootFromParent_Done,
26711 // Label 1471: @72177
26712 GIM_Try, /*On fail goto*//*Label 1472*/ GIMT_Encode4(72273), // Rule ID 4147 //
26713 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
26714 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vcaddq),
26715 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
26716 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
26717 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
26718 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v8s16,
26719 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_v8s16,
26720 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26721 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
26722 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
26723 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
26724 // MIs[1] Operand 1
26725 // No operand predicates
26726 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26727 GIM_RootCheckRegBankForClass, /*Op*/5, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26728 GIM_CheckIsSafeToFold, /*NumInsns*/1,
26729 // (intrinsic_wo_chain:{ *:[v8f16] } 3269:{ *:[iPTR] }, 1:{ *:[i32] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v8f16] }:$Qn, MQPR:{ *:[v8f16] }:$Qm) => (MVE_VCADDf16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qn, MQPR:{ *:[v8f16] }:$Qm, (imm:{ *:[i32] }):$rot)
26730 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
26731 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
26732 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
26733 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCADDf16),
26734 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
26735 GIR_RootToRootCopy, /*OpIdx*/4, // Qn
26736 GIR_RootToRootCopy, /*OpIdx*/5, // Qm
26737 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // rot
26738 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
26739 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26740 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26741 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
26742 GIR_RootConstrainSelectedInstOperands,
26743 // GIR_Coverage, 4147,
26744 GIR_EraseRootFromParent_Done,
26745 // Label 1472: @72273
26746 GIM_Try, /*On fail goto*//*Label 1473*/ GIMT_Encode4(72369), // Rule ID 4149 //
26747 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
26748 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vcaddq),
26749 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
26750 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
26751 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
26752 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v4s32,
26753 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_v4s32,
26754 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26755 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
26756 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
26757 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
26758 // MIs[1] Operand 1
26759 // No operand predicates
26760 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26761 GIM_RootCheckRegBankForClass, /*Op*/5, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26762 GIM_CheckIsSafeToFold, /*NumInsns*/1,
26763 // (intrinsic_wo_chain:{ *:[v4f32] } 3269:{ *:[iPTR] }, 1:{ *:[i32] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v4f32] }:$Qn, MQPR:{ *:[v4f32] }:$Qm) => (MVE_VCADDf32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qn, MQPR:{ *:[v4f32] }:$Qm, (imm:{ *:[i32] }):$rot)
26764 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
26765 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
26766 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
26767 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCADDf32),
26768 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
26769 GIR_RootToRootCopy, /*OpIdx*/4, // Qn
26770 GIR_RootToRootCopy, /*OpIdx*/5, // Qm
26771 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // rot
26772 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
26773 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26774 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26775 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
26776 GIR_RootConstrainSelectedInstOperands,
26777 // GIR_Coverage, 4149,
26778 GIR_EraseRootFromParent_Done,
26779 // Label 1473: @72369
26780 GIM_Try, /*On fail goto*//*Label 1474*/ GIMT_Encode4(72465), // Rule ID 4656 //
26781 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
26782 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vcaddq),
26783 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
26784 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
26785 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
26786 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v16s8,
26787 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_v16s8,
26788 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26789 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
26790 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
26791 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
26792 // MIs[1] Operand 1
26793 // No operand predicates
26794 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26795 GIM_RootCheckRegBankForClass, /*Op*/5, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26796 GIM_CheckIsSafeToFold, /*NumInsns*/1,
26797 // (intrinsic_wo_chain:{ *:[v16i8] } 3269:{ *:[iPTR] }, 1:{ *:[i32] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm) => (MVE_VCADDi8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm, (imm:{ *:[i32] }):$rot)
26798 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
26799 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
26800 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
26801 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCADDi8),
26802 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
26803 GIR_RootToRootCopy, /*OpIdx*/4, // Qn
26804 GIR_RootToRootCopy, /*OpIdx*/5, // Qm
26805 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // rot
26806 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
26807 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26808 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26809 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
26810 GIR_RootConstrainSelectedInstOperands,
26811 // GIR_Coverage, 4656,
26812 GIR_EraseRootFromParent_Done,
26813 // Label 1474: @72465
26814 GIM_Try, /*On fail goto*//*Label 1475*/ GIMT_Encode4(72561), // Rule ID 4658 //
26815 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
26816 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vcaddq),
26817 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
26818 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
26819 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
26820 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v8s16,
26821 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_v8s16,
26822 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26823 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
26824 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
26825 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
26826 // MIs[1] Operand 1
26827 // No operand predicates
26828 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26829 GIM_RootCheckRegBankForClass, /*Op*/5, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26830 GIM_CheckIsSafeToFold, /*NumInsns*/1,
26831 // (intrinsic_wo_chain:{ *:[v8i16] } 3269:{ *:[iPTR] }, 1:{ *:[i32] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm) => (MVE_VCADDi16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$rot)
26832 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
26833 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
26834 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
26835 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCADDi16),
26836 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
26837 GIR_RootToRootCopy, /*OpIdx*/4, // Qn
26838 GIR_RootToRootCopy, /*OpIdx*/5, // Qm
26839 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // rot
26840 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
26841 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26842 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26843 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
26844 GIR_RootConstrainSelectedInstOperands,
26845 // GIR_Coverage, 4658,
26846 GIR_EraseRootFromParent_Done,
26847 // Label 1475: @72561
26848 GIM_Try, /*On fail goto*//*Label 1476*/ GIMT_Encode4(72657), // Rule ID 4660 //
26849 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
26850 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vcaddq),
26851 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
26852 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
26853 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
26854 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v4s32,
26855 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_v4s32,
26856 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26857 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
26858 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
26859 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
26860 // MIs[1] Operand 1
26861 // No operand predicates
26862 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26863 GIM_RootCheckRegBankForClass, /*Op*/5, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26864 GIM_CheckIsSafeToFold, /*NumInsns*/1,
26865 // (intrinsic_wo_chain:{ *:[v4i32] } 3269:{ *:[iPTR] }, 1:{ *:[i32] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm) => (MVE_VCADDi32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$rot)
26866 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
26867 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
26868 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
26869 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCADDi32),
26870 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
26871 GIR_RootToRootCopy, /*OpIdx*/4, // Qn
26872 GIR_RootToRootCopy, /*OpIdx*/5, // Qm
26873 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // rot
26874 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
26875 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26876 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26877 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
26878 GIR_RootConstrainSelectedInstOperands,
26879 // GIR_Coverage, 4660,
26880 GIR_EraseRootFromParent_Done,
26881 // Label 1476: @72657
26882 GIM_Try, /*On fail goto*//*Label 1477*/ GIMT_Encode4(72753), // Rule ID 4662 //
26883 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
26884 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vcaddq),
26885 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
26886 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
26887 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
26888 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v16s8,
26889 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_v16s8,
26890 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26891 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
26892 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
26893 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
26894 // MIs[1] Operand 1
26895 // No operand predicates
26896 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26897 GIM_RootCheckRegBankForClass, /*Op*/5, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26898 GIM_CheckIsSafeToFold, /*NumInsns*/1,
26899 // (intrinsic_wo_chain:{ *:[v16i8] } 3269:{ *:[iPTR] }, 0:{ *:[i32] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm) => (MVE_VHCADDs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm, (imm:{ *:[i32] }):$rot)
26900 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
26901 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
26902 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
26903 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VHCADDs8),
26904 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
26905 GIR_RootToRootCopy, /*OpIdx*/4, // Qn
26906 GIR_RootToRootCopy, /*OpIdx*/5, // Qm
26907 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // rot
26908 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
26909 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26910 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26911 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
26912 GIR_RootConstrainSelectedInstOperands,
26913 // GIR_Coverage, 4662,
26914 GIR_EraseRootFromParent_Done,
26915 // Label 1477: @72753
26916 GIM_Try, /*On fail goto*//*Label 1478*/ GIMT_Encode4(72849), // Rule ID 4664 //
26917 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
26918 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vcaddq),
26919 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
26920 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
26921 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
26922 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v8s16,
26923 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_v8s16,
26924 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26925 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
26926 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
26927 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
26928 // MIs[1] Operand 1
26929 // No operand predicates
26930 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26931 GIM_RootCheckRegBankForClass, /*Op*/5, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26932 GIM_CheckIsSafeToFold, /*NumInsns*/1,
26933 // (intrinsic_wo_chain:{ *:[v8i16] } 3269:{ *:[iPTR] }, 0:{ *:[i32] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm) => (MVE_VHCADDs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$rot)
26934 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
26935 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
26936 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
26937 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VHCADDs16),
26938 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
26939 GIR_RootToRootCopy, /*OpIdx*/4, // Qn
26940 GIR_RootToRootCopy, /*OpIdx*/5, // Qm
26941 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // rot
26942 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
26943 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26944 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26945 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
26946 GIR_RootConstrainSelectedInstOperands,
26947 // GIR_Coverage, 4664,
26948 GIR_EraseRootFromParent_Done,
26949 // Label 1478: @72849
26950 GIM_Try, /*On fail goto*//*Label 1479*/ GIMT_Encode4(72945), // Rule ID 4666 //
26951 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
26952 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vcaddq),
26953 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
26954 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
26955 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
26956 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v4s32,
26957 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_v4s32,
26958 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26959 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
26960 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
26961 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
26962 // MIs[1] Operand 1
26963 // No operand predicates
26964 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26965 GIM_RootCheckRegBankForClass, /*Op*/5, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26966 GIM_CheckIsSafeToFold, /*NumInsns*/1,
26967 // (intrinsic_wo_chain:{ *:[v4i32] } 3269:{ *:[iPTR] }, 0:{ *:[i32] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm) => (MVE_VHCADDs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$rot)
26968 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
26969 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
26970 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
26971 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VHCADDs32),
26972 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
26973 GIR_RootToRootCopy, /*OpIdx*/4, // Qn
26974 GIR_RootToRootCopy, /*OpIdx*/5, // Qm
26975 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // rot
26976 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
26977 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26978 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
26979 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
26980 GIR_RootConstrainSelectedInstOperands,
26981 // GIR_Coverage, 4666,
26982 GIR_EraseRootFromParent_Done,
26983 // Label 1479: @72945
26984 GIM_Try, /*On fail goto*//*Label 1480*/ GIMT_Encode4(73021), // Rule ID 3134 //
26985 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
26986 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vabav),
26987 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
26988 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
26989 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
26990 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v16s8,
26991 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_v16s8,
26992 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
26993 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
26994 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
26995 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26996 GIM_RootCheckRegBankForClass, /*Op*/5, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
26997 // (intrinsic_wo_chain:{ *:[i32] } 3262:{ *:[iPTR] }, 0:{ *:[i32] }, rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm) => (MVE_VABAVs8:{ *:[i32] } rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm)
26998 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VABAVs8),
26999 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rda]
27000 GIR_RootToRootCopy, /*OpIdx*/3, // Rda_src
27001 GIR_RootToRootCopy, /*OpIdx*/4, // Qn
27002 GIR_RootToRootCopy, /*OpIdx*/5, // Qm
27003 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
27004 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27005 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27006 GIR_RootConstrainSelectedInstOperands,
27007 // GIR_Coverage, 3134,
27008 GIR_EraseRootFromParent_Done,
27009 // Label 1480: @73021
27010 GIM_Try, /*On fail goto*//*Label 1481*/ GIMT_Encode4(73097), // Rule ID 3136 //
27011 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
27012 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vabav),
27013 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
27014 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
27015 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
27016 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v8s16,
27017 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_v8s16,
27018 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
27019 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
27020 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
27021 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27022 GIM_RootCheckRegBankForClass, /*Op*/5, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27023 // (intrinsic_wo_chain:{ *:[i32] } 3262:{ *:[iPTR] }, 0:{ *:[i32] }, rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm) => (MVE_VABAVs16:{ *:[i32] } rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm)
27024 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VABAVs16),
27025 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rda]
27026 GIR_RootToRootCopy, /*OpIdx*/3, // Rda_src
27027 GIR_RootToRootCopy, /*OpIdx*/4, // Qn
27028 GIR_RootToRootCopy, /*OpIdx*/5, // Qm
27029 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
27030 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27031 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27032 GIR_RootConstrainSelectedInstOperands,
27033 // GIR_Coverage, 3136,
27034 GIR_EraseRootFromParent_Done,
27035 // Label 1481: @73097
27036 GIM_Try, /*On fail goto*//*Label 1482*/ GIMT_Encode4(73173), // Rule ID 3138 //
27037 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
27038 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vabav),
27039 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
27040 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
27041 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
27042 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v4s32,
27043 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_v4s32,
27044 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
27045 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
27046 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
27047 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27048 GIM_RootCheckRegBankForClass, /*Op*/5, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27049 // (intrinsic_wo_chain:{ *:[i32] } 3262:{ *:[iPTR] }, 0:{ *:[i32] }, rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm) => (MVE_VABAVs32:{ *:[i32] } rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm)
27050 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VABAVs32),
27051 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rda]
27052 GIR_RootToRootCopy, /*OpIdx*/3, // Rda_src
27053 GIR_RootToRootCopy, /*OpIdx*/4, // Qn
27054 GIR_RootToRootCopy, /*OpIdx*/5, // Qm
27055 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
27056 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27057 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27058 GIR_RootConstrainSelectedInstOperands,
27059 // GIR_Coverage, 3138,
27060 GIR_EraseRootFromParent_Done,
27061 // Label 1482: @73173
27062 GIM_Try, /*On fail goto*//*Label 1483*/ GIMT_Encode4(73249), // Rule ID 3140 //
27063 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
27064 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vabav),
27065 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
27066 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
27067 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
27068 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v16s8,
27069 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_v16s8,
27070 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
27071 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
27072 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
27073 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27074 GIM_RootCheckRegBankForClass, /*Op*/5, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27075 // (intrinsic_wo_chain:{ *:[i32] } 3262:{ *:[iPTR] }, 1:{ *:[i32] }, rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm) => (MVE_VABAVu8:{ *:[i32] } rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm)
27076 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VABAVu8),
27077 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rda]
27078 GIR_RootToRootCopy, /*OpIdx*/3, // Rda_src
27079 GIR_RootToRootCopy, /*OpIdx*/4, // Qn
27080 GIR_RootToRootCopy, /*OpIdx*/5, // Qm
27081 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
27082 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27083 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27084 GIR_RootConstrainSelectedInstOperands,
27085 // GIR_Coverage, 3140,
27086 GIR_EraseRootFromParent_Done,
27087 // Label 1483: @73249
27088 GIM_Try, /*On fail goto*//*Label 1484*/ GIMT_Encode4(73325), // Rule ID 3142 //
27089 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
27090 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vabav),
27091 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
27092 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
27093 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
27094 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v8s16,
27095 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_v8s16,
27096 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
27097 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
27098 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
27099 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27100 GIM_RootCheckRegBankForClass, /*Op*/5, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27101 // (intrinsic_wo_chain:{ *:[i32] } 3262:{ *:[iPTR] }, 1:{ *:[i32] }, rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm) => (MVE_VABAVu16:{ *:[i32] } rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm)
27102 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VABAVu16),
27103 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rda]
27104 GIR_RootToRootCopy, /*OpIdx*/3, // Rda_src
27105 GIR_RootToRootCopy, /*OpIdx*/4, // Qn
27106 GIR_RootToRootCopy, /*OpIdx*/5, // Qm
27107 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
27108 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27109 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27110 GIR_RootConstrainSelectedInstOperands,
27111 // GIR_Coverage, 3142,
27112 GIR_EraseRootFromParent_Done,
27113 // Label 1484: @73325
27114 GIM_Try, /*On fail goto*//*Label 1485*/ GIMT_Encode4(73401), // Rule ID 3144 //
27115 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
27116 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vabav),
27117 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
27118 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
27119 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
27120 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v4s32,
27121 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_v4s32,
27122 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
27123 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
27124 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
27125 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27126 GIM_RootCheckRegBankForClass, /*Op*/5, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27127 // (intrinsic_wo_chain:{ *:[i32] } 3262:{ *:[iPTR] }, 1:{ *:[i32] }, rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm) => (MVE_VABAVu32:{ *:[i32] } rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm)
27128 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VABAVu32),
27129 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rda]
27130 GIR_RootToRootCopy, /*OpIdx*/3, // Rda_src
27131 GIR_RootToRootCopy, /*OpIdx*/4, // Qn
27132 GIR_RootToRootCopy, /*OpIdx*/5, // Qm
27133 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
27134 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27135 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27136 GIR_RootConstrainSelectedInstOperands,
27137 // GIR_Coverage, 3144,
27138 GIR_EraseRootFromParent_Done,
27139 // Label 1485: @73401
27140 GIM_Try, /*On fail goto*//*Label 1486*/ GIMT_Encode4(73486), // Rule ID 4111 //
27141 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
27142 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vcmlaq),
27143 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
27144 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
27145 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
27146 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v8s16,
27147 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_v8s16,
27148 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27149 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
27150 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
27151 // MIs[1] Operand 1
27152 // No operand predicates
27153 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27154 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27155 GIM_RootCheckRegBankForClass, /*Op*/5, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27156 GIM_CheckIsSafeToFold, /*NumInsns*/1,
27157 // (intrinsic_wo_chain:{ *:[v8f16] } 3272:{ *:[iPTR] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v8f16] }:$Qd_src, MQPR:{ *:[v8f16] }:$Qn, MQPR:{ *:[v8f16] }:$Qm) => (MVE_VCMLAf16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qd_src, MQPR:{ *:[v8f16] }:$Qn, MQPR:{ *:[v8f16] }:$Qm, (imm:{ *:[i32] }):$rot)
27158 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCMLAf16),
27159 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
27160 GIR_RootToRootCopy, /*OpIdx*/3, // Qd_src
27161 GIR_RootToRootCopy, /*OpIdx*/4, // Qn
27162 GIR_RootToRootCopy, /*OpIdx*/5, // Qm
27163 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // rot
27164 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
27165 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27166 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27167 GIR_RootConstrainSelectedInstOperands,
27168 // GIR_Coverage, 4111,
27169 GIR_EraseRootFromParent_Done,
27170 // Label 1486: @73486
27171 GIM_Try, /*On fail goto*//*Label 1487*/ GIMT_Encode4(73571), // Rule ID 4114 //
27172 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
27173 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vcmlaq),
27174 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
27175 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
27176 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
27177 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v4s32,
27178 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_v4s32,
27179 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27180 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
27181 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
27182 // MIs[1] Operand 1
27183 // No operand predicates
27184 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27185 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27186 GIM_RootCheckRegBankForClass, /*Op*/5, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27187 GIM_CheckIsSafeToFold, /*NumInsns*/1,
27188 // (intrinsic_wo_chain:{ *:[v4f32] } 3272:{ *:[iPTR] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v4f32] }:$Qd_src, MQPR:{ *:[v4f32] }:$Qn, MQPR:{ *:[v4f32] }:$Qm) => (MVE_VCMLAf32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qd_src, MQPR:{ *:[v4f32] }:$Qn, MQPR:{ *:[v4f32] }:$Qm, (imm:{ *:[i32] }):$rot)
27189 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCMLAf32),
27190 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
27191 GIR_RootToRootCopy, /*OpIdx*/3, // Qd_src
27192 GIR_RootToRootCopy, /*OpIdx*/4, // Qn
27193 GIR_RootToRootCopy, /*OpIdx*/5, // Qm
27194 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // rot
27195 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
27196 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27197 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27198 GIR_RootConstrainSelectedInstOperands,
27199 // GIR_Coverage, 4114,
27200 GIR_EraseRootFromParent_Done,
27201 // Label 1487: @73571
27202 GIM_Try, /*On fail goto*//*Label 1488*/ GIMT_Encode4(73667), // Rule ID 2706 //
27203 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
27204 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vtbx2),
27205 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s8,
27206 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
27207 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s8,
27208 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v8s8,
27209 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_v8s8,
27210 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
27211 // (intrinsic_wo_chain:{ *:[v8i8] } 3528:{ *:[iPTR] }, v8i8:{ *:[v8i8] }:$orig, v8i8:{ *:[v8i8] }:$Vn0, v8i8:{ *:[v8i8] }:$Vn1, v8i8:{ *:[v8i8] }:$Vm) => (VTBX2:{ *:[v8i8] } v8i8:{ *:[v8i8] }:$orig, (REG_SEQUENCE:{ *:[v16i8] } DPair:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn0, dsub_0:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn1, dsub_1:{ *:[i32] }), v8i8:{ *:[v8i8] }:$Vm)
27212 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v16s8,
27213 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::REG_SEQUENCE),
27214 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
27215 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // Vn0
27216 GIR_AddImm8, /*InsnID*/1, /*SubRegIndex*/1,
27217 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/4, // Vn1
27218 GIR_AddImm8, /*InsnID*/1, /*SubRegIndex*/2,
27219 GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/0, GIMT_Encode2(ARM::DPairRegClassID),
27220 GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/1, GIMT_Encode2(ARM::DPRRegClassID),
27221 GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/3, GIMT_Encode2(ARM::DPRRegClassID),
27222 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VTBX2),
27223 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
27224 GIR_RootToRootCopy, /*OpIdx*/2, // orig
27225 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
27226 GIR_RootToRootCopy, /*OpIdx*/5, // Vm
27227 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
27228 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27229 GIR_RootConstrainSelectedInstOperands,
27230 // GIR_Coverage, 2706,
27231 GIR_EraseRootFromParent_Done,
27232 // Label 1488: @73667
27233 GIM_Try, /*On fail goto*//*Label 1489*/ GIMT_Encode4(73798), // Rule ID 2707 //
27234 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
27235 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vtbl3),
27236 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s8,
27237 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
27238 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s8,
27239 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v8s8,
27240 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_v8s8,
27241 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
27242 // (intrinsic_wo_chain:{ *:[v8i8] } 3525:{ *:[iPTR] }, v8i8:{ *:[v8i8] }:$Vn0, v8i8:{ *:[v8i8] }:$Vn1, v8i8:{ *:[v8i8] }:$Vn2, v8i8:{ *:[v8i8] }:$Vm) => (VTBL3Pseudo:{ *:[v8i8] } (REG_SEQUENCE:{ *:[v4i64] } QQPR:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn0, dsub_0:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn1, dsub_1:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn2, dsub_2:{ *:[i32] }, (IMPLICIT_DEF:{ *:[v8i8] }), dsub_3:{ *:[i32] }), v8i8:{ *:[v8i8] }:$Vm)
27243 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s64,
27244 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v8s8,
27245 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
27246 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
27247 GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
27248 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::REG_SEQUENCE),
27249 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
27250 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // Vn0
27251 GIR_AddImm8, /*InsnID*/1, /*SubRegIndex*/1,
27252 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // Vn1
27253 GIR_AddImm8, /*InsnID*/1, /*SubRegIndex*/2,
27254 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/4, // Vn2
27255 GIR_AddImm8, /*InsnID*/1, /*SubRegIndex*/3,
27256 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
27257 GIR_AddImm8, /*InsnID*/1, /*SubRegIndex*/4,
27258 GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/0, GIMT_Encode2(ARM::QQPRRegClassID),
27259 GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/1, GIMT_Encode2(ARM::DPRRegClassID),
27260 GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/3, GIMT_Encode2(ARM::DPRRegClassID),
27261 GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/5, GIMT_Encode2(ARM::DPRRegClassID),
27262 GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/7, GIMT_Encode2(ARM::DPRRegClassID),
27263 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VTBL3Pseudo),
27264 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
27265 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
27266 GIR_RootToRootCopy, /*OpIdx*/5, // Vm
27267 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
27268 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27269 GIR_RootConstrainSelectedInstOperands,
27270 // GIR_Coverage, 2707,
27271 GIR_EraseRootFromParent_Done,
27272 // Label 1489: @73798
27273 GIM_Reject,
27274 // Label 1451: @73799
27275 GIM_Try, /*On fail goto*//*Label 1490*/ GIMT_Encode4(79057),
27276 GIM_CheckNumOperands, /*MI*/0, /*Expected*/7,
27277 GIM_Try, /*On fail goto*//*Label 1491*/ GIMT_Encode4(73898), // Rule ID 3953 //
27278 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_vector),
27279 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
27280 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
27281 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
27282 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
27283 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
27284 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
27285 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27286 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27287 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27288 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
27289 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
27290 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
27291 // (intrinsic_wo_chain:{ *:[v16i8] } 3367:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSHL_by_vecs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh)
27292 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
27293 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
27294 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
27295 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSHL_by_vecs8),
27296 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
27297 GIR_RootToRootCopy, /*OpIdx*/2, // in
27298 GIR_RootToRootCopy, /*OpIdx*/3, // sh
27299 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
27300 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27301 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27302 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
27303 GIR_RootConstrainSelectedInstOperands,
27304 // GIR_Coverage, 3953,
27305 GIR_EraseRootFromParent_Done,
27306 // Label 1491: @73898
27307 GIM_Try, /*On fail goto*//*Label 1492*/ GIMT_Encode4(73989), // Rule ID 3955 //
27308 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_vector),
27309 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
27310 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
27311 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
27312 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
27313 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
27314 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
27315 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27316 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27317 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27318 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
27319 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
27320 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
27321 // (intrinsic_wo_chain:{ *:[v8i16] } 3367:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSHL_by_vecs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh)
27322 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
27323 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
27324 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
27325 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSHL_by_vecs16),
27326 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
27327 GIR_RootToRootCopy, /*OpIdx*/2, // in
27328 GIR_RootToRootCopy, /*OpIdx*/3, // sh
27329 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
27330 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27331 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27332 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
27333 GIR_RootConstrainSelectedInstOperands,
27334 // GIR_Coverage, 3955,
27335 GIR_EraseRootFromParent_Done,
27336 // Label 1492: @73989
27337 GIM_Try, /*On fail goto*//*Label 1493*/ GIMT_Encode4(74080), // Rule ID 3957 //
27338 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_vector),
27339 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
27340 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
27341 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
27342 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
27343 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
27344 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
27345 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27346 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27347 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27348 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
27349 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
27350 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
27351 // (intrinsic_wo_chain:{ *:[v4i32] } 3367:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSHL_by_vecs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh)
27352 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
27353 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
27354 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
27355 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSHL_by_vecs32),
27356 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
27357 GIR_RootToRootCopy, /*OpIdx*/2, // in
27358 GIR_RootToRootCopy, /*OpIdx*/3, // sh
27359 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
27360 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27361 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27362 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
27363 GIR_RootConstrainSelectedInstOperands,
27364 // GIR_Coverage, 3957,
27365 GIR_EraseRootFromParent_Done,
27366 // Label 1493: @74080
27367 GIM_Try, /*On fail goto*//*Label 1494*/ GIMT_Encode4(74171), // Rule ID 3959 //
27368 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_vector),
27369 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
27370 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
27371 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
27372 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
27373 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
27374 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
27375 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27376 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27377 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27378 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
27379 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
27380 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
27381 // (intrinsic_wo_chain:{ *:[v16i8] } 3367:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VSHL_by_vecu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh)
27382 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
27383 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
27384 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
27385 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSHL_by_vecu8),
27386 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
27387 GIR_RootToRootCopy, /*OpIdx*/2, // in
27388 GIR_RootToRootCopy, /*OpIdx*/3, // sh
27389 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
27390 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27391 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27392 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
27393 GIR_RootConstrainSelectedInstOperands,
27394 // GIR_Coverage, 3959,
27395 GIR_EraseRootFromParent_Done,
27396 // Label 1494: @74171
27397 GIM_Try, /*On fail goto*//*Label 1495*/ GIMT_Encode4(74262), // Rule ID 3961 //
27398 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_vector),
27399 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
27400 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
27401 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
27402 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
27403 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
27404 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
27405 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27406 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27407 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27408 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
27409 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
27410 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
27411 // (intrinsic_wo_chain:{ *:[v8i16] } 3367:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VSHL_by_vecu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh)
27412 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
27413 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
27414 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
27415 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSHL_by_vecu16),
27416 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
27417 GIR_RootToRootCopy, /*OpIdx*/2, // in
27418 GIR_RootToRootCopy, /*OpIdx*/3, // sh
27419 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
27420 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27421 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27422 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
27423 GIR_RootConstrainSelectedInstOperands,
27424 // GIR_Coverage, 3961,
27425 GIR_EraseRootFromParent_Done,
27426 // Label 1495: @74262
27427 GIM_Try, /*On fail goto*//*Label 1496*/ GIMT_Encode4(74353), // Rule ID 3963 //
27428 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_vector),
27429 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
27430 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
27431 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
27432 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
27433 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
27434 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
27435 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27436 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27437 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27438 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
27439 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
27440 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
27441 // (intrinsic_wo_chain:{ *:[v4i32] } 3367:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VSHL_by_vecu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh)
27442 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
27443 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
27444 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
27445 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSHL_by_vecu32),
27446 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
27447 GIR_RootToRootCopy, /*OpIdx*/2, // in
27448 GIR_RootToRootCopy, /*OpIdx*/3, // sh
27449 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
27450 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27451 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27452 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
27453 GIR_RootConstrainSelectedInstOperands,
27454 // GIR_Coverage, 3963,
27455 GIR_EraseRootFromParent_Done,
27456 // Label 1496: @74353
27457 GIM_Try, /*On fail goto*//*Label 1497*/ GIMT_Encode4(74444), // Rule ID 3965 //
27458 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_vector),
27459 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
27460 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
27461 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
27462 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
27463 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
27464 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
27465 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27466 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27467 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27468 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
27469 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
27470 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
27471 // (intrinsic_wo_chain:{ *:[v16i8] } 3367:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQSHL_by_vecs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh)
27472 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
27473 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
27474 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
27475 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQSHL_by_vecs8),
27476 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
27477 GIR_RootToRootCopy, /*OpIdx*/2, // in
27478 GIR_RootToRootCopy, /*OpIdx*/3, // sh
27479 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
27480 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27481 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27482 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
27483 GIR_RootConstrainSelectedInstOperands,
27484 // GIR_Coverage, 3965,
27485 GIR_EraseRootFromParent_Done,
27486 // Label 1497: @74444
27487 GIM_Try, /*On fail goto*//*Label 1498*/ GIMT_Encode4(74535), // Rule ID 3967 //
27488 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_vector),
27489 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
27490 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
27491 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
27492 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
27493 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
27494 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
27495 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27496 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27497 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27498 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
27499 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
27500 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
27501 // (intrinsic_wo_chain:{ *:[v8i16] } 3367:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQSHL_by_vecs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh)
27502 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
27503 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
27504 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
27505 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQSHL_by_vecs16),
27506 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
27507 GIR_RootToRootCopy, /*OpIdx*/2, // in
27508 GIR_RootToRootCopy, /*OpIdx*/3, // sh
27509 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
27510 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27511 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27512 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
27513 GIR_RootConstrainSelectedInstOperands,
27514 // GIR_Coverage, 3967,
27515 GIR_EraseRootFromParent_Done,
27516 // Label 1498: @74535
27517 GIM_Try, /*On fail goto*//*Label 1499*/ GIMT_Encode4(74626), // Rule ID 3969 //
27518 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_vector),
27519 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
27520 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
27521 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
27522 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
27523 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
27524 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
27525 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27526 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27527 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27528 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
27529 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
27530 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
27531 // (intrinsic_wo_chain:{ *:[v4i32] } 3367:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQSHL_by_vecs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh)
27532 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
27533 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
27534 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
27535 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQSHL_by_vecs32),
27536 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
27537 GIR_RootToRootCopy, /*OpIdx*/2, // in
27538 GIR_RootToRootCopy, /*OpIdx*/3, // sh
27539 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
27540 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27541 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27542 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
27543 GIR_RootConstrainSelectedInstOperands,
27544 // GIR_Coverage, 3969,
27545 GIR_EraseRootFromParent_Done,
27546 // Label 1499: @74626
27547 GIM_Try, /*On fail goto*//*Label 1500*/ GIMT_Encode4(74717), // Rule ID 3971 //
27548 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_vector),
27549 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
27550 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
27551 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
27552 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
27553 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
27554 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
27555 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27556 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27557 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27558 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
27559 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
27560 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
27561 // (intrinsic_wo_chain:{ *:[v16i8] } 3367:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQSHL_by_vecu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh)
27562 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
27563 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
27564 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
27565 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQSHL_by_vecu8),
27566 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
27567 GIR_RootToRootCopy, /*OpIdx*/2, // in
27568 GIR_RootToRootCopy, /*OpIdx*/3, // sh
27569 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
27570 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27571 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27572 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
27573 GIR_RootConstrainSelectedInstOperands,
27574 // GIR_Coverage, 3971,
27575 GIR_EraseRootFromParent_Done,
27576 // Label 1500: @74717
27577 GIM_Try, /*On fail goto*//*Label 1501*/ GIMT_Encode4(74808), // Rule ID 3973 //
27578 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_vector),
27579 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
27580 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
27581 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
27582 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
27583 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
27584 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
27585 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27586 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27587 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27588 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
27589 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
27590 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
27591 // (intrinsic_wo_chain:{ *:[v8i16] } 3367:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQSHL_by_vecu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh)
27592 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
27593 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
27594 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
27595 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQSHL_by_vecu16),
27596 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
27597 GIR_RootToRootCopy, /*OpIdx*/2, // in
27598 GIR_RootToRootCopy, /*OpIdx*/3, // sh
27599 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
27600 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27601 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27602 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
27603 GIR_RootConstrainSelectedInstOperands,
27604 // GIR_Coverage, 3973,
27605 GIR_EraseRootFromParent_Done,
27606 // Label 1501: @74808
27607 GIM_Try, /*On fail goto*//*Label 1502*/ GIMT_Encode4(74899), // Rule ID 3975 //
27608 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_vector),
27609 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
27610 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
27611 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
27612 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
27613 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
27614 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
27615 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27616 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27617 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27618 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
27619 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
27620 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
27621 // (intrinsic_wo_chain:{ *:[v4i32] } 3367:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQSHL_by_vecu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh)
27622 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
27623 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
27624 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
27625 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQSHL_by_vecu32),
27626 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
27627 GIR_RootToRootCopy, /*OpIdx*/2, // in
27628 GIR_RootToRootCopy, /*OpIdx*/3, // sh
27629 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
27630 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27631 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27632 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
27633 GIR_RootConstrainSelectedInstOperands,
27634 // GIR_Coverage, 3975,
27635 GIR_EraseRootFromParent_Done,
27636 // Label 1502: @74899
27637 GIM_Try, /*On fail goto*//*Label 1503*/ GIMT_Encode4(74990), // Rule ID 3977 //
27638 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_vector),
27639 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
27640 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
27641 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
27642 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
27643 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
27644 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
27645 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27646 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27647 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27648 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
27649 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
27650 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
27651 // (intrinsic_wo_chain:{ *:[v16i8] } 3367:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQRSHL_by_vecs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh)
27652 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
27653 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
27654 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
27655 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRSHL_by_vecs8),
27656 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
27657 GIR_RootToRootCopy, /*OpIdx*/2, // in
27658 GIR_RootToRootCopy, /*OpIdx*/3, // sh
27659 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
27660 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27661 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27662 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
27663 GIR_RootConstrainSelectedInstOperands,
27664 // GIR_Coverage, 3977,
27665 GIR_EraseRootFromParent_Done,
27666 // Label 1503: @74990
27667 GIM_Try, /*On fail goto*//*Label 1504*/ GIMT_Encode4(75081), // Rule ID 3979 //
27668 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_vector),
27669 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
27670 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
27671 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
27672 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
27673 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
27674 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
27675 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27676 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27677 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27678 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
27679 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
27680 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
27681 // (intrinsic_wo_chain:{ *:[v8i16] } 3367:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQRSHL_by_vecs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh)
27682 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
27683 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
27684 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
27685 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRSHL_by_vecs16),
27686 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
27687 GIR_RootToRootCopy, /*OpIdx*/2, // in
27688 GIR_RootToRootCopy, /*OpIdx*/3, // sh
27689 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
27690 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27691 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27692 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
27693 GIR_RootConstrainSelectedInstOperands,
27694 // GIR_Coverage, 3979,
27695 GIR_EraseRootFromParent_Done,
27696 // Label 1504: @75081
27697 GIM_Try, /*On fail goto*//*Label 1505*/ GIMT_Encode4(75172), // Rule ID 3981 //
27698 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_vector),
27699 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
27700 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
27701 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
27702 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
27703 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
27704 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
27705 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27706 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27707 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27708 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
27709 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
27710 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
27711 // (intrinsic_wo_chain:{ *:[v4i32] } 3367:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQRSHL_by_vecs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh)
27712 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
27713 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
27714 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
27715 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRSHL_by_vecs32),
27716 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
27717 GIR_RootToRootCopy, /*OpIdx*/2, // in
27718 GIR_RootToRootCopy, /*OpIdx*/3, // sh
27719 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
27720 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27721 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27722 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
27723 GIR_RootConstrainSelectedInstOperands,
27724 // GIR_Coverage, 3981,
27725 GIR_EraseRootFromParent_Done,
27726 // Label 1505: @75172
27727 GIM_Try, /*On fail goto*//*Label 1506*/ GIMT_Encode4(75263), // Rule ID 3983 //
27728 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_vector),
27729 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
27730 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
27731 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
27732 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
27733 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
27734 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
27735 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27736 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27737 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27738 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
27739 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
27740 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
27741 // (intrinsic_wo_chain:{ *:[v16i8] } 3367:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQRSHL_by_vecu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh)
27742 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
27743 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
27744 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
27745 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRSHL_by_vecu8),
27746 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
27747 GIR_RootToRootCopy, /*OpIdx*/2, // in
27748 GIR_RootToRootCopy, /*OpIdx*/3, // sh
27749 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
27750 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27751 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27752 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
27753 GIR_RootConstrainSelectedInstOperands,
27754 // GIR_Coverage, 3983,
27755 GIR_EraseRootFromParent_Done,
27756 // Label 1506: @75263
27757 GIM_Try, /*On fail goto*//*Label 1507*/ GIMT_Encode4(75354), // Rule ID 3985 //
27758 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_vector),
27759 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
27760 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
27761 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
27762 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
27763 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
27764 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
27765 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27766 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27767 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27768 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
27769 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
27770 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
27771 // (intrinsic_wo_chain:{ *:[v8i16] } 3367:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQRSHL_by_vecu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh)
27772 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
27773 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
27774 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
27775 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRSHL_by_vecu16),
27776 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
27777 GIR_RootToRootCopy, /*OpIdx*/2, // in
27778 GIR_RootToRootCopy, /*OpIdx*/3, // sh
27779 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
27780 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27781 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27782 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
27783 GIR_RootConstrainSelectedInstOperands,
27784 // GIR_Coverage, 3985,
27785 GIR_EraseRootFromParent_Done,
27786 // Label 1507: @75354
27787 GIM_Try, /*On fail goto*//*Label 1508*/ GIMT_Encode4(75445), // Rule ID 3987 //
27788 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_vector),
27789 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
27790 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
27791 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
27792 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
27793 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
27794 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
27795 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27796 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27797 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27798 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
27799 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
27800 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
27801 // (intrinsic_wo_chain:{ *:[v4i32] } 3367:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQRSHL_by_vecu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh)
27802 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
27803 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
27804 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
27805 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRSHL_by_vecu32),
27806 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
27807 GIR_RootToRootCopy, /*OpIdx*/2, // in
27808 GIR_RootToRootCopy, /*OpIdx*/3, // sh
27809 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
27810 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27811 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27812 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
27813 GIR_RootConstrainSelectedInstOperands,
27814 // GIR_Coverage, 3987,
27815 GIR_EraseRootFromParent_Done,
27816 // Label 1508: @75445
27817 GIM_Try, /*On fail goto*//*Label 1509*/ GIMT_Encode4(75536), // Rule ID 3989 //
27818 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_vector),
27819 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
27820 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
27821 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
27822 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
27823 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
27824 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
27825 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27826 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27827 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27828 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
27829 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
27830 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
27831 // (intrinsic_wo_chain:{ *:[v16i8] } 3367:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VRSHL_by_vecs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh)
27832 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
27833 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
27834 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
27835 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRSHL_by_vecs8),
27836 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
27837 GIR_RootToRootCopy, /*OpIdx*/2, // in
27838 GIR_RootToRootCopy, /*OpIdx*/3, // sh
27839 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
27840 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27841 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27842 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
27843 GIR_RootConstrainSelectedInstOperands,
27844 // GIR_Coverage, 3989,
27845 GIR_EraseRootFromParent_Done,
27846 // Label 1509: @75536
27847 GIM_Try, /*On fail goto*//*Label 1510*/ GIMT_Encode4(75627), // Rule ID 3991 //
27848 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_vector),
27849 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
27850 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
27851 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
27852 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
27853 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
27854 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
27855 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27856 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27857 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27858 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
27859 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
27860 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
27861 // (intrinsic_wo_chain:{ *:[v8i16] } 3367:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VRSHL_by_vecs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh)
27862 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
27863 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
27864 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
27865 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRSHL_by_vecs16),
27866 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
27867 GIR_RootToRootCopy, /*OpIdx*/2, // in
27868 GIR_RootToRootCopy, /*OpIdx*/3, // sh
27869 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
27870 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27871 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27872 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
27873 GIR_RootConstrainSelectedInstOperands,
27874 // GIR_Coverage, 3991,
27875 GIR_EraseRootFromParent_Done,
27876 // Label 1510: @75627
27877 GIM_Try, /*On fail goto*//*Label 1511*/ GIMT_Encode4(75718), // Rule ID 3993 //
27878 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_vector),
27879 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
27880 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
27881 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
27882 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
27883 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
27884 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
27885 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27886 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27887 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27888 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
27889 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
27890 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
27891 // (intrinsic_wo_chain:{ *:[v4i32] } 3367:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VRSHL_by_vecs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh)
27892 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
27893 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
27894 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
27895 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRSHL_by_vecs32),
27896 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
27897 GIR_RootToRootCopy, /*OpIdx*/2, // in
27898 GIR_RootToRootCopy, /*OpIdx*/3, // sh
27899 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
27900 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27901 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27902 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
27903 GIR_RootConstrainSelectedInstOperands,
27904 // GIR_Coverage, 3993,
27905 GIR_EraseRootFromParent_Done,
27906 // Label 1511: @75718
27907 GIM_Try, /*On fail goto*//*Label 1512*/ GIMT_Encode4(75809), // Rule ID 3995 //
27908 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_vector),
27909 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
27910 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
27911 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
27912 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
27913 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
27914 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
27915 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27916 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27917 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27918 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
27919 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
27920 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
27921 // (intrinsic_wo_chain:{ *:[v16i8] } 3367:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VRSHL_by_vecu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh)
27922 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
27923 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
27924 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
27925 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRSHL_by_vecu8),
27926 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
27927 GIR_RootToRootCopy, /*OpIdx*/2, // in
27928 GIR_RootToRootCopy, /*OpIdx*/3, // sh
27929 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
27930 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27931 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27932 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
27933 GIR_RootConstrainSelectedInstOperands,
27934 // GIR_Coverage, 3995,
27935 GIR_EraseRootFromParent_Done,
27936 // Label 1512: @75809
27937 GIM_Try, /*On fail goto*//*Label 1513*/ GIMT_Encode4(75900), // Rule ID 3997 //
27938 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_vector),
27939 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
27940 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
27941 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
27942 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
27943 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
27944 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
27945 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27946 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27947 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27948 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
27949 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
27950 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
27951 // (intrinsic_wo_chain:{ *:[v8i16] } 3367:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VRSHL_by_vecu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh)
27952 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
27953 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
27954 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
27955 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRSHL_by_vecu16),
27956 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
27957 GIR_RootToRootCopy, /*OpIdx*/2, // in
27958 GIR_RootToRootCopy, /*OpIdx*/3, // sh
27959 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
27960 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27961 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27962 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
27963 GIR_RootConstrainSelectedInstOperands,
27964 // GIR_Coverage, 3997,
27965 GIR_EraseRootFromParent_Done,
27966 // Label 1513: @75900
27967 GIM_Try, /*On fail goto*//*Label 1514*/ GIMT_Encode4(75991), // Rule ID 3999 //
27968 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_vector),
27969 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
27970 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
27971 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
27972 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
27973 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
27974 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
27975 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27976 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27977 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
27978 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
27979 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
27980 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
27981 // (intrinsic_wo_chain:{ *:[v4i32] } 3367:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VRSHL_by_vecu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh)
27982 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
27983 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
27984 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
27985 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRSHL_by_vecu32),
27986 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
27987 GIR_RootToRootCopy, /*OpIdx*/2, // in
27988 GIR_RootToRootCopy, /*OpIdx*/3, // sh
27989 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
27990 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27991 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
27992 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
27993 GIR_RootConstrainSelectedInstOperands,
27994 // GIR_Coverage, 3999,
27995 GIR_EraseRootFromParent_Done,
27996 // Label 1514: @75991
27997 GIM_Try, /*On fail goto*//*Label 1515*/ GIMT_Encode4(76069), // Rule ID 4604 //
27998 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqmovn),
27999 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
28000 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
28001 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
28002 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
28003 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
28004 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
28005 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28006 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28007 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28008 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
28009 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
28010 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
28011 // (intrinsic_wo_chain:{ *:[v8i16] } 3337:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qd_src, MQPR:{ *:[v4i32] }:$Qm, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQMOVNs32bh:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qd_src, MQPR:{ *:[v4i32] }:$Qm)
28012 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQMOVNs32bh),
28013 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
28014 GIR_RootToRootCopy, /*OpIdx*/2, // Qd_src
28015 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
28016 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
28017 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28018 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28019 GIR_RootConstrainSelectedInstOperands,
28020 // GIR_Coverage, 4604,
28021 GIR_EraseRootFromParent_Done,
28022 // Label 1515: @76069
28023 GIM_Try, /*On fail goto*//*Label 1516*/ GIMT_Encode4(76147), // Rule ID 4606 //
28024 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqmovn),
28025 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
28026 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
28027 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
28028 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
28029 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
28030 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
28031 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28032 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28033 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28034 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
28035 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
28036 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
28037 // (intrinsic_wo_chain:{ *:[v8i16] } 3337:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qd_src, MQPR:{ *:[v4i32] }:$Qm, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQMOVNs32th:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qd_src, MQPR:{ *:[v4i32] }:$Qm)
28038 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQMOVNs32th),
28039 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
28040 GIR_RootToRootCopy, /*OpIdx*/2, // Qd_src
28041 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
28042 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
28043 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28044 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28045 GIR_RootConstrainSelectedInstOperands,
28046 // GIR_Coverage, 4606,
28047 GIR_EraseRootFromParent_Done,
28048 // Label 1516: @76147
28049 GIM_Try, /*On fail goto*//*Label 1517*/ GIMT_Encode4(76225), // Rule ID 4608 //
28050 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqmovn),
28051 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
28052 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
28053 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
28054 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
28055 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
28056 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
28057 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28058 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28059 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28060 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
28061 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
28062 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
28063 // (intrinsic_wo_chain:{ *:[v16i8] } 3337:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qd_src, MQPR:{ *:[v8i16] }:$Qm, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQMOVNs16bh:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qd_src, MQPR:{ *:[v8i16] }:$Qm)
28064 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQMOVNs16bh),
28065 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
28066 GIR_RootToRootCopy, /*OpIdx*/2, // Qd_src
28067 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
28068 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
28069 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28070 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28071 GIR_RootConstrainSelectedInstOperands,
28072 // GIR_Coverage, 4608,
28073 GIR_EraseRootFromParent_Done,
28074 // Label 1517: @76225
28075 GIM_Try, /*On fail goto*//*Label 1518*/ GIMT_Encode4(76303), // Rule ID 4610 //
28076 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqmovn),
28077 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
28078 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
28079 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
28080 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
28081 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
28082 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
28083 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28084 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28085 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28086 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
28087 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
28088 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
28089 // (intrinsic_wo_chain:{ *:[v16i8] } 3337:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qd_src, MQPR:{ *:[v8i16] }:$Qm, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQMOVNs16th:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qd_src, MQPR:{ *:[v8i16] }:$Qm)
28090 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQMOVNs16th),
28091 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
28092 GIR_RootToRootCopy, /*OpIdx*/2, // Qd_src
28093 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
28094 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
28095 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28096 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28097 GIR_RootConstrainSelectedInstOperands,
28098 // GIR_Coverage, 4610,
28099 GIR_EraseRootFromParent_Done,
28100 // Label 1518: @76303
28101 GIM_Try, /*On fail goto*//*Label 1519*/ GIMT_Encode4(76381), // Rule ID 4612 //
28102 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqmovn),
28103 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
28104 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
28105 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
28106 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
28107 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
28108 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
28109 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28110 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28111 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28112 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
28113 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
28114 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
28115 // (intrinsic_wo_chain:{ *:[v8i16] } 3337:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qd_src, MQPR:{ *:[v4i32] }:$Qm, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQMOVNu32bh:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qd_src, MQPR:{ *:[v4i32] }:$Qm)
28116 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQMOVNu32bh),
28117 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
28118 GIR_RootToRootCopy, /*OpIdx*/2, // Qd_src
28119 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
28120 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
28121 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28122 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28123 GIR_RootConstrainSelectedInstOperands,
28124 // GIR_Coverage, 4612,
28125 GIR_EraseRootFromParent_Done,
28126 // Label 1519: @76381
28127 GIM_Try, /*On fail goto*//*Label 1520*/ GIMT_Encode4(76459), // Rule ID 4614 //
28128 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqmovn),
28129 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
28130 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
28131 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
28132 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
28133 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
28134 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
28135 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28136 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28137 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28138 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
28139 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
28140 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
28141 // (intrinsic_wo_chain:{ *:[v8i16] } 3337:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qd_src, MQPR:{ *:[v4i32] }:$Qm, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQMOVNu32th:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qd_src, MQPR:{ *:[v4i32] }:$Qm)
28142 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQMOVNu32th),
28143 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
28144 GIR_RootToRootCopy, /*OpIdx*/2, // Qd_src
28145 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
28146 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
28147 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28148 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28149 GIR_RootConstrainSelectedInstOperands,
28150 // GIR_Coverage, 4614,
28151 GIR_EraseRootFromParent_Done,
28152 // Label 1520: @76459
28153 GIM_Try, /*On fail goto*//*Label 1521*/ GIMT_Encode4(76537), // Rule ID 4616 //
28154 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqmovn),
28155 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
28156 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
28157 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
28158 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
28159 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
28160 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
28161 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28162 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28163 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28164 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
28165 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
28166 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
28167 // (intrinsic_wo_chain:{ *:[v16i8] } 3337:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qd_src, MQPR:{ *:[v8i16] }:$Qm, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQMOVNu16bh:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qd_src, MQPR:{ *:[v8i16] }:$Qm)
28168 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQMOVNu16bh),
28169 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
28170 GIR_RootToRootCopy, /*OpIdx*/2, // Qd_src
28171 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
28172 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
28173 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28174 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28175 GIR_RootConstrainSelectedInstOperands,
28176 // GIR_Coverage, 4616,
28177 GIR_EraseRootFromParent_Done,
28178 // Label 1521: @76537
28179 GIM_Try, /*On fail goto*//*Label 1522*/ GIMT_Encode4(76615), // Rule ID 4618 //
28180 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqmovn),
28181 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
28182 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
28183 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
28184 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
28185 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
28186 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
28187 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28188 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28189 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28190 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
28191 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
28192 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
28193 // (intrinsic_wo_chain:{ *:[v16i8] } 3337:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qd_src, MQPR:{ *:[v8i16] }:$Qm, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQMOVNu16th:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qd_src, MQPR:{ *:[v8i16] }:$Qm)
28194 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQMOVNu16th),
28195 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
28196 GIR_RootToRootCopy, /*OpIdx*/2, // Qd_src
28197 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
28198 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
28199 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28200 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28201 GIR_RootConstrainSelectedInstOperands,
28202 // GIR_Coverage, 4618,
28203 GIR_EraseRootFromParent_Done,
28204 // Label 1522: @76615
28205 GIM_Try, /*On fail goto*//*Label 1523*/ GIMT_Encode4(76693), // Rule ID 4620 //
28206 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqmovn),
28207 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
28208 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
28209 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
28210 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
28211 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
28212 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
28213 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28214 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28215 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28216 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
28217 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
28218 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
28219 // (intrinsic_wo_chain:{ *:[v8i16] } 3337:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qd_src, MQPR:{ *:[v4i32] }:$Qm, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQMOVUNs32bh:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qd_src, MQPR:{ *:[v4i32] }:$Qm)
28220 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQMOVUNs32bh),
28221 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
28222 GIR_RootToRootCopy, /*OpIdx*/2, // Qd_src
28223 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
28224 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
28225 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28226 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28227 GIR_RootConstrainSelectedInstOperands,
28228 // GIR_Coverage, 4620,
28229 GIR_EraseRootFromParent_Done,
28230 // Label 1523: @76693
28231 GIM_Try, /*On fail goto*//*Label 1524*/ GIMT_Encode4(76771), // Rule ID 4622 //
28232 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqmovn),
28233 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
28234 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
28235 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
28236 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
28237 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
28238 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
28239 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28240 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28241 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28242 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
28243 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
28244 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
28245 // (intrinsic_wo_chain:{ *:[v8i16] } 3337:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qd_src, MQPR:{ *:[v4i32] }:$Qm, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQMOVUNs32th:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qd_src, MQPR:{ *:[v4i32] }:$Qm)
28246 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQMOVUNs32th),
28247 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
28248 GIR_RootToRootCopy, /*OpIdx*/2, // Qd_src
28249 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
28250 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
28251 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28252 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28253 GIR_RootConstrainSelectedInstOperands,
28254 // GIR_Coverage, 4622,
28255 GIR_EraseRootFromParent_Done,
28256 // Label 1524: @76771
28257 GIM_Try, /*On fail goto*//*Label 1525*/ GIMT_Encode4(76849), // Rule ID 4624 //
28258 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqmovn),
28259 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
28260 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
28261 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
28262 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
28263 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
28264 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
28265 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28266 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28267 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28268 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
28269 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
28270 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
28271 // (intrinsic_wo_chain:{ *:[v16i8] } 3337:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qd_src, MQPR:{ *:[v8i16] }:$Qm, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQMOVUNs16bh:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qd_src, MQPR:{ *:[v8i16] }:$Qm)
28272 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQMOVUNs16bh),
28273 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
28274 GIR_RootToRootCopy, /*OpIdx*/2, // Qd_src
28275 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
28276 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
28277 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28278 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28279 GIR_RootConstrainSelectedInstOperands,
28280 // GIR_Coverage, 4624,
28281 GIR_EraseRootFromParent_Done,
28282 // Label 1525: @76849
28283 GIM_Try, /*On fail goto*//*Label 1526*/ GIMT_Encode4(76927), // Rule ID 4626 //
28284 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqmovn),
28285 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
28286 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
28287 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
28288 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
28289 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
28290 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
28291 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28292 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28293 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28294 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
28295 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
28296 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
28297 // (intrinsic_wo_chain:{ *:[v16i8] } 3337:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qd_src, MQPR:{ *:[v8i16] }:$Qm, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQMOVUNs16th:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qd_src, MQPR:{ *:[v8i16] }:$Qm)
28298 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQMOVUNs16th),
28299 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
28300 GIR_RootToRootCopy, /*OpIdx*/2, // Qd_src
28301 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
28302 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
28303 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28304 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28305 GIR_RootConstrainSelectedInstOperands,
28306 // GIR_Coverage, 4626,
28307 GIR_EraseRootFromParent_Done,
28308 // Label 1526: @76927
28309 GIM_Try, /*On fail goto*//*Label 1527*/ GIMT_Encode4(77005), // Rule ID 4816 //
28310 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_scalar),
28311 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
28312 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
28313 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
28314 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
28315 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
28316 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
28317 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28318 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28319 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
28320 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
28321 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
28322 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
28323 // (intrinsic_wo_chain:{ *:[v16i8] } 3365:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSHL_qrs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh)
28324 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSHL_qrs8),
28325 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
28326 GIR_RootToRootCopy, /*OpIdx*/2, // in
28327 GIR_RootToRootCopy, /*OpIdx*/3, // sh
28328 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
28329 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28330 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28331 GIR_RootConstrainSelectedInstOperands,
28332 // GIR_Coverage, 4816,
28333 GIR_EraseRootFromParent_Done,
28334 // Label 1527: @77005
28335 GIM_Try, /*On fail goto*//*Label 1528*/ GIMT_Encode4(77083), // Rule ID 4818 //
28336 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_scalar),
28337 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
28338 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
28339 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
28340 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
28341 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
28342 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
28343 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28344 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28345 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
28346 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
28347 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
28348 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
28349 // (intrinsic_wo_chain:{ *:[v8i16] } 3365:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSHL_qrs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh)
28350 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSHL_qrs16),
28351 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
28352 GIR_RootToRootCopy, /*OpIdx*/2, // in
28353 GIR_RootToRootCopy, /*OpIdx*/3, // sh
28354 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
28355 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28356 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28357 GIR_RootConstrainSelectedInstOperands,
28358 // GIR_Coverage, 4818,
28359 GIR_EraseRootFromParent_Done,
28360 // Label 1528: @77083
28361 GIM_Try, /*On fail goto*//*Label 1529*/ GIMT_Encode4(77161), // Rule ID 4820 //
28362 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_scalar),
28363 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
28364 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
28365 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
28366 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
28367 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
28368 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
28369 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28370 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28371 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
28372 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
28373 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
28374 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
28375 // (intrinsic_wo_chain:{ *:[v4i32] } 3365:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSHL_qrs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh)
28376 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSHL_qrs32),
28377 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
28378 GIR_RootToRootCopy, /*OpIdx*/2, // in
28379 GIR_RootToRootCopy, /*OpIdx*/3, // sh
28380 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
28381 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28382 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28383 GIR_RootConstrainSelectedInstOperands,
28384 // GIR_Coverage, 4820,
28385 GIR_EraseRootFromParent_Done,
28386 // Label 1529: @77161
28387 GIM_Try, /*On fail goto*//*Label 1530*/ GIMT_Encode4(77239), // Rule ID 4822 //
28388 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_scalar),
28389 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
28390 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
28391 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
28392 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
28393 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
28394 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
28395 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28396 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28397 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
28398 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
28399 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
28400 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
28401 // (intrinsic_wo_chain:{ *:[v16i8] } 3365:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VSHL_qru8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh)
28402 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSHL_qru8),
28403 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
28404 GIR_RootToRootCopy, /*OpIdx*/2, // in
28405 GIR_RootToRootCopy, /*OpIdx*/3, // sh
28406 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
28407 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28408 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28409 GIR_RootConstrainSelectedInstOperands,
28410 // GIR_Coverage, 4822,
28411 GIR_EraseRootFromParent_Done,
28412 // Label 1530: @77239
28413 GIM_Try, /*On fail goto*//*Label 1531*/ GIMT_Encode4(77317), // Rule ID 4824 //
28414 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_scalar),
28415 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
28416 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
28417 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
28418 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
28419 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
28420 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
28421 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28422 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28423 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
28424 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
28425 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
28426 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
28427 // (intrinsic_wo_chain:{ *:[v8i16] } 3365:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VSHL_qru16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh)
28428 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSHL_qru16),
28429 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
28430 GIR_RootToRootCopy, /*OpIdx*/2, // in
28431 GIR_RootToRootCopy, /*OpIdx*/3, // sh
28432 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
28433 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28434 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28435 GIR_RootConstrainSelectedInstOperands,
28436 // GIR_Coverage, 4824,
28437 GIR_EraseRootFromParent_Done,
28438 // Label 1531: @77317
28439 GIM_Try, /*On fail goto*//*Label 1532*/ GIMT_Encode4(77395), // Rule ID 4826 //
28440 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_scalar),
28441 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
28442 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
28443 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
28444 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
28445 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
28446 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
28447 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28448 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28449 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
28450 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
28451 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
28452 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
28453 // (intrinsic_wo_chain:{ *:[v4i32] } 3365:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VSHL_qru32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh)
28454 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSHL_qru32),
28455 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
28456 GIR_RootToRootCopy, /*OpIdx*/2, // in
28457 GIR_RootToRootCopy, /*OpIdx*/3, // sh
28458 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
28459 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28460 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28461 GIR_RootConstrainSelectedInstOperands,
28462 // GIR_Coverage, 4826,
28463 GIR_EraseRootFromParent_Done,
28464 // Label 1532: @77395
28465 GIM_Try, /*On fail goto*//*Label 1533*/ GIMT_Encode4(77473), // Rule ID 4828 //
28466 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_scalar),
28467 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
28468 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
28469 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
28470 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
28471 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
28472 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
28473 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28474 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28475 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
28476 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
28477 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
28478 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
28479 // (intrinsic_wo_chain:{ *:[v16i8] } 3365:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VRSHL_qrs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh)
28480 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRSHL_qrs8),
28481 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
28482 GIR_RootToRootCopy, /*OpIdx*/2, // in
28483 GIR_RootToRootCopy, /*OpIdx*/3, // sh
28484 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
28485 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28486 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28487 GIR_RootConstrainSelectedInstOperands,
28488 // GIR_Coverage, 4828,
28489 GIR_EraseRootFromParent_Done,
28490 // Label 1533: @77473
28491 GIM_Try, /*On fail goto*//*Label 1534*/ GIMT_Encode4(77551), // Rule ID 4830 //
28492 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_scalar),
28493 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
28494 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
28495 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
28496 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
28497 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
28498 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
28499 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28500 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28501 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
28502 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
28503 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
28504 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
28505 // (intrinsic_wo_chain:{ *:[v8i16] } 3365:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VRSHL_qrs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh)
28506 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRSHL_qrs16),
28507 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
28508 GIR_RootToRootCopy, /*OpIdx*/2, // in
28509 GIR_RootToRootCopy, /*OpIdx*/3, // sh
28510 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
28511 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28512 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28513 GIR_RootConstrainSelectedInstOperands,
28514 // GIR_Coverage, 4830,
28515 GIR_EraseRootFromParent_Done,
28516 // Label 1534: @77551
28517 GIM_Try, /*On fail goto*//*Label 1535*/ GIMT_Encode4(77629), // Rule ID 4832 //
28518 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_scalar),
28519 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
28520 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
28521 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
28522 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
28523 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
28524 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
28525 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28526 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28527 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
28528 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
28529 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
28530 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
28531 // (intrinsic_wo_chain:{ *:[v4i32] } 3365:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VRSHL_qrs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh)
28532 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRSHL_qrs32),
28533 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
28534 GIR_RootToRootCopy, /*OpIdx*/2, // in
28535 GIR_RootToRootCopy, /*OpIdx*/3, // sh
28536 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
28537 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28538 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28539 GIR_RootConstrainSelectedInstOperands,
28540 // GIR_Coverage, 4832,
28541 GIR_EraseRootFromParent_Done,
28542 // Label 1535: @77629
28543 GIM_Try, /*On fail goto*//*Label 1536*/ GIMT_Encode4(77707), // Rule ID 4834 //
28544 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_scalar),
28545 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
28546 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
28547 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
28548 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
28549 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
28550 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
28551 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28552 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28553 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
28554 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
28555 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
28556 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
28557 // (intrinsic_wo_chain:{ *:[v16i8] } 3365:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VRSHL_qru8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh)
28558 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRSHL_qru8),
28559 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
28560 GIR_RootToRootCopy, /*OpIdx*/2, // in
28561 GIR_RootToRootCopy, /*OpIdx*/3, // sh
28562 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
28563 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28564 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28565 GIR_RootConstrainSelectedInstOperands,
28566 // GIR_Coverage, 4834,
28567 GIR_EraseRootFromParent_Done,
28568 // Label 1536: @77707
28569 GIM_Try, /*On fail goto*//*Label 1537*/ GIMT_Encode4(77785), // Rule ID 4836 //
28570 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_scalar),
28571 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
28572 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
28573 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
28574 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
28575 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
28576 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
28577 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28578 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28579 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
28580 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
28581 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
28582 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
28583 // (intrinsic_wo_chain:{ *:[v8i16] } 3365:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VRSHL_qru16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh)
28584 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRSHL_qru16),
28585 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
28586 GIR_RootToRootCopy, /*OpIdx*/2, // in
28587 GIR_RootToRootCopy, /*OpIdx*/3, // sh
28588 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
28589 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28590 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28591 GIR_RootConstrainSelectedInstOperands,
28592 // GIR_Coverage, 4836,
28593 GIR_EraseRootFromParent_Done,
28594 // Label 1537: @77785
28595 GIM_Try, /*On fail goto*//*Label 1538*/ GIMT_Encode4(77863), // Rule ID 4838 //
28596 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_scalar),
28597 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
28598 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
28599 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
28600 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
28601 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
28602 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
28603 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28604 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28605 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
28606 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
28607 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
28608 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
28609 // (intrinsic_wo_chain:{ *:[v4i32] } 3365:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VRSHL_qru32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh)
28610 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRSHL_qru32),
28611 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
28612 GIR_RootToRootCopy, /*OpIdx*/2, // in
28613 GIR_RootToRootCopy, /*OpIdx*/3, // sh
28614 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
28615 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28616 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28617 GIR_RootConstrainSelectedInstOperands,
28618 // GIR_Coverage, 4838,
28619 GIR_EraseRootFromParent_Done,
28620 // Label 1538: @77863
28621 GIM_Try, /*On fail goto*//*Label 1539*/ GIMT_Encode4(77941), // Rule ID 4840 //
28622 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_scalar),
28623 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
28624 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
28625 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
28626 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
28627 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
28628 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
28629 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28630 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28631 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
28632 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
28633 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
28634 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
28635 // (intrinsic_wo_chain:{ *:[v16i8] } 3365:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQSHL_qrs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh)
28636 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQSHL_qrs8),
28637 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
28638 GIR_RootToRootCopy, /*OpIdx*/2, // in
28639 GIR_RootToRootCopy, /*OpIdx*/3, // sh
28640 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
28641 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28642 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28643 GIR_RootConstrainSelectedInstOperands,
28644 // GIR_Coverage, 4840,
28645 GIR_EraseRootFromParent_Done,
28646 // Label 1539: @77941
28647 GIM_Try, /*On fail goto*//*Label 1540*/ GIMT_Encode4(78019), // Rule ID 4842 //
28648 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_scalar),
28649 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
28650 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
28651 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
28652 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
28653 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
28654 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
28655 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28656 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28657 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
28658 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
28659 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
28660 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
28661 // (intrinsic_wo_chain:{ *:[v8i16] } 3365:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQSHL_qrs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh)
28662 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQSHL_qrs16),
28663 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
28664 GIR_RootToRootCopy, /*OpIdx*/2, // in
28665 GIR_RootToRootCopy, /*OpIdx*/3, // sh
28666 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
28667 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28668 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28669 GIR_RootConstrainSelectedInstOperands,
28670 // GIR_Coverage, 4842,
28671 GIR_EraseRootFromParent_Done,
28672 // Label 1540: @78019
28673 GIM_Try, /*On fail goto*//*Label 1541*/ GIMT_Encode4(78097), // Rule ID 4844 //
28674 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_scalar),
28675 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
28676 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
28677 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
28678 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
28679 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
28680 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
28681 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28682 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28683 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
28684 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
28685 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
28686 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
28687 // (intrinsic_wo_chain:{ *:[v4i32] } 3365:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQSHL_qrs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh)
28688 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQSHL_qrs32),
28689 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
28690 GIR_RootToRootCopy, /*OpIdx*/2, // in
28691 GIR_RootToRootCopy, /*OpIdx*/3, // sh
28692 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
28693 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28694 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28695 GIR_RootConstrainSelectedInstOperands,
28696 // GIR_Coverage, 4844,
28697 GIR_EraseRootFromParent_Done,
28698 // Label 1541: @78097
28699 GIM_Try, /*On fail goto*//*Label 1542*/ GIMT_Encode4(78175), // Rule ID 4846 //
28700 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_scalar),
28701 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
28702 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
28703 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
28704 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
28705 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
28706 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
28707 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28708 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28709 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
28710 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
28711 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
28712 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
28713 // (intrinsic_wo_chain:{ *:[v16i8] } 3365:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQSHL_qru8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh)
28714 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQSHL_qru8),
28715 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
28716 GIR_RootToRootCopy, /*OpIdx*/2, // in
28717 GIR_RootToRootCopy, /*OpIdx*/3, // sh
28718 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
28719 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28720 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28721 GIR_RootConstrainSelectedInstOperands,
28722 // GIR_Coverage, 4846,
28723 GIR_EraseRootFromParent_Done,
28724 // Label 1542: @78175
28725 GIM_Try, /*On fail goto*//*Label 1543*/ GIMT_Encode4(78253), // Rule ID 4848 //
28726 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_scalar),
28727 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
28728 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
28729 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
28730 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
28731 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
28732 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
28733 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28734 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28735 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
28736 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
28737 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
28738 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
28739 // (intrinsic_wo_chain:{ *:[v8i16] } 3365:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQSHL_qru16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh)
28740 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQSHL_qru16),
28741 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
28742 GIR_RootToRootCopy, /*OpIdx*/2, // in
28743 GIR_RootToRootCopy, /*OpIdx*/3, // sh
28744 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
28745 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28746 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28747 GIR_RootConstrainSelectedInstOperands,
28748 // GIR_Coverage, 4848,
28749 GIR_EraseRootFromParent_Done,
28750 // Label 1543: @78253
28751 GIM_Try, /*On fail goto*//*Label 1544*/ GIMT_Encode4(78331), // Rule ID 4850 //
28752 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_scalar),
28753 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
28754 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
28755 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
28756 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
28757 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
28758 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
28759 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28760 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28761 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
28762 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
28763 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
28764 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
28765 // (intrinsic_wo_chain:{ *:[v4i32] } 3365:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQSHL_qru32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh)
28766 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQSHL_qru32),
28767 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
28768 GIR_RootToRootCopy, /*OpIdx*/2, // in
28769 GIR_RootToRootCopy, /*OpIdx*/3, // sh
28770 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
28771 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28772 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28773 GIR_RootConstrainSelectedInstOperands,
28774 // GIR_Coverage, 4850,
28775 GIR_EraseRootFromParent_Done,
28776 // Label 1544: @78331
28777 GIM_Try, /*On fail goto*//*Label 1545*/ GIMT_Encode4(78409), // Rule ID 4852 //
28778 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_scalar),
28779 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
28780 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
28781 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
28782 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
28783 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
28784 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
28785 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28786 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28787 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
28788 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
28789 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
28790 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
28791 // (intrinsic_wo_chain:{ *:[v16i8] } 3365:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQRSHL_qrs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh)
28792 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRSHL_qrs8),
28793 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
28794 GIR_RootToRootCopy, /*OpIdx*/2, // in
28795 GIR_RootToRootCopy, /*OpIdx*/3, // sh
28796 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
28797 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28798 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28799 GIR_RootConstrainSelectedInstOperands,
28800 // GIR_Coverage, 4852,
28801 GIR_EraseRootFromParent_Done,
28802 // Label 1545: @78409
28803 GIM_Try, /*On fail goto*//*Label 1546*/ GIMT_Encode4(78487), // Rule ID 4854 //
28804 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_scalar),
28805 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
28806 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
28807 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
28808 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
28809 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
28810 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
28811 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28812 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28813 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
28814 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
28815 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
28816 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
28817 // (intrinsic_wo_chain:{ *:[v8i16] } 3365:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQRSHL_qrs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh)
28818 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRSHL_qrs16),
28819 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
28820 GIR_RootToRootCopy, /*OpIdx*/2, // in
28821 GIR_RootToRootCopy, /*OpIdx*/3, // sh
28822 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
28823 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28824 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28825 GIR_RootConstrainSelectedInstOperands,
28826 // GIR_Coverage, 4854,
28827 GIR_EraseRootFromParent_Done,
28828 // Label 1546: @78487
28829 GIM_Try, /*On fail goto*//*Label 1547*/ GIMT_Encode4(78565), // Rule ID 4856 //
28830 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_scalar),
28831 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
28832 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
28833 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
28834 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
28835 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
28836 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
28837 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28838 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28839 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
28840 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
28841 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
28842 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
28843 // (intrinsic_wo_chain:{ *:[v4i32] } 3365:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQRSHL_qrs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh)
28844 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRSHL_qrs32),
28845 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
28846 GIR_RootToRootCopy, /*OpIdx*/2, // in
28847 GIR_RootToRootCopy, /*OpIdx*/3, // sh
28848 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
28849 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28850 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28851 GIR_RootConstrainSelectedInstOperands,
28852 // GIR_Coverage, 4856,
28853 GIR_EraseRootFromParent_Done,
28854 // Label 1547: @78565
28855 GIM_Try, /*On fail goto*//*Label 1548*/ GIMT_Encode4(78643), // Rule ID 4858 //
28856 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_scalar),
28857 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
28858 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
28859 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
28860 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
28861 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
28862 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
28863 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28864 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28865 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
28866 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
28867 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
28868 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
28869 // (intrinsic_wo_chain:{ *:[v16i8] } 3365:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQRSHL_qru8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh)
28870 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRSHL_qru8),
28871 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
28872 GIR_RootToRootCopy, /*OpIdx*/2, // in
28873 GIR_RootToRootCopy, /*OpIdx*/3, // sh
28874 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
28875 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28876 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28877 GIR_RootConstrainSelectedInstOperands,
28878 // GIR_Coverage, 4858,
28879 GIR_EraseRootFromParent_Done,
28880 // Label 1548: @78643
28881 GIM_Try, /*On fail goto*//*Label 1549*/ GIMT_Encode4(78721), // Rule ID 4860 //
28882 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_scalar),
28883 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
28884 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
28885 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
28886 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
28887 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
28888 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
28889 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28890 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28891 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
28892 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
28893 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
28894 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
28895 // (intrinsic_wo_chain:{ *:[v8i16] } 3365:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQRSHL_qru16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh)
28896 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRSHL_qru16),
28897 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
28898 GIR_RootToRootCopy, /*OpIdx*/2, // in
28899 GIR_RootToRootCopy, /*OpIdx*/3, // sh
28900 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
28901 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28902 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28903 GIR_RootConstrainSelectedInstOperands,
28904 // GIR_Coverage, 4860,
28905 GIR_EraseRootFromParent_Done,
28906 // Label 1549: @78721
28907 GIM_Try, /*On fail goto*//*Label 1550*/ GIMT_Encode4(78799), // Rule ID 4862 //
28908 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshl_scalar),
28909 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
28910 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
28911 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
28912 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
28913 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
28914 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
28915 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28916 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
28917 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
28918 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
28919 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
28920 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
28921 // (intrinsic_wo_chain:{ *:[v4i32] } 3365:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQRSHL_qru32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh)
28922 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRSHL_qru32),
28923 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
28924 GIR_RootToRootCopy, /*OpIdx*/2, // in
28925 GIR_RootToRootCopy, /*OpIdx*/3, // sh
28926 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
28927 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28928 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28929 GIR_RootConstrainSelectedInstOperands,
28930 // GIR_Coverage, 4862,
28931 GIR_EraseRootFromParent_Done,
28932 // Label 1550: @78799
28933 GIM_Try, /*On fail goto*//*Label 1551*/ GIMT_Encode4(78935), // Rule ID 2708 //
28934 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
28935 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vtbx3),
28936 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s8,
28937 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
28938 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s8,
28939 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v8s8,
28940 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_v8s8,
28941 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_v8s8,
28942 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
28943 // (intrinsic_wo_chain:{ *:[v8i8] } 3529:{ *:[iPTR] }, v8i8:{ *:[v8i8] }:$orig, v8i8:{ *:[v8i8] }:$Vn0, v8i8:{ *:[v8i8] }:$Vn1, v8i8:{ *:[v8i8] }:$Vn2, v8i8:{ *:[v8i8] }:$Vm) => (VTBX3Pseudo:{ *:[v8i8] } v8i8:{ *:[v8i8] }:$orig, (REG_SEQUENCE:{ *:[v4i64] } QQPR:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn0, dsub_0:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn1, dsub_1:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn2, dsub_2:{ *:[i32] }, (IMPLICIT_DEF:{ *:[v8i8] }), dsub_3:{ *:[i32] }), v8i8:{ *:[v8i8] }:$Vm)
28944 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s64,
28945 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v8s8,
28946 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
28947 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
28948 GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
28949 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::REG_SEQUENCE),
28950 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
28951 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // Vn0
28952 GIR_AddImm8, /*InsnID*/1, /*SubRegIndex*/1,
28953 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/4, // Vn1
28954 GIR_AddImm8, /*InsnID*/1, /*SubRegIndex*/2,
28955 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/5, // Vn2
28956 GIR_AddImm8, /*InsnID*/1, /*SubRegIndex*/3,
28957 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
28958 GIR_AddImm8, /*InsnID*/1, /*SubRegIndex*/4,
28959 GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/0, GIMT_Encode2(ARM::QQPRRegClassID),
28960 GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/1, GIMT_Encode2(ARM::DPRRegClassID),
28961 GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/3, GIMT_Encode2(ARM::DPRRegClassID),
28962 GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/5, GIMT_Encode2(ARM::DPRRegClassID),
28963 GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/7, GIMT_Encode2(ARM::DPRRegClassID),
28964 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VTBX3Pseudo),
28965 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
28966 GIR_RootToRootCopy, /*OpIdx*/2, // orig
28967 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
28968 GIR_RootToRootCopy, /*OpIdx*/6, // Vm
28969 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
28970 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
28971 GIR_RootConstrainSelectedInstOperands,
28972 // GIR_Coverage, 2708,
28973 GIR_EraseRootFromParent_Done,
28974 // Label 1551: @78935
28975 GIM_Try, /*On fail goto*//*Label 1552*/ GIMT_Encode4(79056), // Rule ID 2709 //
28976 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
28977 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vtbl4),
28978 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s8,
28979 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
28980 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s8,
28981 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v8s8,
28982 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_v8s8,
28983 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_v8s8,
28984 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
28985 // (intrinsic_wo_chain:{ *:[v8i8] } 3526:{ *:[iPTR] }, v8i8:{ *:[v8i8] }:$Vn0, v8i8:{ *:[v8i8] }:$Vn1, v8i8:{ *:[v8i8] }:$Vn2, v8i8:{ *:[v8i8] }:$Vn3, v8i8:{ *:[v8i8] }:$Vm) => (VTBL4Pseudo:{ *:[v8i8] } (REG_SEQUENCE:{ *:[v4i64] } QQPR:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn0, dsub_0:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn1, dsub_1:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn2, dsub_2:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn3, dsub_3:{ *:[i32] }), v8i8:{ *:[v8i8] }:$Vm)
28986 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s64,
28987 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::REG_SEQUENCE),
28988 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
28989 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // Vn0
28990 GIR_AddImm8, /*InsnID*/1, /*SubRegIndex*/1,
28991 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // Vn1
28992 GIR_AddImm8, /*InsnID*/1, /*SubRegIndex*/2,
28993 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/4, // Vn2
28994 GIR_AddImm8, /*InsnID*/1, /*SubRegIndex*/3,
28995 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/5, // Vn3
28996 GIR_AddImm8, /*InsnID*/1, /*SubRegIndex*/4,
28997 GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/0, GIMT_Encode2(ARM::QQPRRegClassID),
28998 GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/1, GIMT_Encode2(ARM::DPRRegClassID),
28999 GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/3, GIMT_Encode2(ARM::DPRRegClassID),
29000 GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/5, GIMT_Encode2(ARM::DPRRegClassID),
29001 GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/7, GIMT_Encode2(ARM::DPRRegClassID),
29002 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VTBL4Pseudo),
29003 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
29004 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
29005 GIR_RootToRootCopy, /*OpIdx*/6, // Vm
29006 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
29007 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29008 GIR_RootConstrainSelectedInstOperands,
29009 // GIR_Coverage, 2709,
29010 GIR_EraseRootFromParent_Done,
29011 // Label 1552: @79056
29012 GIM_Reject,
29013 // Label 1490: @79057
29014 GIM_Try, /*On fail goto*//*Label 1553*/ GIMT_Encode4(83950),
29015 GIM_CheckNumOperands, /*MI*/0, /*Expected*/8,
29016 GIM_Try, /*On fail goto*//*Label 1554*/ GIMT_Encode4(79153), // Rule ID 3278 //
29017 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
29018 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmldava),
29019 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
29020 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
29021 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
29022 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
29023 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
29024 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_v16s8,
29025 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_v16s8,
29026 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29027 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
29028 GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
29029 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
29030 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
29031 GIM_RootCheckRegBankForClass, /*Op*/6, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29032 GIM_RootCheckRegBankForClass, /*Op*/7, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29033 // (intrinsic_wo_chain:{ *:[i32] } 3319:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm) => (MVE_VMLADAVs8:{ *:[i32] } MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm)
29034 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMLADAVs8),
29035 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
29036 GIR_RootToRootCopy, /*OpIdx*/6, // Qn
29037 GIR_RootToRootCopy, /*OpIdx*/7, // Qm
29038 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
29039 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29040 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29041 GIR_RootConstrainSelectedInstOperands,
29042 // GIR_Coverage, 3278,
29043 GIR_EraseRootFromParent_Done,
29044 // Label 1554: @79153
29045 GIM_Try, /*On fail goto*//*Label 1555*/ GIMT_Encode4(79241), // Rule ID 3282 //
29046 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
29047 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmldava),
29048 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
29049 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
29050 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
29051 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
29052 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
29053 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_v16s8,
29054 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_v16s8,
29055 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29056 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
29057 GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
29058 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
29059 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
29060 GIM_RootCheckRegBankForClass, /*Op*/6, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29061 GIM_RootCheckRegBankForClass, /*Op*/7, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29062 // (intrinsic_wo_chain:{ *:[i32] } 3319:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm) => (MVE_VMLADAVxs8:{ *:[i32] } MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm)
29063 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMLADAVxs8),
29064 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
29065 GIR_RootToRootCopy, /*OpIdx*/6, // Qn
29066 GIR_RootToRootCopy, /*OpIdx*/7, // Qm
29067 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
29068 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29069 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29070 GIR_RootConstrainSelectedInstOperands,
29071 // GIR_Coverage, 3282,
29072 GIR_EraseRootFromParent_Done,
29073 // Label 1555: @79241
29074 GIM_Try, /*On fail goto*//*Label 1556*/ GIMT_Encode4(79329), // Rule ID 3286 //
29075 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
29076 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmldava),
29077 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
29078 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
29079 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
29080 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
29081 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
29082 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_v16s8,
29083 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_v16s8,
29084 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29085 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
29086 GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
29087 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
29088 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
29089 GIM_RootCheckRegBankForClass, /*Op*/6, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29090 GIM_RootCheckRegBankForClass, /*Op*/7, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29091 // (intrinsic_wo_chain:{ *:[i32] } 3319:{ *:[iPTR] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm) => (MVE_VMLADAVu8:{ *:[i32] } MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm)
29092 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMLADAVu8),
29093 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
29094 GIR_RootToRootCopy, /*OpIdx*/6, // Qn
29095 GIR_RootToRootCopy, /*OpIdx*/7, // Qm
29096 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
29097 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29098 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29099 GIR_RootConstrainSelectedInstOperands,
29100 // GIR_Coverage, 3286,
29101 GIR_EraseRootFromParent_Done,
29102 // Label 1556: @79329
29103 GIM_Try, /*On fail goto*//*Label 1557*/ GIMT_Encode4(79417), // Rule ID 3290 //
29104 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
29105 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmldava),
29106 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
29107 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
29108 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
29109 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
29110 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
29111 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_v8s16,
29112 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_v8s16,
29113 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29114 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
29115 GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
29116 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
29117 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
29118 GIM_RootCheckRegBankForClass, /*Op*/6, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29119 GIM_RootCheckRegBankForClass, /*Op*/7, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29120 // (intrinsic_wo_chain:{ *:[i32] } 3319:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm) => (MVE_VMLADAVs16:{ *:[i32] } MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm)
29121 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMLADAVs16),
29122 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
29123 GIR_RootToRootCopy, /*OpIdx*/6, // Qn
29124 GIR_RootToRootCopy, /*OpIdx*/7, // Qm
29125 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
29126 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29127 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29128 GIR_RootConstrainSelectedInstOperands,
29129 // GIR_Coverage, 3290,
29130 GIR_EraseRootFromParent_Done,
29131 // Label 1557: @79417
29132 GIM_Try, /*On fail goto*//*Label 1558*/ GIMT_Encode4(79505), // Rule ID 3294 //
29133 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
29134 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmldava),
29135 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
29136 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
29137 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
29138 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
29139 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
29140 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_v8s16,
29141 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_v8s16,
29142 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29143 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
29144 GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
29145 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
29146 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
29147 GIM_RootCheckRegBankForClass, /*Op*/6, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29148 GIM_RootCheckRegBankForClass, /*Op*/7, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29149 // (intrinsic_wo_chain:{ *:[i32] } 3319:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm) => (MVE_VMLADAVxs16:{ *:[i32] } MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm)
29150 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMLADAVxs16),
29151 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
29152 GIR_RootToRootCopy, /*OpIdx*/6, // Qn
29153 GIR_RootToRootCopy, /*OpIdx*/7, // Qm
29154 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
29155 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29156 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29157 GIR_RootConstrainSelectedInstOperands,
29158 // GIR_Coverage, 3294,
29159 GIR_EraseRootFromParent_Done,
29160 // Label 1558: @79505
29161 GIM_Try, /*On fail goto*//*Label 1559*/ GIMT_Encode4(79593), // Rule ID 3298 //
29162 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
29163 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmldava),
29164 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
29165 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
29166 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
29167 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
29168 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
29169 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_v8s16,
29170 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_v8s16,
29171 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29172 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
29173 GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
29174 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
29175 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
29176 GIM_RootCheckRegBankForClass, /*Op*/6, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29177 GIM_RootCheckRegBankForClass, /*Op*/7, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29178 // (intrinsic_wo_chain:{ *:[i32] } 3319:{ *:[iPTR] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm) => (MVE_VMLADAVu16:{ *:[i32] } MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm)
29179 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMLADAVu16),
29180 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
29181 GIR_RootToRootCopy, /*OpIdx*/6, // Qn
29182 GIR_RootToRootCopy, /*OpIdx*/7, // Qm
29183 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
29184 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29185 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29186 GIR_RootConstrainSelectedInstOperands,
29187 // GIR_Coverage, 3298,
29188 GIR_EraseRootFromParent_Done,
29189 // Label 1559: @79593
29190 GIM_Try, /*On fail goto*//*Label 1560*/ GIMT_Encode4(79681), // Rule ID 3302 //
29191 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
29192 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmldava),
29193 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
29194 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
29195 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
29196 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
29197 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
29198 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_v4s32,
29199 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_v4s32,
29200 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29201 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
29202 GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
29203 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
29204 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
29205 GIM_RootCheckRegBankForClass, /*Op*/6, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29206 GIM_RootCheckRegBankForClass, /*Op*/7, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29207 // (intrinsic_wo_chain:{ *:[i32] } 3319:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm) => (MVE_VMLADAVs32:{ *:[i32] } MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm)
29208 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMLADAVs32),
29209 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
29210 GIR_RootToRootCopy, /*OpIdx*/6, // Qn
29211 GIR_RootToRootCopy, /*OpIdx*/7, // Qm
29212 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
29213 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29214 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29215 GIR_RootConstrainSelectedInstOperands,
29216 // GIR_Coverage, 3302,
29217 GIR_EraseRootFromParent_Done,
29218 // Label 1560: @79681
29219 GIM_Try, /*On fail goto*//*Label 1561*/ GIMT_Encode4(79769), // Rule ID 3306 //
29220 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
29221 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmldava),
29222 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
29223 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
29224 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
29225 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
29226 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
29227 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_v4s32,
29228 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_v4s32,
29229 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29230 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
29231 GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
29232 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
29233 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
29234 GIM_RootCheckRegBankForClass, /*Op*/6, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29235 GIM_RootCheckRegBankForClass, /*Op*/7, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29236 // (intrinsic_wo_chain:{ *:[i32] } 3319:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm) => (MVE_VMLADAVxs32:{ *:[i32] } MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm)
29237 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMLADAVxs32),
29238 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
29239 GIR_RootToRootCopy, /*OpIdx*/6, // Qn
29240 GIR_RootToRootCopy, /*OpIdx*/7, // Qm
29241 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
29242 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29243 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29244 GIR_RootConstrainSelectedInstOperands,
29245 // GIR_Coverage, 3306,
29246 GIR_EraseRootFromParent_Done,
29247 // Label 1561: @79769
29248 GIM_Try, /*On fail goto*//*Label 1562*/ GIMT_Encode4(79857), // Rule ID 3310 //
29249 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
29250 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmldava),
29251 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
29252 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
29253 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
29254 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
29255 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
29256 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_v4s32,
29257 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_v4s32,
29258 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29259 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
29260 GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
29261 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
29262 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
29263 GIM_RootCheckRegBankForClass, /*Op*/6, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29264 GIM_RootCheckRegBankForClass, /*Op*/7, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29265 // (intrinsic_wo_chain:{ *:[i32] } 3319:{ *:[iPTR] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm) => (MVE_VMLADAVu32:{ *:[i32] } MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm)
29266 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMLADAVu32),
29267 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
29268 GIR_RootToRootCopy, /*OpIdx*/6, // Qn
29269 GIR_RootToRootCopy, /*OpIdx*/7, // Qm
29270 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
29271 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29272 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29273 GIR_RootConstrainSelectedInstOperands,
29274 // GIR_Coverage, 3310,
29275 GIR_EraseRootFromParent_Done,
29276 // Label 1562: @79857
29277 GIM_Try, /*On fail goto*//*Label 1563*/ GIMT_Encode4(79945), // Rule ID 3314 //
29278 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
29279 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmldava),
29280 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
29281 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
29282 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
29283 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
29284 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
29285 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_v16s8,
29286 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_v16s8,
29287 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29288 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
29289 GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 1,
29290 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
29291 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
29292 GIM_RootCheckRegBankForClass, /*Op*/6, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29293 GIM_RootCheckRegBankForClass, /*Op*/7, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29294 // (intrinsic_wo_chain:{ *:[i32] } 3319:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm) => (MVE_VMLSDAVs8:{ *:[i32] } MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm)
29295 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMLSDAVs8),
29296 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
29297 GIR_RootToRootCopy, /*OpIdx*/6, // Qn
29298 GIR_RootToRootCopy, /*OpIdx*/7, // Qm
29299 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
29300 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29301 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29302 GIR_RootConstrainSelectedInstOperands,
29303 // GIR_Coverage, 3314,
29304 GIR_EraseRootFromParent_Done,
29305 // Label 1563: @79945
29306 GIM_Try, /*On fail goto*//*Label 1564*/ GIMT_Encode4(80033), // Rule ID 3318 //
29307 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
29308 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmldava),
29309 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
29310 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
29311 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
29312 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
29313 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
29314 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_v16s8,
29315 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_v16s8,
29316 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29317 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
29318 GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 1,
29319 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
29320 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
29321 GIM_RootCheckRegBankForClass, /*Op*/6, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29322 GIM_RootCheckRegBankForClass, /*Op*/7, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29323 // (intrinsic_wo_chain:{ *:[i32] } 3319:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm) => (MVE_VMLSDAVxs8:{ *:[i32] } MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm)
29324 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMLSDAVxs8),
29325 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
29326 GIR_RootToRootCopy, /*OpIdx*/6, // Qn
29327 GIR_RootToRootCopy, /*OpIdx*/7, // Qm
29328 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
29329 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29330 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29331 GIR_RootConstrainSelectedInstOperands,
29332 // GIR_Coverage, 3318,
29333 GIR_EraseRootFromParent_Done,
29334 // Label 1564: @80033
29335 GIM_Try, /*On fail goto*//*Label 1565*/ GIMT_Encode4(80121), // Rule ID 3322 //
29336 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
29337 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmldava),
29338 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
29339 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
29340 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
29341 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
29342 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
29343 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_v8s16,
29344 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_v8s16,
29345 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29346 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
29347 GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 1,
29348 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
29349 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
29350 GIM_RootCheckRegBankForClass, /*Op*/6, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29351 GIM_RootCheckRegBankForClass, /*Op*/7, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29352 // (intrinsic_wo_chain:{ *:[i32] } 3319:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm) => (MVE_VMLSDAVs16:{ *:[i32] } MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm)
29353 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMLSDAVs16),
29354 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
29355 GIR_RootToRootCopy, /*OpIdx*/6, // Qn
29356 GIR_RootToRootCopy, /*OpIdx*/7, // Qm
29357 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
29358 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29359 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29360 GIR_RootConstrainSelectedInstOperands,
29361 // GIR_Coverage, 3322,
29362 GIR_EraseRootFromParent_Done,
29363 // Label 1565: @80121
29364 GIM_Try, /*On fail goto*//*Label 1566*/ GIMT_Encode4(80209), // Rule ID 3326 //
29365 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
29366 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmldava),
29367 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
29368 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
29369 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
29370 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
29371 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
29372 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_v8s16,
29373 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_v8s16,
29374 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29375 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
29376 GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 1,
29377 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
29378 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
29379 GIM_RootCheckRegBankForClass, /*Op*/6, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29380 GIM_RootCheckRegBankForClass, /*Op*/7, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29381 // (intrinsic_wo_chain:{ *:[i32] } 3319:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm) => (MVE_VMLSDAVxs16:{ *:[i32] } MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm)
29382 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMLSDAVxs16),
29383 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
29384 GIR_RootToRootCopy, /*OpIdx*/6, // Qn
29385 GIR_RootToRootCopy, /*OpIdx*/7, // Qm
29386 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
29387 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29388 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29389 GIR_RootConstrainSelectedInstOperands,
29390 // GIR_Coverage, 3326,
29391 GIR_EraseRootFromParent_Done,
29392 // Label 1566: @80209
29393 GIM_Try, /*On fail goto*//*Label 1567*/ GIMT_Encode4(80297), // Rule ID 3330 //
29394 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
29395 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmldava),
29396 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
29397 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
29398 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
29399 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
29400 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
29401 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_v4s32,
29402 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_v4s32,
29403 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29404 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
29405 GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 1,
29406 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
29407 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
29408 GIM_RootCheckRegBankForClass, /*Op*/6, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29409 GIM_RootCheckRegBankForClass, /*Op*/7, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29410 // (intrinsic_wo_chain:{ *:[i32] } 3319:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm) => (MVE_VMLSDAVs32:{ *:[i32] } MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm)
29411 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMLSDAVs32),
29412 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
29413 GIR_RootToRootCopy, /*OpIdx*/6, // Qn
29414 GIR_RootToRootCopy, /*OpIdx*/7, // Qm
29415 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
29416 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29417 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29418 GIR_RootConstrainSelectedInstOperands,
29419 // GIR_Coverage, 3330,
29420 GIR_EraseRootFromParent_Done,
29421 // Label 1567: @80297
29422 GIM_Try, /*On fail goto*//*Label 1568*/ GIMT_Encode4(80385), // Rule ID 3334 //
29423 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
29424 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmldava),
29425 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
29426 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
29427 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
29428 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
29429 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
29430 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_v4s32,
29431 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_v4s32,
29432 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29433 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
29434 GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 1,
29435 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
29436 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
29437 GIM_RootCheckRegBankForClass, /*Op*/6, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29438 GIM_RootCheckRegBankForClass, /*Op*/7, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29439 // (intrinsic_wo_chain:{ *:[i32] } 3319:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm) => (MVE_VMLSDAVxs32:{ *:[i32] } MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm)
29440 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMLSDAVxs32),
29441 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
29442 GIR_RootToRootCopy, /*OpIdx*/6, // Qn
29443 GIR_RootToRootCopy, /*OpIdx*/7, // Qm
29444 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
29445 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29446 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29447 GIR_RootConstrainSelectedInstOperands,
29448 // GIR_Coverage, 3334,
29449 GIR_EraseRootFromParent_Done,
29450 // Label 1568: @80385
29451 GIM_Try, /*On fail goto*//*Label 1569*/ GIMT_Encode4(80475), // Rule ID 3280 //
29452 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
29453 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmldava),
29454 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
29455 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
29456 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
29457 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
29458 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
29459 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_v16s8,
29460 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_v16s8,
29461 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29462 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
29463 GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
29464 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
29465 GIM_RootCheckRegBankForClass, /*Op*/5, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29466 GIM_RootCheckRegBankForClass, /*Op*/6, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29467 GIM_RootCheckRegBankForClass, /*Op*/7, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29468 // (intrinsic_wo_chain:{ *:[i32] } 3319:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm) => (MVE_VMLADAVas8:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm)
29469 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMLADAVas8),
29470 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
29471 GIR_RootToRootCopy, /*OpIdx*/5, // RdaSrc
29472 GIR_RootToRootCopy, /*OpIdx*/6, // Qn
29473 GIR_RootToRootCopy, /*OpIdx*/7, // Qm
29474 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
29475 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29476 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29477 GIR_RootConstrainSelectedInstOperands,
29478 // GIR_Coverage, 3280,
29479 GIR_EraseRootFromParent_Done,
29480 // Label 1569: @80475
29481 GIM_Try, /*On fail goto*//*Label 1570*/ GIMT_Encode4(80565), // Rule ID 3284 //
29482 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
29483 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmldava),
29484 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
29485 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
29486 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
29487 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
29488 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
29489 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_v16s8,
29490 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_v16s8,
29491 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29492 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
29493 GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
29494 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
29495 GIM_RootCheckRegBankForClass, /*Op*/5, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29496 GIM_RootCheckRegBankForClass, /*Op*/6, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29497 GIM_RootCheckRegBankForClass, /*Op*/7, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29498 // (intrinsic_wo_chain:{ *:[i32] } 3319:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm) => (MVE_VMLADAVaxs8:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm)
29499 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMLADAVaxs8),
29500 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
29501 GIR_RootToRootCopy, /*OpIdx*/5, // RdaSrc
29502 GIR_RootToRootCopy, /*OpIdx*/6, // Qn
29503 GIR_RootToRootCopy, /*OpIdx*/7, // Qm
29504 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
29505 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29506 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29507 GIR_RootConstrainSelectedInstOperands,
29508 // GIR_Coverage, 3284,
29509 GIR_EraseRootFromParent_Done,
29510 // Label 1570: @80565
29511 GIM_Try, /*On fail goto*//*Label 1571*/ GIMT_Encode4(80655), // Rule ID 3288 //
29512 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
29513 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmldava),
29514 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
29515 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
29516 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
29517 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
29518 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
29519 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_v16s8,
29520 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_v16s8,
29521 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29522 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
29523 GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
29524 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
29525 GIM_RootCheckRegBankForClass, /*Op*/5, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29526 GIM_RootCheckRegBankForClass, /*Op*/6, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29527 GIM_RootCheckRegBankForClass, /*Op*/7, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29528 // (intrinsic_wo_chain:{ *:[i32] } 3319:{ *:[iPTR] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm) => (MVE_VMLADAVau8:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm)
29529 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMLADAVau8),
29530 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
29531 GIR_RootToRootCopy, /*OpIdx*/5, // RdaSrc
29532 GIR_RootToRootCopy, /*OpIdx*/6, // Qn
29533 GIR_RootToRootCopy, /*OpIdx*/7, // Qm
29534 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
29535 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29536 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29537 GIR_RootConstrainSelectedInstOperands,
29538 // GIR_Coverage, 3288,
29539 GIR_EraseRootFromParent_Done,
29540 // Label 1571: @80655
29541 GIM_Try, /*On fail goto*//*Label 1572*/ GIMT_Encode4(80745), // Rule ID 3292 //
29542 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
29543 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmldava),
29544 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
29545 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
29546 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
29547 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
29548 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
29549 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_v8s16,
29550 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_v8s16,
29551 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29552 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
29553 GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
29554 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
29555 GIM_RootCheckRegBankForClass, /*Op*/5, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29556 GIM_RootCheckRegBankForClass, /*Op*/6, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29557 GIM_RootCheckRegBankForClass, /*Op*/7, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29558 // (intrinsic_wo_chain:{ *:[i32] } 3319:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm) => (MVE_VMLADAVas16:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm)
29559 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMLADAVas16),
29560 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
29561 GIR_RootToRootCopy, /*OpIdx*/5, // RdaSrc
29562 GIR_RootToRootCopy, /*OpIdx*/6, // Qn
29563 GIR_RootToRootCopy, /*OpIdx*/7, // Qm
29564 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
29565 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29566 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29567 GIR_RootConstrainSelectedInstOperands,
29568 // GIR_Coverage, 3292,
29569 GIR_EraseRootFromParent_Done,
29570 // Label 1572: @80745
29571 GIM_Try, /*On fail goto*//*Label 1573*/ GIMT_Encode4(80835), // Rule ID 3296 //
29572 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
29573 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmldava),
29574 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
29575 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
29576 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
29577 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
29578 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
29579 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_v8s16,
29580 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_v8s16,
29581 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29582 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
29583 GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
29584 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
29585 GIM_RootCheckRegBankForClass, /*Op*/5, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29586 GIM_RootCheckRegBankForClass, /*Op*/6, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29587 GIM_RootCheckRegBankForClass, /*Op*/7, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29588 // (intrinsic_wo_chain:{ *:[i32] } 3319:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm) => (MVE_VMLADAVaxs16:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm)
29589 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMLADAVaxs16),
29590 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
29591 GIR_RootToRootCopy, /*OpIdx*/5, // RdaSrc
29592 GIR_RootToRootCopy, /*OpIdx*/6, // Qn
29593 GIR_RootToRootCopy, /*OpIdx*/7, // Qm
29594 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
29595 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29596 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29597 GIR_RootConstrainSelectedInstOperands,
29598 // GIR_Coverage, 3296,
29599 GIR_EraseRootFromParent_Done,
29600 // Label 1573: @80835
29601 GIM_Try, /*On fail goto*//*Label 1574*/ GIMT_Encode4(80925), // Rule ID 3300 //
29602 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
29603 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmldava),
29604 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
29605 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
29606 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
29607 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
29608 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
29609 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_v8s16,
29610 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_v8s16,
29611 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29612 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
29613 GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
29614 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
29615 GIM_RootCheckRegBankForClass, /*Op*/5, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29616 GIM_RootCheckRegBankForClass, /*Op*/6, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29617 GIM_RootCheckRegBankForClass, /*Op*/7, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29618 // (intrinsic_wo_chain:{ *:[i32] } 3319:{ *:[iPTR] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm) => (MVE_VMLADAVau16:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm)
29619 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMLADAVau16),
29620 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
29621 GIR_RootToRootCopy, /*OpIdx*/5, // RdaSrc
29622 GIR_RootToRootCopy, /*OpIdx*/6, // Qn
29623 GIR_RootToRootCopy, /*OpIdx*/7, // Qm
29624 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
29625 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29626 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29627 GIR_RootConstrainSelectedInstOperands,
29628 // GIR_Coverage, 3300,
29629 GIR_EraseRootFromParent_Done,
29630 // Label 1574: @80925
29631 GIM_Try, /*On fail goto*//*Label 1575*/ GIMT_Encode4(81015), // Rule ID 3304 //
29632 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
29633 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmldava),
29634 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
29635 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
29636 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
29637 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
29638 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
29639 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_v4s32,
29640 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_v4s32,
29641 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29642 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
29643 GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
29644 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
29645 GIM_RootCheckRegBankForClass, /*Op*/5, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29646 GIM_RootCheckRegBankForClass, /*Op*/6, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29647 GIM_RootCheckRegBankForClass, /*Op*/7, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29648 // (intrinsic_wo_chain:{ *:[i32] } 3319:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm) => (MVE_VMLADAVas32:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm)
29649 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMLADAVas32),
29650 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
29651 GIR_RootToRootCopy, /*OpIdx*/5, // RdaSrc
29652 GIR_RootToRootCopy, /*OpIdx*/6, // Qn
29653 GIR_RootToRootCopy, /*OpIdx*/7, // Qm
29654 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
29655 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29656 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29657 GIR_RootConstrainSelectedInstOperands,
29658 // GIR_Coverage, 3304,
29659 GIR_EraseRootFromParent_Done,
29660 // Label 1575: @81015
29661 GIM_Try, /*On fail goto*//*Label 1576*/ GIMT_Encode4(81105), // Rule ID 3308 //
29662 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
29663 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmldava),
29664 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
29665 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
29666 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
29667 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
29668 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
29669 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_v4s32,
29670 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_v4s32,
29671 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29672 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
29673 GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
29674 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
29675 GIM_RootCheckRegBankForClass, /*Op*/5, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29676 GIM_RootCheckRegBankForClass, /*Op*/6, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29677 GIM_RootCheckRegBankForClass, /*Op*/7, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29678 // (intrinsic_wo_chain:{ *:[i32] } 3319:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm) => (MVE_VMLADAVaxs32:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm)
29679 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMLADAVaxs32),
29680 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
29681 GIR_RootToRootCopy, /*OpIdx*/5, // RdaSrc
29682 GIR_RootToRootCopy, /*OpIdx*/6, // Qn
29683 GIR_RootToRootCopy, /*OpIdx*/7, // Qm
29684 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
29685 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29686 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29687 GIR_RootConstrainSelectedInstOperands,
29688 // GIR_Coverage, 3308,
29689 GIR_EraseRootFromParent_Done,
29690 // Label 1576: @81105
29691 GIM_Try, /*On fail goto*//*Label 1577*/ GIMT_Encode4(81195), // Rule ID 3312 //
29692 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
29693 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmldava),
29694 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
29695 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
29696 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
29697 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
29698 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
29699 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_v4s32,
29700 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_v4s32,
29701 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29702 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
29703 GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
29704 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
29705 GIM_RootCheckRegBankForClass, /*Op*/5, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29706 GIM_RootCheckRegBankForClass, /*Op*/6, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29707 GIM_RootCheckRegBankForClass, /*Op*/7, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29708 // (intrinsic_wo_chain:{ *:[i32] } 3319:{ *:[iPTR] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm) => (MVE_VMLADAVau32:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm)
29709 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMLADAVau32),
29710 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
29711 GIR_RootToRootCopy, /*OpIdx*/5, // RdaSrc
29712 GIR_RootToRootCopy, /*OpIdx*/6, // Qn
29713 GIR_RootToRootCopy, /*OpIdx*/7, // Qm
29714 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
29715 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29716 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29717 GIR_RootConstrainSelectedInstOperands,
29718 // GIR_Coverage, 3312,
29719 GIR_EraseRootFromParent_Done,
29720 // Label 1577: @81195
29721 GIM_Try, /*On fail goto*//*Label 1578*/ GIMT_Encode4(81285), // Rule ID 3316 //
29722 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
29723 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmldava),
29724 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
29725 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
29726 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
29727 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
29728 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
29729 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_v16s8,
29730 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_v16s8,
29731 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29732 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
29733 GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 1,
29734 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
29735 GIM_RootCheckRegBankForClass, /*Op*/5, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29736 GIM_RootCheckRegBankForClass, /*Op*/6, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29737 GIM_RootCheckRegBankForClass, /*Op*/7, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29738 // (intrinsic_wo_chain:{ *:[i32] } 3319:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm) => (MVE_VMLSDAVas8:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm)
29739 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMLSDAVas8),
29740 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
29741 GIR_RootToRootCopy, /*OpIdx*/5, // RdaSrc
29742 GIR_RootToRootCopy, /*OpIdx*/6, // Qn
29743 GIR_RootToRootCopy, /*OpIdx*/7, // Qm
29744 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
29745 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29746 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29747 GIR_RootConstrainSelectedInstOperands,
29748 // GIR_Coverage, 3316,
29749 GIR_EraseRootFromParent_Done,
29750 // Label 1578: @81285
29751 GIM_Try, /*On fail goto*//*Label 1579*/ GIMT_Encode4(81375), // Rule ID 3320 //
29752 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
29753 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmldava),
29754 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
29755 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
29756 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
29757 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
29758 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
29759 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_v16s8,
29760 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_v16s8,
29761 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29762 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
29763 GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 1,
29764 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
29765 GIM_RootCheckRegBankForClass, /*Op*/5, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29766 GIM_RootCheckRegBankForClass, /*Op*/6, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29767 GIM_RootCheckRegBankForClass, /*Op*/7, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29768 // (intrinsic_wo_chain:{ *:[i32] } 3319:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm) => (MVE_VMLSDAVaxs8:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm)
29769 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMLSDAVaxs8),
29770 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
29771 GIR_RootToRootCopy, /*OpIdx*/5, // RdaSrc
29772 GIR_RootToRootCopy, /*OpIdx*/6, // Qn
29773 GIR_RootToRootCopy, /*OpIdx*/7, // Qm
29774 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
29775 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29776 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29777 GIR_RootConstrainSelectedInstOperands,
29778 // GIR_Coverage, 3320,
29779 GIR_EraseRootFromParent_Done,
29780 // Label 1579: @81375
29781 GIM_Try, /*On fail goto*//*Label 1580*/ GIMT_Encode4(81465), // Rule ID 3324 //
29782 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
29783 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmldava),
29784 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
29785 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
29786 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
29787 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
29788 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
29789 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_v8s16,
29790 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_v8s16,
29791 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29792 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
29793 GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 1,
29794 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
29795 GIM_RootCheckRegBankForClass, /*Op*/5, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29796 GIM_RootCheckRegBankForClass, /*Op*/6, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29797 GIM_RootCheckRegBankForClass, /*Op*/7, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29798 // (intrinsic_wo_chain:{ *:[i32] } 3319:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm) => (MVE_VMLSDAVas16:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm)
29799 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMLSDAVas16),
29800 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
29801 GIR_RootToRootCopy, /*OpIdx*/5, // RdaSrc
29802 GIR_RootToRootCopy, /*OpIdx*/6, // Qn
29803 GIR_RootToRootCopy, /*OpIdx*/7, // Qm
29804 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
29805 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29806 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29807 GIR_RootConstrainSelectedInstOperands,
29808 // GIR_Coverage, 3324,
29809 GIR_EraseRootFromParent_Done,
29810 // Label 1580: @81465
29811 GIM_Try, /*On fail goto*//*Label 1581*/ GIMT_Encode4(81555), // Rule ID 3328 //
29812 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
29813 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmldava),
29814 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
29815 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
29816 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
29817 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
29818 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
29819 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_v8s16,
29820 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_v8s16,
29821 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29822 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
29823 GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 1,
29824 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
29825 GIM_RootCheckRegBankForClass, /*Op*/5, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29826 GIM_RootCheckRegBankForClass, /*Op*/6, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29827 GIM_RootCheckRegBankForClass, /*Op*/7, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29828 // (intrinsic_wo_chain:{ *:[i32] } 3319:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm) => (MVE_VMLSDAVaxs16:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm)
29829 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMLSDAVaxs16),
29830 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
29831 GIR_RootToRootCopy, /*OpIdx*/5, // RdaSrc
29832 GIR_RootToRootCopy, /*OpIdx*/6, // Qn
29833 GIR_RootToRootCopy, /*OpIdx*/7, // Qm
29834 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
29835 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29836 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29837 GIR_RootConstrainSelectedInstOperands,
29838 // GIR_Coverage, 3328,
29839 GIR_EraseRootFromParent_Done,
29840 // Label 1581: @81555
29841 GIM_Try, /*On fail goto*//*Label 1582*/ GIMT_Encode4(81645), // Rule ID 3332 //
29842 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
29843 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmldava),
29844 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
29845 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
29846 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
29847 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
29848 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
29849 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_v4s32,
29850 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_v4s32,
29851 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29852 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
29853 GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 1,
29854 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 0,
29855 GIM_RootCheckRegBankForClass, /*Op*/5, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29856 GIM_RootCheckRegBankForClass, /*Op*/6, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29857 GIM_RootCheckRegBankForClass, /*Op*/7, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29858 // (intrinsic_wo_chain:{ *:[i32] } 3319:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm) => (MVE_VMLSDAVas32:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm)
29859 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMLSDAVas32),
29860 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
29861 GIR_RootToRootCopy, /*OpIdx*/5, // RdaSrc
29862 GIR_RootToRootCopy, /*OpIdx*/6, // Qn
29863 GIR_RootToRootCopy, /*OpIdx*/7, // Qm
29864 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
29865 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29866 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29867 GIR_RootConstrainSelectedInstOperands,
29868 // GIR_Coverage, 3332,
29869 GIR_EraseRootFromParent_Done,
29870 // Label 1582: @81645
29871 GIM_Try, /*On fail goto*//*Label 1583*/ GIMT_Encode4(81735), // Rule ID 3336 //
29872 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
29873 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vmldava),
29874 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
29875 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
29876 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
29877 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
29878 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
29879 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_v4s32,
29880 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_v4s32,
29881 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29882 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
29883 GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 1,
29884 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 1,
29885 GIM_RootCheckRegBankForClass, /*Op*/5, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
29886 GIM_RootCheckRegBankForClass, /*Op*/6, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29887 GIM_RootCheckRegBankForClass, /*Op*/7, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29888 // (intrinsic_wo_chain:{ *:[i32] } 3319:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm) => (MVE_VMLSDAVaxs32:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm)
29889 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMLSDAVaxs32),
29890 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
29891 GIR_RootToRootCopy, /*OpIdx*/5, // RdaSrc
29892 GIR_RootToRootCopy, /*OpIdx*/6, // Qn
29893 GIR_RootToRootCopy, /*OpIdx*/7, // Qm
29894 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
29895 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29896 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29897 GIR_RootConstrainSelectedInstOperands,
29898 // GIR_Coverage, 3336,
29899 GIR_EraseRootFromParent_Done,
29900 // Label 1583: @81735
29901 GIM_Try, /*On fail goto*//*Label 1584*/ GIMT_Encode4(81822), // Rule ID 4450 //
29902 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqdmlad),
29903 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
29904 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
29905 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
29906 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v16s8,
29907 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
29908 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
29909 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
29910 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29911 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29912 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29913 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29914 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
29915 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
29916 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 0,
29917 // (intrinsic_wo_chain:{ *:[v16i8] } 3328:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$a, MQPR:{ *:[v16i8] }:$b, MQPR:{ *:[v16i8] }:$c, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQDMLADHs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$a, MQPR:{ *:[v16i8] }:$b, MQPR:{ *:[v16i8] }:$c)
29918 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQDMLADHs8),
29919 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
29920 GIR_RootToRootCopy, /*OpIdx*/2, // a
29921 GIR_RootToRootCopy, /*OpIdx*/3, // b
29922 GIR_RootToRootCopy, /*OpIdx*/4, // c
29923 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
29924 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29925 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29926 GIR_RootConstrainSelectedInstOperands,
29927 // GIR_Coverage, 4450,
29928 GIR_EraseRootFromParent_Done,
29929 // Label 1584: @81822
29930 GIM_Try, /*On fail goto*//*Label 1585*/ GIMT_Encode4(81909), // Rule ID 4452 //
29931 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqdmlad),
29932 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
29933 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
29934 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
29935 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v8s16,
29936 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
29937 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
29938 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
29939 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29940 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29941 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29942 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29943 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
29944 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
29945 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 0,
29946 // (intrinsic_wo_chain:{ *:[v8i16] } 3328:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$a, MQPR:{ *:[v8i16] }:$b, MQPR:{ *:[v8i16] }:$c, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQDMLADHs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$a, MQPR:{ *:[v8i16] }:$b, MQPR:{ *:[v8i16] }:$c)
29947 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQDMLADHs16),
29948 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
29949 GIR_RootToRootCopy, /*OpIdx*/2, // a
29950 GIR_RootToRootCopy, /*OpIdx*/3, // b
29951 GIR_RootToRootCopy, /*OpIdx*/4, // c
29952 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
29953 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29954 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29955 GIR_RootConstrainSelectedInstOperands,
29956 // GIR_Coverage, 4452,
29957 GIR_EraseRootFromParent_Done,
29958 // Label 1585: @81909
29959 GIM_Try, /*On fail goto*//*Label 1586*/ GIMT_Encode4(81996), // Rule ID 4454 //
29960 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqdmlad),
29961 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
29962 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
29963 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
29964 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v4s32,
29965 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
29966 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
29967 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
29968 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29969 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29970 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29971 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29972 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
29973 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
29974 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 0,
29975 // (intrinsic_wo_chain:{ *:[v4i32] } 3328:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$a, MQPR:{ *:[v4i32] }:$b, MQPR:{ *:[v4i32] }:$c, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQDMLADHs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$a, MQPR:{ *:[v4i32] }:$b, MQPR:{ *:[v4i32] }:$c)
29976 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQDMLADHs32),
29977 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
29978 GIR_RootToRootCopy, /*OpIdx*/2, // a
29979 GIR_RootToRootCopy, /*OpIdx*/3, // b
29980 GIR_RootToRootCopy, /*OpIdx*/4, // c
29981 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
29982 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29983 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
29984 GIR_RootConstrainSelectedInstOperands,
29985 // GIR_Coverage, 4454,
29986 GIR_EraseRootFromParent_Done,
29987 // Label 1586: @81996
29988 GIM_Try, /*On fail goto*//*Label 1587*/ GIMT_Encode4(82083), // Rule ID 4456 //
29989 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqdmlad),
29990 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
29991 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
29992 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
29993 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v16s8,
29994 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
29995 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
29996 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
29997 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29998 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
29999 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30000 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30001 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
30002 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
30003 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 0,
30004 // (intrinsic_wo_chain:{ *:[v16i8] } 3328:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$a, MQPR:{ *:[v16i8] }:$b, MQPR:{ *:[v16i8] }:$c, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQDMLADHXs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$a, MQPR:{ *:[v16i8] }:$b, MQPR:{ *:[v16i8] }:$c)
30005 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQDMLADHXs8),
30006 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
30007 GIR_RootToRootCopy, /*OpIdx*/2, // a
30008 GIR_RootToRootCopy, /*OpIdx*/3, // b
30009 GIR_RootToRootCopy, /*OpIdx*/4, // c
30010 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
30011 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30012 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30013 GIR_RootConstrainSelectedInstOperands,
30014 // GIR_Coverage, 4456,
30015 GIR_EraseRootFromParent_Done,
30016 // Label 1587: @82083
30017 GIM_Try, /*On fail goto*//*Label 1588*/ GIMT_Encode4(82170), // Rule ID 4458 //
30018 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqdmlad),
30019 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
30020 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
30021 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
30022 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v8s16,
30023 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
30024 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
30025 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
30026 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30027 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30028 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30029 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30030 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
30031 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
30032 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 0,
30033 // (intrinsic_wo_chain:{ *:[v8i16] } 3328:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$a, MQPR:{ *:[v8i16] }:$b, MQPR:{ *:[v8i16] }:$c, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQDMLADHXs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$a, MQPR:{ *:[v8i16] }:$b, MQPR:{ *:[v8i16] }:$c)
30034 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQDMLADHXs16),
30035 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
30036 GIR_RootToRootCopy, /*OpIdx*/2, // a
30037 GIR_RootToRootCopy, /*OpIdx*/3, // b
30038 GIR_RootToRootCopy, /*OpIdx*/4, // c
30039 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
30040 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30041 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30042 GIR_RootConstrainSelectedInstOperands,
30043 // GIR_Coverage, 4458,
30044 GIR_EraseRootFromParent_Done,
30045 // Label 1588: @82170
30046 GIM_Try, /*On fail goto*//*Label 1589*/ GIMT_Encode4(82257), // Rule ID 4460 //
30047 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqdmlad),
30048 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
30049 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
30050 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
30051 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v4s32,
30052 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
30053 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
30054 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
30055 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30056 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30057 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30058 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30059 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
30060 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
30061 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 0,
30062 // (intrinsic_wo_chain:{ *:[v4i32] } 3328:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$a, MQPR:{ *:[v4i32] }:$b, MQPR:{ *:[v4i32] }:$c, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQDMLADHXs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$a, MQPR:{ *:[v4i32] }:$b, MQPR:{ *:[v4i32] }:$c)
30063 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQDMLADHXs32),
30064 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
30065 GIR_RootToRootCopy, /*OpIdx*/2, // a
30066 GIR_RootToRootCopy, /*OpIdx*/3, // b
30067 GIR_RootToRootCopy, /*OpIdx*/4, // c
30068 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
30069 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30070 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30071 GIR_RootConstrainSelectedInstOperands,
30072 // GIR_Coverage, 4460,
30073 GIR_EraseRootFromParent_Done,
30074 // Label 1589: @82257
30075 GIM_Try, /*On fail goto*//*Label 1590*/ GIMT_Encode4(82344), // Rule ID 4462 //
30076 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqdmlad),
30077 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
30078 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
30079 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
30080 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v16s8,
30081 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
30082 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
30083 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
30084 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30085 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30086 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30087 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30088 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
30089 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
30090 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 0,
30091 // (intrinsic_wo_chain:{ *:[v16i8] } 3328:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$a, MQPR:{ *:[v16i8] }:$b, MQPR:{ *:[v16i8] }:$c, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQRDMLADHs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$a, MQPR:{ *:[v16i8] }:$b, MQPR:{ *:[v16i8] }:$c)
30092 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRDMLADHs8),
30093 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
30094 GIR_RootToRootCopy, /*OpIdx*/2, // a
30095 GIR_RootToRootCopy, /*OpIdx*/3, // b
30096 GIR_RootToRootCopy, /*OpIdx*/4, // c
30097 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
30098 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30099 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30100 GIR_RootConstrainSelectedInstOperands,
30101 // GIR_Coverage, 4462,
30102 GIR_EraseRootFromParent_Done,
30103 // Label 1590: @82344
30104 GIM_Try, /*On fail goto*//*Label 1591*/ GIMT_Encode4(82431), // Rule ID 4464 //
30105 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqdmlad),
30106 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
30107 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
30108 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
30109 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v8s16,
30110 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
30111 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
30112 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
30113 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30114 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30115 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30116 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30117 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
30118 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
30119 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 0,
30120 // (intrinsic_wo_chain:{ *:[v8i16] } 3328:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$a, MQPR:{ *:[v8i16] }:$b, MQPR:{ *:[v8i16] }:$c, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQRDMLADHs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$a, MQPR:{ *:[v8i16] }:$b, MQPR:{ *:[v8i16] }:$c)
30121 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRDMLADHs16),
30122 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
30123 GIR_RootToRootCopy, /*OpIdx*/2, // a
30124 GIR_RootToRootCopy, /*OpIdx*/3, // b
30125 GIR_RootToRootCopy, /*OpIdx*/4, // c
30126 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
30127 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30128 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30129 GIR_RootConstrainSelectedInstOperands,
30130 // GIR_Coverage, 4464,
30131 GIR_EraseRootFromParent_Done,
30132 // Label 1591: @82431
30133 GIM_Try, /*On fail goto*//*Label 1592*/ GIMT_Encode4(82518), // Rule ID 4466 //
30134 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqdmlad),
30135 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
30136 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
30137 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
30138 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v4s32,
30139 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
30140 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
30141 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
30142 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30143 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30144 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30145 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30146 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
30147 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
30148 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 0,
30149 // (intrinsic_wo_chain:{ *:[v4i32] } 3328:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$a, MQPR:{ *:[v4i32] }:$b, MQPR:{ *:[v4i32] }:$c, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQRDMLADHs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$a, MQPR:{ *:[v4i32] }:$b, MQPR:{ *:[v4i32] }:$c)
30150 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRDMLADHs32),
30151 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
30152 GIR_RootToRootCopy, /*OpIdx*/2, // a
30153 GIR_RootToRootCopy, /*OpIdx*/3, // b
30154 GIR_RootToRootCopy, /*OpIdx*/4, // c
30155 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
30156 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30157 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30158 GIR_RootConstrainSelectedInstOperands,
30159 // GIR_Coverage, 4466,
30160 GIR_EraseRootFromParent_Done,
30161 // Label 1592: @82518
30162 GIM_Try, /*On fail goto*//*Label 1593*/ GIMT_Encode4(82605), // Rule ID 4468 //
30163 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqdmlad),
30164 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
30165 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
30166 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
30167 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v16s8,
30168 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
30169 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
30170 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
30171 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30172 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30173 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30174 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30175 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
30176 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
30177 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 0,
30178 // (intrinsic_wo_chain:{ *:[v16i8] } 3328:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$a, MQPR:{ *:[v16i8] }:$b, MQPR:{ *:[v16i8] }:$c, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQRDMLADHXs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$a, MQPR:{ *:[v16i8] }:$b, MQPR:{ *:[v16i8] }:$c)
30179 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRDMLADHXs8),
30180 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
30181 GIR_RootToRootCopy, /*OpIdx*/2, // a
30182 GIR_RootToRootCopy, /*OpIdx*/3, // b
30183 GIR_RootToRootCopy, /*OpIdx*/4, // c
30184 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
30185 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30186 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30187 GIR_RootConstrainSelectedInstOperands,
30188 // GIR_Coverage, 4468,
30189 GIR_EraseRootFromParent_Done,
30190 // Label 1593: @82605
30191 GIM_Try, /*On fail goto*//*Label 1594*/ GIMT_Encode4(82692), // Rule ID 4470 //
30192 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqdmlad),
30193 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
30194 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
30195 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
30196 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v8s16,
30197 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
30198 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
30199 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
30200 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30201 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30202 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30203 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30204 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
30205 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
30206 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 0,
30207 // (intrinsic_wo_chain:{ *:[v8i16] } 3328:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$a, MQPR:{ *:[v8i16] }:$b, MQPR:{ *:[v8i16] }:$c, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQRDMLADHXs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$a, MQPR:{ *:[v8i16] }:$b, MQPR:{ *:[v8i16] }:$c)
30208 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRDMLADHXs16),
30209 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
30210 GIR_RootToRootCopy, /*OpIdx*/2, // a
30211 GIR_RootToRootCopy, /*OpIdx*/3, // b
30212 GIR_RootToRootCopy, /*OpIdx*/4, // c
30213 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
30214 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30215 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30216 GIR_RootConstrainSelectedInstOperands,
30217 // GIR_Coverage, 4470,
30218 GIR_EraseRootFromParent_Done,
30219 // Label 1594: @82692
30220 GIM_Try, /*On fail goto*//*Label 1595*/ GIMT_Encode4(82779), // Rule ID 4472 //
30221 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqdmlad),
30222 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
30223 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
30224 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
30225 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v4s32,
30226 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
30227 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
30228 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
30229 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30230 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30231 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30232 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30233 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
30234 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
30235 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 0,
30236 // (intrinsic_wo_chain:{ *:[v4i32] } 3328:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$a, MQPR:{ *:[v4i32] }:$b, MQPR:{ *:[v4i32] }:$c, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQRDMLADHXs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$a, MQPR:{ *:[v4i32] }:$b, MQPR:{ *:[v4i32] }:$c)
30237 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRDMLADHXs32),
30238 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
30239 GIR_RootToRootCopy, /*OpIdx*/2, // a
30240 GIR_RootToRootCopy, /*OpIdx*/3, // b
30241 GIR_RootToRootCopy, /*OpIdx*/4, // c
30242 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
30243 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30244 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30245 GIR_RootConstrainSelectedInstOperands,
30246 // GIR_Coverage, 4472,
30247 GIR_EraseRootFromParent_Done,
30248 // Label 1595: @82779
30249 GIM_Try, /*On fail goto*//*Label 1596*/ GIMT_Encode4(82866), // Rule ID 4474 //
30250 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqdmlad),
30251 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
30252 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
30253 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
30254 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v16s8,
30255 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
30256 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
30257 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
30258 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30259 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30260 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30261 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30262 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
30263 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
30264 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 1,
30265 // (intrinsic_wo_chain:{ *:[v16i8] } 3328:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$a, MQPR:{ *:[v16i8] }:$b, MQPR:{ *:[v16i8] }:$c, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQDMLSDHs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$a, MQPR:{ *:[v16i8] }:$b, MQPR:{ *:[v16i8] }:$c)
30266 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQDMLSDHs8),
30267 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
30268 GIR_RootToRootCopy, /*OpIdx*/2, // a
30269 GIR_RootToRootCopy, /*OpIdx*/3, // b
30270 GIR_RootToRootCopy, /*OpIdx*/4, // c
30271 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
30272 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30273 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30274 GIR_RootConstrainSelectedInstOperands,
30275 // GIR_Coverage, 4474,
30276 GIR_EraseRootFromParent_Done,
30277 // Label 1596: @82866
30278 GIM_Try, /*On fail goto*//*Label 1597*/ GIMT_Encode4(82953), // Rule ID 4476 //
30279 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqdmlad),
30280 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
30281 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
30282 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
30283 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v8s16,
30284 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
30285 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
30286 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
30287 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30288 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30289 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30290 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30291 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
30292 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
30293 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 1,
30294 // (intrinsic_wo_chain:{ *:[v8i16] } 3328:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$a, MQPR:{ *:[v8i16] }:$b, MQPR:{ *:[v8i16] }:$c, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQDMLSDHs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$a, MQPR:{ *:[v8i16] }:$b, MQPR:{ *:[v8i16] }:$c)
30295 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQDMLSDHs16),
30296 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
30297 GIR_RootToRootCopy, /*OpIdx*/2, // a
30298 GIR_RootToRootCopy, /*OpIdx*/3, // b
30299 GIR_RootToRootCopy, /*OpIdx*/4, // c
30300 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
30301 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30302 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30303 GIR_RootConstrainSelectedInstOperands,
30304 // GIR_Coverage, 4476,
30305 GIR_EraseRootFromParent_Done,
30306 // Label 1597: @82953
30307 GIM_Try, /*On fail goto*//*Label 1598*/ GIMT_Encode4(83040), // Rule ID 4478 //
30308 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqdmlad),
30309 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
30310 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
30311 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
30312 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v4s32,
30313 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
30314 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
30315 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
30316 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30317 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30318 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30319 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30320 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
30321 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
30322 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 1,
30323 // (intrinsic_wo_chain:{ *:[v4i32] } 3328:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$a, MQPR:{ *:[v4i32] }:$b, MQPR:{ *:[v4i32] }:$c, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQDMLSDHs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$a, MQPR:{ *:[v4i32] }:$b, MQPR:{ *:[v4i32] }:$c)
30324 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQDMLSDHs32),
30325 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
30326 GIR_RootToRootCopy, /*OpIdx*/2, // a
30327 GIR_RootToRootCopy, /*OpIdx*/3, // b
30328 GIR_RootToRootCopy, /*OpIdx*/4, // c
30329 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
30330 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30331 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30332 GIR_RootConstrainSelectedInstOperands,
30333 // GIR_Coverage, 4478,
30334 GIR_EraseRootFromParent_Done,
30335 // Label 1598: @83040
30336 GIM_Try, /*On fail goto*//*Label 1599*/ GIMT_Encode4(83127), // Rule ID 4480 //
30337 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqdmlad),
30338 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
30339 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
30340 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
30341 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v16s8,
30342 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
30343 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
30344 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
30345 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30346 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30347 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30348 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30349 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
30350 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
30351 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 1,
30352 // (intrinsic_wo_chain:{ *:[v16i8] } 3328:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$a, MQPR:{ *:[v16i8] }:$b, MQPR:{ *:[v16i8] }:$c, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQDMLSDHXs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$a, MQPR:{ *:[v16i8] }:$b, MQPR:{ *:[v16i8] }:$c)
30353 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQDMLSDHXs8),
30354 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
30355 GIR_RootToRootCopy, /*OpIdx*/2, // a
30356 GIR_RootToRootCopy, /*OpIdx*/3, // b
30357 GIR_RootToRootCopy, /*OpIdx*/4, // c
30358 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
30359 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30360 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30361 GIR_RootConstrainSelectedInstOperands,
30362 // GIR_Coverage, 4480,
30363 GIR_EraseRootFromParent_Done,
30364 // Label 1599: @83127
30365 GIM_Try, /*On fail goto*//*Label 1600*/ GIMT_Encode4(83214), // Rule ID 4482 //
30366 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqdmlad),
30367 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
30368 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
30369 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
30370 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v8s16,
30371 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
30372 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
30373 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
30374 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30375 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30376 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30377 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30378 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
30379 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
30380 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 1,
30381 // (intrinsic_wo_chain:{ *:[v8i16] } 3328:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$a, MQPR:{ *:[v8i16] }:$b, MQPR:{ *:[v8i16] }:$c, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQDMLSDHXs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$a, MQPR:{ *:[v8i16] }:$b, MQPR:{ *:[v8i16] }:$c)
30382 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQDMLSDHXs16),
30383 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
30384 GIR_RootToRootCopy, /*OpIdx*/2, // a
30385 GIR_RootToRootCopy, /*OpIdx*/3, // b
30386 GIR_RootToRootCopy, /*OpIdx*/4, // c
30387 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
30388 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30389 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30390 GIR_RootConstrainSelectedInstOperands,
30391 // GIR_Coverage, 4482,
30392 GIR_EraseRootFromParent_Done,
30393 // Label 1600: @83214
30394 GIM_Try, /*On fail goto*//*Label 1601*/ GIMT_Encode4(83301), // Rule ID 4484 //
30395 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqdmlad),
30396 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
30397 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
30398 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
30399 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v4s32,
30400 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
30401 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
30402 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
30403 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30404 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30405 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30406 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30407 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
30408 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
30409 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 1,
30410 // (intrinsic_wo_chain:{ *:[v4i32] } 3328:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$a, MQPR:{ *:[v4i32] }:$b, MQPR:{ *:[v4i32] }:$c, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQDMLSDHXs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$a, MQPR:{ *:[v4i32] }:$b, MQPR:{ *:[v4i32] }:$c)
30411 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQDMLSDHXs32),
30412 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
30413 GIR_RootToRootCopy, /*OpIdx*/2, // a
30414 GIR_RootToRootCopy, /*OpIdx*/3, // b
30415 GIR_RootToRootCopy, /*OpIdx*/4, // c
30416 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
30417 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30418 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30419 GIR_RootConstrainSelectedInstOperands,
30420 // GIR_Coverage, 4484,
30421 GIR_EraseRootFromParent_Done,
30422 // Label 1601: @83301
30423 GIM_Try, /*On fail goto*//*Label 1602*/ GIMT_Encode4(83388), // Rule ID 4486 //
30424 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqdmlad),
30425 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
30426 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
30427 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
30428 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v16s8,
30429 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
30430 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
30431 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
30432 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30433 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30434 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30435 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30436 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
30437 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
30438 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 1,
30439 // (intrinsic_wo_chain:{ *:[v16i8] } 3328:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$a, MQPR:{ *:[v16i8] }:$b, MQPR:{ *:[v16i8] }:$c, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQRDMLSDHs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$a, MQPR:{ *:[v16i8] }:$b, MQPR:{ *:[v16i8] }:$c)
30440 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRDMLSDHs8),
30441 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
30442 GIR_RootToRootCopy, /*OpIdx*/2, // a
30443 GIR_RootToRootCopy, /*OpIdx*/3, // b
30444 GIR_RootToRootCopy, /*OpIdx*/4, // c
30445 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
30446 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30447 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30448 GIR_RootConstrainSelectedInstOperands,
30449 // GIR_Coverage, 4486,
30450 GIR_EraseRootFromParent_Done,
30451 // Label 1602: @83388
30452 GIM_Try, /*On fail goto*//*Label 1603*/ GIMT_Encode4(83475), // Rule ID 4488 //
30453 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqdmlad),
30454 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
30455 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
30456 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
30457 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v8s16,
30458 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
30459 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
30460 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
30461 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30462 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30463 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30464 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30465 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
30466 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
30467 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 1,
30468 // (intrinsic_wo_chain:{ *:[v8i16] } 3328:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$a, MQPR:{ *:[v8i16] }:$b, MQPR:{ *:[v8i16] }:$c, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQRDMLSDHs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$a, MQPR:{ *:[v8i16] }:$b, MQPR:{ *:[v8i16] }:$c)
30469 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRDMLSDHs16),
30470 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
30471 GIR_RootToRootCopy, /*OpIdx*/2, // a
30472 GIR_RootToRootCopy, /*OpIdx*/3, // b
30473 GIR_RootToRootCopy, /*OpIdx*/4, // c
30474 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
30475 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30476 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30477 GIR_RootConstrainSelectedInstOperands,
30478 // GIR_Coverage, 4488,
30479 GIR_EraseRootFromParent_Done,
30480 // Label 1603: @83475
30481 GIM_Try, /*On fail goto*//*Label 1604*/ GIMT_Encode4(83562), // Rule ID 4490 //
30482 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqdmlad),
30483 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
30484 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
30485 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
30486 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v4s32,
30487 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
30488 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
30489 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
30490 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30491 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30492 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30493 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30494 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
30495 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
30496 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 1,
30497 // (intrinsic_wo_chain:{ *:[v4i32] } 3328:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$a, MQPR:{ *:[v4i32] }:$b, MQPR:{ *:[v4i32] }:$c, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQRDMLSDHs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$a, MQPR:{ *:[v4i32] }:$b, MQPR:{ *:[v4i32] }:$c)
30498 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRDMLSDHs32),
30499 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
30500 GIR_RootToRootCopy, /*OpIdx*/2, // a
30501 GIR_RootToRootCopy, /*OpIdx*/3, // b
30502 GIR_RootToRootCopy, /*OpIdx*/4, // c
30503 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
30504 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30505 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30506 GIR_RootConstrainSelectedInstOperands,
30507 // GIR_Coverage, 4490,
30508 GIR_EraseRootFromParent_Done,
30509 // Label 1604: @83562
30510 GIM_Try, /*On fail goto*//*Label 1605*/ GIMT_Encode4(83649), // Rule ID 4492 //
30511 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqdmlad),
30512 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
30513 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
30514 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
30515 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v16s8,
30516 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
30517 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
30518 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
30519 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30520 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30521 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30522 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30523 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
30524 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
30525 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 1,
30526 // (intrinsic_wo_chain:{ *:[v16i8] } 3328:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$a, MQPR:{ *:[v16i8] }:$b, MQPR:{ *:[v16i8] }:$c, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQRDMLSDHXs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$a, MQPR:{ *:[v16i8] }:$b, MQPR:{ *:[v16i8] }:$c)
30527 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRDMLSDHXs8),
30528 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
30529 GIR_RootToRootCopy, /*OpIdx*/2, // a
30530 GIR_RootToRootCopy, /*OpIdx*/3, // b
30531 GIR_RootToRootCopy, /*OpIdx*/4, // c
30532 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
30533 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30534 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30535 GIR_RootConstrainSelectedInstOperands,
30536 // GIR_Coverage, 4492,
30537 GIR_EraseRootFromParent_Done,
30538 // Label 1605: @83649
30539 GIM_Try, /*On fail goto*//*Label 1606*/ GIMT_Encode4(83736), // Rule ID 4494 //
30540 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqdmlad),
30541 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
30542 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
30543 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
30544 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v8s16,
30545 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
30546 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
30547 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
30548 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30549 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30550 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30551 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30552 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
30553 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
30554 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 1,
30555 // (intrinsic_wo_chain:{ *:[v8i16] } 3328:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$a, MQPR:{ *:[v8i16] }:$b, MQPR:{ *:[v8i16] }:$c, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQRDMLSDHXs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$a, MQPR:{ *:[v8i16] }:$b, MQPR:{ *:[v8i16] }:$c)
30556 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRDMLSDHXs16),
30557 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
30558 GIR_RootToRootCopy, /*OpIdx*/2, // a
30559 GIR_RootToRootCopy, /*OpIdx*/3, // b
30560 GIR_RootToRootCopy, /*OpIdx*/4, // c
30561 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
30562 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30563 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30564 GIR_RootConstrainSelectedInstOperands,
30565 // GIR_Coverage, 4494,
30566 GIR_EraseRootFromParent_Done,
30567 // Label 1606: @83736
30568 GIM_Try, /*On fail goto*//*Label 1607*/ GIMT_Encode4(83823), // Rule ID 4496 //
30569 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vqdmlad),
30570 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
30571 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
30572 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
30573 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v4s32,
30574 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
30575 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
30576 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
30577 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30578 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30579 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30580 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30581 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
30582 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
30583 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 1,
30584 // (intrinsic_wo_chain:{ *:[v4i32] } 3328:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$a, MQPR:{ *:[v4i32] }:$b, MQPR:{ *:[v4i32] }:$c, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQRDMLSDHXs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$a, MQPR:{ *:[v4i32] }:$b, MQPR:{ *:[v4i32] }:$c)
30585 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRDMLSDHXs32),
30586 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
30587 GIR_RootToRootCopy, /*OpIdx*/2, // a
30588 GIR_RootToRootCopy, /*OpIdx*/3, // b
30589 GIR_RootToRootCopy, /*OpIdx*/4, // c
30590 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
30591 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30592 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30593 GIR_RootConstrainSelectedInstOperands,
30594 // GIR_Coverage, 4496,
30595 GIR_EraseRootFromParent_Done,
30596 // Label 1607: @83823
30597 GIM_Try, /*On fail goto*//*Label 1608*/ GIMT_Encode4(83949), // Rule ID 2710 //
30598 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
30599 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vtbx4),
30600 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s8,
30601 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
30602 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s8,
30603 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v8s8,
30604 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_v8s8,
30605 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_v8s8,
30606 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_v8s8,
30607 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
30608 // (intrinsic_wo_chain:{ *:[v8i8] } 3530:{ *:[iPTR] }, v8i8:{ *:[v8i8] }:$orig, v8i8:{ *:[v8i8] }:$Vn0, v8i8:{ *:[v8i8] }:$Vn1, v8i8:{ *:[v8i8] }:$Vn2, v8i8:{ *:[v8i8] }:$Vn3, v8i8:{ *:[v8i8] }:$Vm) => (VTBX4Pseudo:{ *:[v8i8] } v8i8:{ *:[v8i8] }:$orig, (REG_SEQUENCE:{ *:[v4i64] } QQPR:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn0, dsub_0:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn1, dsub_1:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn2, dsub_2:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn3, dsub_3:{ *:[i32] }), v8i8:{ *:[v8i8] }:$Vm)
30609 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s64,
30610 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::REG_SEQUENCE),
30611 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
30612 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // Vn0
30613 GIR_AddImm8, /*InsnID*/1, /*SubRegIndex*/1,
30614 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/4, // Vn1
30615 GIR_AddImm8, /*InsnID*/1, /*SubRegIndex*/2,
30616 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/5, // Vn2
30617 GIR_AddImm8, /*InsnID*/1, /*SubRegIndex*/3,
30618 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/6, // Vn3
30619 GIR_AddImm8, /*InsnID*/1, /*SubRegIndex*/4,
30620 GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/0, GIMT_Encode2(ARM::QQPRRegClassID),
30621 GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/1, GIMT_Encode2(ARM::DPRRegClassID),
30622 GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/3, GIMT_Encode2(ARM::DPRRegClassID),
30623 GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/5, GIMT_Encode2(ARM::DPRRegClassID),
30624 GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/7, GIMT_Encode2(ARM::DPRRegClassID),
30625 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VTBX4Pseudo),
30626 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
30627 GIR_RootToRootCopy, /*OpIdx*/2, // orig
30628 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
30629 GIR_RootToRootCopy, /*OpIdx*/7, // Vm
30630 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
30631 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30632 GIR_RootConstrainSelectedInstOperands,
30633 // GIR_Coverage, 2710,
30634 GIR_EraseRootFromParent_Done,
30635 // Label 1608: @83949
30636 GIM_Reject,
30637 // Label 1553: @83950
30638 GIM_Try, /*On fail goto*//*Label 1609*/ GIMT_Encode4(88244),
30639 GIM_CheckNumOperands, /*MI*/0, /*Expected*/10,
30640 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vshrn),
30641 GIM_Try, /*On fail goto*//*Label 1610*/ GIMT_Encode4(84070), // Rule ID 3873 //
30642 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
30643 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
30644 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
30645 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
30646 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
30647 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
30648 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
30649 GIM_RootCheckType, /*Op*/8, /*Type*/GILLT_s32,
30650 GIM_RootCheckType, /*Op*/9, /*Type*/GILLT_s32,
30651 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30652 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30653 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30654 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
30655 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
30656 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm8),
30657 // MIs[1] Operand 1
30658 // No operand predicates
30659 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
30660 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
30661 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 0,
30662 GIM_CheckConstantInt8, /*MI*/0, /*Op*/8, 0,
30663 GIM_CheckConstantInt8, /*MI*/0, /*Op*/9, 0,
30664 GIM_CheckIsSafeToFold, /*NumInsns*/1,
30665 // (intrinsic_wo_chain:{ *:[v16i8] } 3373:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSHRNi16bh:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
30666 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSHRNi16bh),
30667 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
30668 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
30669 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
30670 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
30671 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
30672 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30673 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30674 GIR_RootConstrainSelectedInstOperands,
30675 // GIR_Coverage, 3873,
30676 GIR_EraseRootFromParent_Done,
30677 // Label 1610: @84070
30678 GIM_Try, /*On fail goto*//*Label 1611*/ GIMT_Encode4(84177), // Rule ID 3875 //
30679 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
30680 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
30681 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
30682 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
30683 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
30684 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
30685 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
30686 GIM_RootCheckType, /*Op*/8, /*Type*/GILLT_s32,
30687 GIM_RootCheckType, /*Op*/9, /*Type*/GILLT_s32,
30688 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30689 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30690 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30691 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
30692 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
30693 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm8),
30694 // MIs[1] Operand 1
30695 // No operand predicates
30696 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
30697 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
30698 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 0,
30699 GIM_CheckConstantInt8, /*MI*/0, /*Op*/8, 0,
30700 GIM_CheckConstantInt8, /*MI*/0, /*Op*/9, 1,
30701 GIM_CheckIsSafeToFold, /*NumInsns*/1,
30702 // (intrinsic_wo_chain:{ *:[v16i8] } 3373:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VSHRNi16th:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
30703 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSHRNi16th),
30704 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
30705 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
30706 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
30707 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
30708 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
30709 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30710 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30711 GIR_RootConstrainSelectedInstOperands,
30712 // GIR_Coverage, 3875,
30713 GIR_EraseRootFromParent_Done,
30714 // Label 1611: @84177
30715 GIM_Try, /*On fail goto*//*Label 1612*/ GIMT_Encode4(84284), // Rule ID 3877 //
30716 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
30717 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
30718 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
30719 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
30720 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
30721 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
30722 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
30723 GIM_RootCheckType, /*Op*/8, /*Type*/GILLT_s32,
30724 GIM_RootCheckType, /*Op*/9, /*Type*/GILLT_s32,
30725 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30726 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30727 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30728 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
30729 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
30730 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm16),
30731 // MIs[1] Operand 1
30732 // No operand predicates
30733 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
30734 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
30735 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 0,
30736 GIM_CheckConstantInt8, /*MI*/0, /*Op*/8, 0,
30737 GIM_CheckConstantInt8, /*MI*/0, /*Op*/9, 0,
30738 GIM_CheckIsSafeToFold, /*NumInsns*/1,
30739 // (intrinsic_wo_chain:{ *:[v8i16] } 3373:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSHRNi32bh:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
30740 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSHRNi32bh),
30741 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
30742 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
30743 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
30744 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
30745 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
30746 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30747 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30748 GIR_RootConstrainSelectedInstOperands,
30749 // GIR_Coverage, 3877,
30750 GIR_EraseRootFromParent_Done,
30751 // Label 1612: @84284
30752 GIM_Try, /*On fail goto*//*Label 1613*/ GIMT_Encode4(84391), // Rule ID 3879 //
30753 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
30754 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
30755 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
30756 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
30757 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
30758 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
30759 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
30760 GIM_RootCheckType, /*Op*/8, /*Type*/GILLT_s32,
30761 GIM_RootCheckType, /*Op*/9, /*Type*/GILLT_s32,
30762 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30763 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30764 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30765 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
30766 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
30767 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm16),
30768 // MIs[1] Operand 1
30769 // No operand predicates
30770 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
30771 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
30772 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 0,
30773 GIM_CheckConstantInt8, /*MI*/0, /*Op*/8, 0,
30774 GIM_CheckConstantInt8, /*MI*/0, /*Op*/9, 1,
30775 GIM_CheckIsSafeToFold, /*NumInsns*/1,
30776 // (intrinsic_wo_chain:{ *:[v8i16] } 3373:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VSHRNi32th:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
30777 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSHRNi32th),
30778 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
30779 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
30780 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
30781 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
30782 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
30783 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30784 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30785 GIR_RootConstrainSelectedInstOperands,
30786 // GIR_Coverage, 3879,
30787 GIR_EraseRootFromParent_Done,
30788 // Label 1613: @84391
30789 GIM_Try, /*On fail goto*//*Label 1614*/ GIMT_Encode4(84498), // Rule ID 3881 //
30790 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
30791 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
30792 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
30793 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
30794 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
30795 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
30796 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
30797 GIM_RootCheckType, /*Op*/8, /*Type*/GILLT_s32,
30798 GIM_RootCheckType, /*Op*/9, /*Type*/GILLT_s32,
30799 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30800 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30801 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30802 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
30803 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
30804 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm8),
30805 // MIs[1] Operand 1
30806 // No operand predicates
30807 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
30808 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
30809 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 1,
30810 GIM_CheckConstantInt8, /*MI*/0, /*Op*/8, 1,
30811 GIM_CheckConstantInt8, /*MI*/0, /*Op*/9, 0,
30812 GIM_CheckIsSafeToFold, /*NumInsns*/1,
30813 // (intrinsic_wo_chain:{ *:[v16i8] } 3373:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSHRNi16bh:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
30814 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSHRNi16bh),
30815 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
30816 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
30817 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
30818 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
30819 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
30820 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30821 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30822 GIR_RootConstrainSelectedInstOperands,
30823 // GIR_Coverage, 3881,
30824 GIR_EraseRootFromParent_Done,
30825 // Label 1614: @84498
30826 GIM_Try, /*On fail goto*//*Label 1615*/ GIMT_Encode4(84605), // Rule ID 3883 //
30827 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
30828 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
30829 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
30830 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
30831 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
30832 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
30833 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
30834 GIM_RootCheckType, /*Op*/8, /*Type*/GILLT_s32,
30835 GIM_RootCheckType, /*Op*/9, /*Type*/GILLT_s32,
30836 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30837 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30838 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30839 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
30840 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
30841 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm8),
30842 // MIs[1] Operand 1
30843 // No operand predicates
30844 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
30845 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
30846 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 1,
30847 GIM_CheckConstantInt8, /*MI*/0, /*Op*/8, 1,
30848 GIM_CheckConstantInt8, /*MI*/0, /*Op*/9, 1,
30849 GIM_CheckIsSafeToFold, /*NumInsns*/1,
30850 // (intrinsic_wo_chain:{ *:[v16i8] } 3373:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VSHRNi16th:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
30851 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSHRNi16th),
30852 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
30853 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
30854 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
30855 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
30856 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
30857 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30858 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30859 GIR_RootConstrainSelectedInstOperands,
30860 // GIR_Coverage, 3883,
30861 GIR_EraseRootFromParent_Done,
30862 // Label 1615: @84605
30863 GIM_Try, /*On fail goto*//*Label 1616*/ GIMT_Encode4(84712), // Rule ID 3885 //
30864 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
30865 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
30866 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
30867 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
30868 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
30869 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
30870 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
30871 GIM_RootCheckType, /*Op*/8, /*Type*/GILLT_s32,
30872 GIM_RootCheckType, /*Op*/9, /*Type*/GILLT_s32,
30873 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30874 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30875 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30876 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
30877 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
30878 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm16),
30879 // MIs[1] Operand 1
30880 // No operand predicates
30881 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
30882 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
30883 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 1,
30884 GIM_CheckConstantInt8, /*MI*/0, /*Op*/8, 1,
30885 GIM_CheckConstantInt8, /*MI*/0, /*Op*/9, 0,
30886 GIM_CheckIsSafeToFold, /*NumInsns*/1,
30887 // (intrinsic_wo_chain:{ *:[v8i16] } 3373:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSHRNi32bh:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
30888 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSHRNi32bh),
30889 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
30890 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
30891 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
30892 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
30893 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
30894 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30895 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30896 GIR_RootConstrainSelectedInstOperands,
30897 // GIR_Coverage, 3885,
30898 GIR_EraseRootFromParent_Done,
30899 // Label 1616: @84712
30900 GIM_Try, /*On fail goto*//*Label 1617*/ GIMT_Encode4(84819), // Rule ID 3887 //
30901 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
30902 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
30903 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
30904 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
30905 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
30906 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
30907 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
30908 GIM_RootCheckType, /*Op*/8, /*Type*/GILLT_s32,
30909 GIM_RootCheckType, /*Op*/9, /*Type*/GILLT_s32,
30910 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30911 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30912 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30913 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
30914 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
30915 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm16),
30916 // MIs[1] Operand 1
30917 // No operand predicates
30918 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
30919 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
30920 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 1,
30921 GIM_CheckConstantInt8, /*MI*/0, /*Op*/8, 1,
30922 GIM_CheckConstantInt8, /*MI*/0, /*Op*/9, 1,
30923 GIM_CheckIsSafeToFold, /*NumInsns*/1,
30924 // (intrinsic_wo_chain:{ *:[v8i16] } 3373:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VSHRNi32th:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
30925 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSHRNi32th),
30926 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
30927 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
30928 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
30929 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
30930 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
30931 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30932 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30933 GIR_RootConstrainSelectedInstOperands,
30934 // GIR_Coverage, 3887,
30935 GIR_EraseRootFromParent_Done,
30936 // Label 1617: @84819
30937 GIM_Try, /*On fail goto*//*Label 1618*/ GIMT_Encode4(84926), // Rule ID 3889 //
30938 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
30939 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
30940 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
30941 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
30942 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
30943 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
30944 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
30945 GIM_RootCheckType, /*Op*/8, /*Type*/GILLT_s32,
30946 GIM_RootCheckType, /*Op*/9, /*Type*/GILLT_s32,
30947 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30948 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30949 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30950 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
30951 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
30952 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm8),
30953 // MIs[1] Operand 1
30954 // No operand predicates
30955 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
30956 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
30957 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 0,
30958 GIM_CheckConstantInt8, /*MI*/0, /*Op*/8, 0,
30959 GIM_CheckConstantInt8, /*MI*/0, /*Op*/9, 0,
30960 GIM_CheckIsSafeToFold, /*NumInsns*/1,
30961 // (intrinsic_wo_chain:{ *:[v16i8] } 3373:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VRSHRNi16bh:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
30962 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRSHRNi16bh),
30963 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
30964 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
30965 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
30966 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
30967 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
30968 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30969 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
30970 GIR_RootConstrainSelectedInstOperands,
30971 // GIR_Coverage, 3889,
30972 GIR_EraseRootFromParent_Done,
30973 // Label 1618: @84926
30974 GIM_Try, /*On fail goto*//*Label 1619*/ GIMT_Encode4(85033), // Rule ID 3891 //
30975 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
30976 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
30977 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
30978 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
30979 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
30980 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
30981 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
30982 GIM_RootCheckType, /*Op*/8, /*Type*/GILLT_s32,
30983 GIM_RootCheckType, /*Op*/9, /*Type*/GILLT_s32,
30984 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30985 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30986 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
30987 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
30988 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
30989 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm8),
30990 // MIs[1] Operand 1
30991 // No operand predicates
30992 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
30993 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
30994 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 0,
30995 GIM_CheckConstantInt8, /*MI*/0, /*Op*/8, 0,
30996 GIM_CheckConstantInt8, /*MI*/0, /*Op*/9, 1,
30997 GIM_CheckIsSafeToFold, /*NumInsns*/1,
30998 // (intrinsic_wo_chain:{ *:[v16i8] } 3373:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VRSHRNi16th:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
30999 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRSHRNi16th),
31000 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
31001 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
31002 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
31003 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
31004 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
31005 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31006 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31007 GIR_RootConstrainSelectedInstOperands,
31008 // GIR_Coverage, 3891,
31009 GIR_EraseRootFromParent_Done,
31010 // Label 1619: @85033
31011 GIM_Try, /*On fail goto*//*Label 1620*/ GIMT_Encode4(85140), // Rule ID 3893 //
31012 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
31013 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
31014 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
31015 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
31016 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
31017 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
31018 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
31019 GIM_RootCheckType, /*Op*/8, /*Type*/GILLT_s32,
31020 GIM_RootCheckType, /*Op*/9, /*Type*/GILLT_s32,
31021 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31022 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31023 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31024 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
31025 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
31026 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm16),
31027 // MIs[1] Operand 1
31028 // No operand predicates
31029 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
31030 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
31031 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 0,
31032 GIM_CheckConstantInt8, /*MI*/0, /*Op*/8, 0,
31033 GIM_CheckConstantInt8, /*MI*/0, /*Op*/9, 0,
31034 GIM_CheckIsSafeToFold, /*NumInsns*/1,
31035 // (intrinsic_wo_chain:{ *:[v8i16] } 3373:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VRSHRNi32bh:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
31036 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRSHRNi32bh),
31037 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
31038 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
31039 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
31040 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
31041 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
31042 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31043 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31044 GIR_RootConstrainSelectedInstOperands,
31045 // GIR_Coverage, 3893,
31046 GIR_EraseRootFromParent_Done,
31047 // Label 1620: @85140
31048 GIM_Try, /*On fail goto*//*Label 1621*/ GIMT_Encode4(85247), // Rule ID 3895 //
31049 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
31050 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
31051 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
31052 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
31053 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
31054 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
31055 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
31056 GIM_RootCheckType, /*Op*/8, /*Type*/GILLT_s32,
31057 GIM_RootCheckType, /*Op*/9, /*Type*/GILLT_s32,
31058 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31059 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31060 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31061 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
31062 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
31063 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm16),
31064 // MIs[1] Operand 1
31065 // No operand predicates
31066 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
31067 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
31068 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 0,
31069 GIM_CheckConstantInt8, /*MI*/0, /*Op*/8, 0,
31070 GIM_CheckConstantInt8, /*MI*/0, /*Op*/9, 1,
31071 GIM_CheckIsSafeToFold, /*NumInsns*/1,
31072 // (intrinsic_wo_chain:{ *:[v8i16] } 3373:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VRSHRNi32th:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
31073 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRSHRNi32th),
31074 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
31075 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
31076 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
31077 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
31078 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
31079 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31080 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31081 GIR_RootConstrainSelectedInstOperands,
31082 // GIR_Coverage, 3895,
31083 GIR_EraseRootFromParent_Done,
31084 // Label 1621: @85247
31085 GIM_Try, /*On fail goto*//*Label 1622*/ GIMT_Encode4(85354), // Rule ID 3897 //
31086 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
31087 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
31088 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
31089 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
31090 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
31091 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
31092 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
31093 GIM_RootCheckType, /*Op*/8, /*Type*/GILLT_s32,
31094 GIM_RootCheckType, /*Op*/9, /*Type*/GILLT_s32,
31095 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31096 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31097 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31098 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
31099 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
31100 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm8),
31101 // MIs[1] Operand 1
31102 // No operand predicates
31103 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
31104 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
31105 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 1,
31106 GIM_CheckConstantInt8, /*MI*/0, /*Op*/8, 1,
31107 GIM_CheckConstantInt8, /*MI*/0, /*Op*/9, 0,
31108 GIM_CheckIsSafeToFold, /*NumInsns*/1,
31109 // (intrinsic_wo_chain:{ *:[v16i8] } 3373:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VRSHRNi16bh:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
31110 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRSHRNi16bh),
31111 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
31112 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
31113 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
31114 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
31115 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
31116 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31117 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31118 GIR_RootConstrainSelectedInstOperands,
31119 // GIR_Coverage, 3897,
31120 GIR_EraseRootFromParent_Done,
31121 // Label 1622: @85354
31122 GIM_Try, /*On fail goto*//*Label 1623*/ GIMT_Encode4(85461), // Rule ID 3899 //
31123 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
31124 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
31125 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
31126 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
31127 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
31128 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
31129 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
31130 GIM_RootCheckType, /*Op*/8, /*Type*/GILLT_s32,
31131 GIM_RootCheckType, /*Op*/9, /*Type*/GILLT_s32,
31132 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31133 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31134 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31135 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
31136 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
31137 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm8),
31138 // MIs[1] Operand 1
31139 // No operand predicates
31140 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
31141 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
31142 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 1,
31143 GIM_CheckConstantInt8, /*MI*/0, /*Op*/8, 1,
31144 GIM_CheckConstantInt8, /*MI*/0, /*Op*/9, 1,
31145 GIM_CheckIsSafeToFold, /*NumInsns*/1,
31146 // (intrinsic_wo_chain:{ *:[v16i8] } 3373:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VRSHRNi16th:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
31147 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRSHRNi16th),
31148 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
31149 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
31150 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
31151 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
31152 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
31153 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31154 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31155 GIR_RootConstrainSelectedInstOperands,
31156 // GIR_Coverage, 3899,
31157 GIR_EraseRootFromParent_Done,
31158 // Label 1623: @85461
31159 GIM_Try, /*On fail goto*//*Label 1624*/ GIMT_Encode4(85568), // Rule ID 3901 //
31160 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
31161 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
31162 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
31163 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
31164 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
31165 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
31166 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
31167 GIM_RootCheckType, /*Op*/8, /*Type*/GILLT_s32,
31168 GIM_RootCheckType, /*Op*/9, /*Type*/GILLT_s32,
31169 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31170 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31171 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31172 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
31173 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
31174 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm16),
31175 // MIs[1] Operand 1
31176 // No operand predicates
31177 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
31178 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
31179 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 1,
31180 GIM_CheckConstantInt8, /*MI*/0, /*Op*/8, 1,
31181 GIM_CheckConstantInt8, /*MI*/0, /*Op*/9, 0,
31182 GIM_CheckIsSafeToFold, /*NumInsns*/1,
31183 // (intrinsic_wo_chain:{ *:[v8i16] } 3373:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VRSHRNi32bh:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
31184 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRSHRNi32bh),
31185 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
31186 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
31187 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
31188 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
31189 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
31190 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31191 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31192 GIR_RootConstrainSelectedInstOperands,
31193 // GIR_Coverage, 3901,
31194 GIR_EraseRootFromParent_Done,
31195 // Label 1624: @85568
31196 GIM_Try, /*On fail goto*//*Label 1625*/ GIMT_Encode4(85675), // Rule ID 3903 //
31197 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
31198 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
31199 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
31200 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
31201 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
31202 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
31203 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
31204 GIM_RootCheckType, /*Op*/8, /*Type*/GILLT_s32,
31205 GIM_RootCheckType, /*Op*/9, /*Type*/GILLT_s32,
31206 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31207 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31208 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31209 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
31210 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
31211 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm16),
31212 // MIs[1] Operand 1
31213 // No operand predicates
31214 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
31215 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
31216 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 1,
31217 GIM_CheckConstantInt8, /*MI*/0, /*Op*/8, 1,
31218 GIM_CheckConstantInt8, /*MI*/0, /*Op*/9, 1,
31219 GIM_CheckIsSafeToFold, /*NumInsns*/1,
31220 // (intrinsic_wo_chain:{ *:[v8i16] } 3373:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VRSHRNi32th:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
31221 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRSHRNi32th),
31222 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
31223 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
31224 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
31225 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
31226 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
31227 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31228 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31229 GIR_RootConstrainSelectedInstOperands,
31230 // GIR_Coverage, 3903,
31231 GIR_EraseRootFromParent_Done,
31232 // Label 1625: @85675
31233 GIM_Try, /*On fail goto*//*Label 1626*/ GIMT_Encode4(85782), // Rule ID 3905 //
31234 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
31235 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
31236 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
31237 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
31238 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
31239 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
31240 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
31241 GIM_RootCheckType, /*Op*/8, /*Type*/GILLT_s32,
31242 GIM_RootCheckType, /*Op*/9, /*Type*/GILLT_s32,
31243 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31244 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31245 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31246 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
31247 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
31248 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm8),
31249 // MIs[1] Operand 1
31250 // No operand predicates
31251 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
31252 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
31253 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 0,
31254 GIM_CheckConstantInt8, /*MI*/0, /*Op*/8, 0,
31255 GIM_CheckConstantInt8, /*MI*/0, /*Op*/9, 0,
31256 GIM_CheckIsSafeToFold, /*NumInsns*/1,
31257 // (intrinsic_wo_chain:{ *:[v16i8] } 3373:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQSHRNbhs16:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
31258 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQSHRNbhs16),
31259 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
31260 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
31261 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
31262 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
31263 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
31264 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31265 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31266 GIR_RootConstrainSelectedInstOperands,
31267 // GIR_Coverage, 3905,
31268 GIR_EraseRootFromParent_Done,
31269 // Label 1626: @85782
31270 GIM_Try, /*On fail goto*//*Label 1627*/ GIMT_Encode4(85889), // Rule ID 3907 //
31271 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
31272 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
31273 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
31274 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
31275 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
31276 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
31277 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
31278 GIM_RootCheckType, /*Op*/8, /*Type*/GILLT_s32,
31279 GIM_RootCheckType, /*Op*/9, /*Type*/GILLT_s32,
31280 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31281 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31282 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31283 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
31284 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
31285 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm8),
31286 // MIs[1] Operand 1
31287 // No operand predicates
31288 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
31289 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
31290 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 0,
31291 GIM_CheckConstantInt8, /*MI*/0, /*Op*/8, 0,
31292 GIM_CheckConstantInt8, /*MI*/0, /*Op*/9, 1,
31293 GIM_CheckIsSafeToFold, /*NumInsns*/1,
31294 // (intrinsic_wo_chain:{ *:[v16i8] } 3373:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQSHRNths16:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
31295 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQSHRNths16),
31296 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
31297 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
31298 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
31299 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
31300 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
31301 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31302 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31303 GIR_RootConstrainSelectedInstOperands,
31304 // GIR_Coverage, 3907,
31305 GIR_EraseRootFromParent_Done,
31306 // Label 1627: @85889
31307 GIM_Try, /*On fail goto*//*Label 1628*/ GIMT_Encode4(85996), // Rule ID 3909 //
31308 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
31309 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
31310 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
31311 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
31312 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
31313 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
31314 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
31315 GIM_RootCheckType, /*Op*/8, /*Type*/GILLT_s32,
31316 GIM_RootCheckType, /*Op*/9, /*Type*/GILLT_s32,
31317 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31318 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31319 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31320 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
31321 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
31322 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm16),
31323 // MIs[1] Operand 1
31324 // No operand predicates
31325 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
31326 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
31327 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 0,
31328 GIM_CheckConstantInt8, /*MI*/0, /*Op*/8, 0,
31329 GIM_CheckConstantInt8, /*MI*/0, /*Op*/9, 0,
31330 GIM_CheckIsSafeToFold, /*NumInsns*/1,
31331 // (intrinsic_wo_chain:{ *:[v8i16] } 3373:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQSHRNbhs32:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
31332 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQSHRNbhs32),
31333 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
31334 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
31335 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
31336 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
31337 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
31338 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31339 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31340 GIR_RootConstrainSelectedInstOperands,
31341 // GIR_Coverage, 3909,
31342 GIR_EraseRootFromParent_Done,
31343 // Label 1628: @85996
31344 GIM_Try, /*On fail goto*//*Label 1629*/ GIMT_Encode4(86103), // Rule ID 3911 //
31345 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
31346 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
31347 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
31348 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
31349 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
31350 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
31351 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
31352 GIM_RootCheckType, /*Op*/8, /*Type*/GILLT_s32,
31353 GIM_RootCheckType, /*Op*/9, /*Type*/GILLT_s32,
31354 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31355 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31356 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31357 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
31358 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
31359 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm16),
31360 // MIs[1] Operand 1
31361 // No operand predicates
31362 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
31363 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
31364 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 0,
31365 GIM_CheckConstantInt8, /*MI*/0, /*Op*/8, 0,
31366 GIM_CheckConstantInt8, /*MI*/0, /*Op*/9, 1,
31367 GIM_CheckIsSafeToFold, /*NumInsns*/1,
31368 // (intrinsic_wo_chain:{ *:[v8i16] } 3373:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQSHRNths32:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
31369 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQSHRNths32),
31370 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
31371 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
31372 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
31373 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
31374 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
31375 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31376 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31377 GIR_RootConstrainSelectedInstOperands,
31378 // GIR_Coverage, 3911,
31379 GIR_EraseRootFromParent_Done,
31380 // Label 1629: @86103
31381 GIM_Try, /*On fail goto*//*Label 1630*/ GIMT_Encode4(86210), // Rule ID 3913 //
31382 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
31383 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
31384 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
31385 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
31386 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
31387 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
31388 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
31389 GIM_RootCheckType, /*Op*/8, /*Type*/GILLT_s32,
31390 GIM_RootCheckType, /*Op*/9, /*Type*/GILLT_s32,
31391 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31392 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31393 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31394 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
31395 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
31396 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm8),
31397 // MIs[1] Operand 1
31398 // No operand predicates
31399 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
31400 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
31401 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 1,
31402 GIM_CheckConstantInt8, /*MI*/0, /*Op*/8, 1,
31403 GIM_CheckConstantInt8, /*MI*/0, /*Op*/9, 0,
31404 GIM_CheckIsSafeToFold, /*NumInsns*/1,
31405 // (intrinsic_wo_chain:{ *:[v16i8] } 3373:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQSHRNbhu16:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
31406 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQSHRNbhu16),
31407 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
31408 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
31409 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
31410 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
31411 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
31412 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31413 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31414 GIR_RootConstrainSelectedInstOperands,
31415 // GIR_Coverage, 3913,
31416 GIR_EraseRootFromParent_Done,
31417 // Label 1630: @86210
31418 GIM_Try, /*On fail goto*//*Label 1631*/ GIMT_Encode4(86317), // Rule ID 3915 //
31419 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
31420 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
31421 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
31422 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
31423 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
31424 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
31425 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
31426 GIM_RootCheckType, /*Op*/8, /*Type*/GILLT_s32,
31427 GIM_RootCheckType, /*Op*/9, /*Type*/GILLT_s32,
31428 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31429 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31430 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31431 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
31432 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
31433 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm8),
31434 // MIs[1] Operand 1
31435 // No operand predicates
31436 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
31437 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
31438 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 1,
31439 GIM_CheckConstantInt8, /*MI*/0, /*Op*/8, 1,
31440 GIM_CheckConstantInt8, /*MI*/0, /*Op*/9, 1,
31441 GIM_CheckIsSafeToFold, /*NumInsns*/1,
31442 // (intrinsic_wo_chain:{ *:[v16i8] } 3373:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQSHRNthu16:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
31443 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQSHRNthu16),
31444 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
31445 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
31446 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
31447 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
31448 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
31449 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31450 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31451 GIR_RootConstrainSelectedInstOperands,
31452 // GIR_Coverage, 3915,
31453 GIR_EraseRootFromParent_Done,
31454 // Label 1631: @86317
31455 GIM_Try, /*On fail goto*//*Label 1632*/ GIMT_Encode4(86424), // Rule ID 3917 //
31456 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
31457 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
31458 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
31459 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
31460 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
31461 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
31462 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
31463 GIM_RootCheckType, /*Op*/8, /*Type*/GILLT_s32,
31464 GIM_RootCheckType, /*Op*/9, /*Type*/GILLT_s32,
31465 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31466 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31467 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31468 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
31469 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
31470 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm16),
31471 // MIs[1] Operand 1
31472 // No operand predicates
31473 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
31474 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
31475 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 1,
31476 GIM_CheckConstantInt8, /*MI*/0, /*Op*/8, 1,
31477 GIM_CheckConstantInt8, /*MI*/0, /*Op*/9, 0,
31478 GIM_CheckIsSafeToFold, /*NumInsns*/1,
31479 // (intrinsic_wo_chain:{ *:[v8i16] } 3373:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQSHRNbhu32:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
31480 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQSHRNbhu32),
31481 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
31482 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
31483 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
31484 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
31485 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
31486 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31487 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31488 GIR_RootConstrainSelectedInstOperands,
31489 // GIR_Coverage, 3917,
31490 GIR_EraseRootFromParent_Done,
31491 // Label 1632: @86424
31492 GIM_Try, /*On fail goto*//*Label 1633*/ GIMT_Encode4(86531), // Rule ID 3919 //
31493 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
31494 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
31495 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
31496 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
31497 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
31498 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
31499 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
31500 GIM_RootCheckType, /*Op*/8, /*Type*/GILLT_s32,
31501 GIM_RootCheckType, /*Op*/9, /*Type*/GILLT_s32,
31502 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31503 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31504 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31505 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
31506 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
31507 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm16),
31508 // MIs[1] Operand 1
31509 // No operand predicates
31510 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
31511 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
31512 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 1,
31513 GIM_CheckConstantInt8, /*MI*/0, /*Op*/8, 1,
31514 GIM_CheckConstantInt8, /*MI*/0, /*Op*/9, 1,
31515 GIM_CheckIsSafeToFold, /*NumInsns*/1,
31516 // (intrinsic_wo_chain:{ *:[v8i16] } 3373:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQSHRNthu32:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
31517 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQSHRNthu32),
31518 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
31519 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
31520 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
31521 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
31522 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
31523 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31524 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31525 GIR_RootConstrainSelectedInstOperands,
31526 // GIR_Coverage, 3919,
31527 GIR_EraseRootFromParent_Done,
31528 // Label 1633: @86531
31529 GIM_Try, /*On fail goto*//*Label 1634*/ GIMT_Encode4(86638), // Rule ID 3921 //
31530 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
31531 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
31532 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
31533 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
31534 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
31535 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
31536 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
31537 GIM_RootCheckType, /*Op*/8, /*Type*/GILLT_s32,
31538 GIM_RootCheckType, /*Op*/9, /*Type*/GILLT_s32,
31539 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31540 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31541 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31542 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
31543 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
31544 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm8),
31545 // MIs[1] Operand 1
31546 // No operand predicates
31547 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
31548 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
31549 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 0,
31550 GIM_CheckConstantInt8, /*MI*/0, /*Op*/8, 0,
31551 GIM_CheckConstantInt8, /*MI*/0, /*Op*/9, 0,
31552 GIM_CheckIsSafeToFold, /*NumInsns*/1,
31553 // (intrinsic_wo_chain:{ *:[v16i8] } 3373:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQRSHRNbhs16:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
31554 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRSHRNbhs16),
31555 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
31556 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
31557 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
31558 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
31559 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
31560 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31561 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31562 GIR_RootConstrainSelectedInstOperands,
31563 // GIR_Coverage, 3921,
31564 GIR_EraseRootFromParent_Done,
31565 // Label 1634: @86638
31566 GIM_Try, /*On fail goto*//*Label 1635*/ GIMT_Encode4(86745), // Rule ID 3923 //
31567 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
31568 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
31569 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
31570 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
31571 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
31572 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
31573 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
31574 GIM_RootCheckType, /*Op*/8, /*Type*/GILLT_s32,
31575 GIM_RootCheckType, /*Op*/9, /*Type*/GILLT_s32,
31576 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31577 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31578 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31579 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
31580 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
31581 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm8),
31582 // MIs[1] Operand 1
31583 // No operand predicates
31584 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
31585 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
31586 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 0,
31587 GIM_CheckConstantInt8, /*MI*/0, /*Op*/8, 0,
31588 GIM_CheckConstantInt8, /*MI*/0, /*Op*/9, 1,
31589 GIM_CheckIsSafeToFold, /*NumInsns*/1,
31590 // (intrinsic_wo_chain:{ *:[v16i8] } 3373:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQRSHRNths16:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
31591 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRSHRNths16),
31592 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
31593 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
31594 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
31595 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
31596 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
31597 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31598 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31599 GIR_RootConstrainSelectedInstOperands,
31600 // GIR_Coverage, 3923,
31601 GIR_EraseRootFromParent_Done,
31602 // Label 1635: @86745
31603 GIM_Try, /*On fail goto*//*Label 1636*/ GIMT_Encode4(86852), // Rule ID 3925 //
31604 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
31605 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
31606 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
31607 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
31608 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
31609 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
31610 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
31611 GIM_RootCheckType, /*Op*/8, /*Type*/GILLT_s32,
31612 GIM_RootCheckType, /*Op*/9, /*Type*/GILLT_s32,
31613 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31614 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31615 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31616 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
31617 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
31618 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm16),
31619 // MIs[1] Operand 1
31620 // No operand predicates
31621 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
31622 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
31623 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 0,
31624 GIM_CheckConstantInt8, /*MI*/0, /*Op*/8, 0,
31625 GIM_CheckConstantInt8, /*MI*/0, /*Op*/9, 0,
31626 GIM_CheckIsSafeToFold, /*NumInsns*/1,
31627 // (intrinsic_wo_chain:{ *:[v8i16] } 3373:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQRSHRNbhs32:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
31628 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRSHRNbhs32),
31629 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
31630 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
31631 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
31632 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
31633 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
31634 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31635 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31636 GIR_RootConstrainSelectedInstOperands,
31637 // GIR_Coverage, 3925,
31638 GIR_EraseRootFromParent_Done,
31639 // Label 1636: @86852
31640 GIM_Try, /*On fail goto*//*Label 1637*/ GIMT_Encode4(86959), // Rule ID 3927 //
31641 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
31642 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
31643 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
31644 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
31645 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
31646 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
31647 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
31648 GIM_RootCheckType, /*Op*/8, /*Type*/GILLT_s32,
31649 GIM_RootCheckType, /*Op*/9, /*Type*/GILLT_s32,
31650 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31651 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31652 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31653 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
31654 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
31655 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm16),
31656 // MIs[1] Operand 1
31657 // No operand predicates
31658 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
31659 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
31660 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 0,
31661 GIM_CheckConstantInt8, /*MI*/0, /*Op*/8, 0,
31662 GIM_CheckConstantInt8, /*MI*/0, /*Op*/9, 1,
31663 GIM_CheckIsSafeToFold, /*NumInsns*/1,
31664 // (intrinsic_wo_chain:{ *:[v8i16] } 3373:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQRSHRNths32:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
31665 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRSHRNths32),
31666 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
31667 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
31668 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
31669 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
31670 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
31671 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31672 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31673 GIR_RootConstrainSelectedInstOperands,
31674 // GIR_Coverage, 3927,
31675 GIR_EraseRootFromParent_Done,
31676 // Label 1637: @86959
31677 GIM_Try, /*On fail goto*//*Label 1638*/ GIMT_Encode4(87066), // Rule ID 3929 //
31678 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
31679 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
31680 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
31681 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
31682 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
31683 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
31684 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
31685 GIM_RootCheckType, /*Op*/8, /*Type*/GILLT_s32,
31686 GIM_RootCheckType, /*Op*/9, /*Type*/GILLT_s32,
31687 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31688 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31689 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31690 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
31691 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
31692 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm8),
31693 // MIs[1] Operand 1
31694 // No operand predicates
31695 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
31696 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
31697 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 1,
31698 GIM_CheckConstantInt8, /*MI*/0, /*Op*/8, 1,
31699 GIM_CheckConstantInt8, /*MI*/0, /*Op*/9, 0,
31700 GIM_CheckIsSafeToFold, /*NumInsns*/1,
31701 // (intrinsic_wo_chain:{ *:[v16i8] } 3373:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQRSHRNbhu16:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
31702 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRSHRNbhu16),
31703 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
31704 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
31705 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
31706 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
31707 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
31708 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31709 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31710 GIR_RootConstrainSelectedInstOperands,
31711 // GIR_Coverage, 3929,
31712 GIR_EraseRootFromParent_Done,
31713 // Label 1638: @87066
31714 GIM_Try, /*On fail goto*//*Label 1639*/ GIMT_Encode4(87173), // Rule ID 3931 //
31715 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
31716 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
31717 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
31718 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
31719 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
31720 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
31721 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
31722 GIM_RootCheckType, /*Op*/8, /*Type*/GILLT_s32,
31723 GIM_RootCheckType, /*Op*/9, /*Type*/GILLT_s32,
31724 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31725 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31726 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31727 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
31728 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
31729 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm8),
31730 // MIs[1] Operand 1
31731 // No operand predicates
31732 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
31733 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
31734 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 1,
31735 GIM_CheckConstantInt8, /*MI*/0, /*Op*/8, 1,
31736 GIM_CheckConstantInt8, /*MI*/0, /*Op*/9, 1,
31737 GIM_CheckIsSafeToFold, /*NumInsns*/1,
31738 // (intrinsic_wo_chain:{ *:[v16i8] } 3373:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQRSHRNthu16:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
31739 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRSHRNthu16),
31740 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
31741 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
31742 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
31743 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
31744 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
31745 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31746 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31747 GIR_RootConstrainSelectedInstOperands,
31748 // GIR_Coverage, 3931,
31749 GIR_EraseRootFromParent_Done,
31750 // Label 1639: @87173
31751 GIM_Try, /*On fail goto*//*Label 1640*/ GIMT_Encode4(87280), // Rule ID 3933 //
31752 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
31753 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
31754 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
31755 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
31756 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
31757 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
31758 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
31759 GIM_RootCheckType, /*Op*/8, /*Type*/GILLT_s32,
31760 GIM_RootCheckType, /*Op*/9, /*Type*/GILLT_s32,
31761 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31762 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31763 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31764 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
31765 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
31766 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm16),
31767 // MIs[1] Operand 1
31768 // No operand predicates
31769 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
31770 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
31771 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 1,
31772 GIM_CheckConstantInt8, /*MI*/0, /*Op*/8, 1,
31773 GIM_CheckConstantInt8, /*MI*/0, /*Op*/9, 0,
31774 GIM_CheckIsSafeToFold, /*NumInsns*/1,
31775 // (intrinsic_wo_chain:{ *:[v8i16] } 3373:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQRSHRNbhu32:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
31776 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRSHRNbhu32),
31777 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
31778 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
31779 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
31780 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
31781 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
31782 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31783 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31784 GIR_RootConstrainSelectedInstOperands,
31785 // GIR_Coverage, 3933,
31786 GIR_EraseRootFromParent_Done,
31787 // Label 1640: @87280
31788 GIM_Try, /*On fail goto*//*Label 1641*/ GIMT_Encode4(87387), // Rule ID 3935 //
31789 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
31790 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
31791 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
31792 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
31793 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
31794 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
31795 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
31796 GIM_RootCheckType, /*Op*/8, /*Type*/GILLT_s32,
31797 GIM_RootCheckType, /*Op*/9, /*Type*/GILLT_s32,
31798 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31799 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31800 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31801 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
31802 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
31803 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm16),
31804 // MIs[1] Operand 1
31805 // No operand predicates
31806 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
31807 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
31808 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 1,
31809 GIM_CheckConstantInt8, /*MI*/0, /*Op*/8, 1,
31810 GIM_CheckConstantInt8, /*MI*/0, /*Op*/9, 1,
31811 GIM_CheckIsSafeToFold, /*NumInsns*/1,
31812 // (intrinsic_wo_chain:{ *:[v8i16] } 3373:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQRSHRNthu32:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
31813 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRSHRNthu32),
31814 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
31815 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
31816 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
31817 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
31818 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
31819 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31820 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31821 GIR_RootConstrainSelectedInstOperands,
31822 // GIR_Coverage, 3935,
31823 GIR_EraseRootFromParent_Done,
31824 // Label 1641: @87387
31825 GIM_Try, /*On fail goto*//*Label 1642*/ GIMT_Encode4(87494), // Rule ID 3937 //
31826 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
31827 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
31828 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
31829 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
31830 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
31831 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
31832 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
31833 GIM_RootCheckType, /*Op*/8, /*Type*/GILLT_s32,
31834 GIM_RootCheckType, /*Op*/9, /*Type*/GILLT_s32,
31835 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31836 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31837 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31838 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
31839 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
31840 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm8),
31841 // MIs[1] Operand 1
31842 // No operand predicates
31843 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
31844 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
31845 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 1,
31846 GIM_CheckConstantInt8, /*MI*/0, /*Op*/8, 0,
31847 GIM_CheckConstantInt8, /*MI*/0, /*Op*/9, 0,
31848 GIM_CheckIsSafeToFold, /*NumInsns*/1,
31849 // (intrinsic_wo_chain:{ *:[v16i8] } 3373:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQSHRUNs16bh:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
31850 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQSHRUNs16bh),
31851 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
31852 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
31853 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
31854 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
31855 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
31856 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31857 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31858 GIR_RootConstrainSelectedInstOperands,
31859 // GIR_Coverage, 3937,
31860 GIR_EraseRootFromParent_Done,
31861 // Label 1642: @87494
31862 GIM_Try, /*On fail goto*//*Label 1643*/ GIMT_Encode4(87601), // Rule ID 3939 //
31863 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
31864 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
31865 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
31866 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
31867 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
31868 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
31869 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
31870 GIM_RootCheckType, /*Op*/8, /*Type*/GILLT_s32,
31871 GIM_RootCheckType, /*Op*/9, /*Type*/GILLT_s32,
31872 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31873 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31874 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31875 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
31876 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
31877 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm8),
31878 // MIs[1] Operand 1
31879 // No operand predicates
31880 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
31881 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
31882 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 1,
31883 GIM_CheckConstantInt8, /*MI*/0, /*Op*/8, 0,
31884 GIM_CheckConstantInt8, /*MI*/0, /*Op*/9, 1,
31885 GIM_CheckIsSafeToFold, /*NumInsns*/1,
31886 // (intrinsic_wo_chain:{ *:[v16i8] } 3373:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQSHRUNs16th:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
31887 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQSHRUNs16th),
31888 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
31889 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
31890 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
31891 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
31892 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
31893 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31894 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31895 GIR_RootConstrainSelectedInstOperands,
31896 // GIR_Coverage, 3939,
31897 GIR_EraseRootFromParent_Done,
31898 // Label 1643: @87601
31899 GIM_Try, /*On fail goto*//*Label 1644*/ GIMT_Encode4(87708), // Rule ID 3941 //
31900 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
31901 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
31902 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
31903 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
31904 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
31905 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
31906 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
31907 GIM_RootCheckType, /*Op*/8, /*Type*/GILLT_s32,
31908 GIM_RootCheckType, /*Op*/9, /*Type*/GILLT_s32,
31909 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31910 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31911 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31912 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
31913 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
31914 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm16),
31915 // MIs[1] Operand 1
31916 // No operand predicates
31917 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
31918 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
31919 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 1,
31920 GIM_CheckConstantInt8, /*MI*/0, /*Op*/8, 0,
31921 GIM_CheckConstantInt8, /*MI*/0, /*Op*/9, 0,
31922 GIM_CheckIsSafeToFold, /*NumInsns*/1,
31923 // (intrinsic_wo_chain:{ *:[v8i16] } 3373:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQSHRUNs32bh:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
31924 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQSHRUNs32bh),
31925 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
31926 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
31927 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
31928 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
31929 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
31930 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31931 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31932 GIR_RootConstrainSelectedInstOperands,
31933 // GIR_Coverage, 3941,
31934 GIR_EraseRootFromParent_Done,
31935 // Label 1644: @87708
31936 GIM_Try, /*On fail goto*//*Label 1645*/ GIMT_Encode4(87815), // Rule ID 3943 //
31937 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
31938 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
31939 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
31940 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
31941 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
31942 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
31943 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
31944 GIM_RootCheckType, /*Op*/8, /*Type*/GILLT_s32,
31945 GIM_RootCheckType, /*Op*/9, /*Type*/GILLT_s32,
31946 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31947 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31948 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31949 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
31950 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
31951 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm16),
31952 // MIs[1] Operand 1
31953 // No operand predicates
31954 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
31955 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
31956 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 1,
31957 GIM_CheckConstantInt8, /*MI*/0, /*Op*/8, 0,
31958 GIM_CheckConstantInt8, /*MI*/0, /*Op*/9, 1,
31959 GIM_CheckIsSafeToFold, /*NumInsns*/1,
31960 // (intrinsic_wo_chain:{ *:[v8i16] } 3373:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQSHRUNs32th:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
31961 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQSHRUNs32th),
31962 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
31963 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
31964 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
31965 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
31966 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
31967 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31968 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
31969 GIR_RootConstrainSelectedInstOperands,
31970 // GIR_Coverage, 3943,
31971 GIR_EraseRootFromParent_Done,
31972 // Label 1645: @87815
31973 GIM_Try, /*On fail goto*//*Label 1646*/ GIMT_Encode4(87922), // Rule ID 3945 //
31974 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
31975 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
31976 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
31977 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
31978 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
31979 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
31980 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
31981 GIM_RootCheckType, /*Op*/8, /*Type*/GILLT_s32,
31982 GIM_RootCheckType, /*Op*/9, /*Type*/GILLT_s32,
31983 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31984 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31985 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
31986 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
31987 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
31988 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm8),
31989 // MIs[1] Operand 1
31990 // No operand predicates
31991 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
31992 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
31993 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 1,
31994 GIM_CheckConstantInt8, /*MI*/0, /*Op*/8, 0,
31995 GIM_CheckConstantInt8, /*MI*/0, /*Op*/9, 0,
31996 GIM_CheckIsSafeToFold, /*NumInsns*/1,
31997 // (intrinsic_wo_chain:{ *:[v16i8] } 3373:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQRSHRUNs16bh:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
31998 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRSHRUNs16bh),
31999 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
32000 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
32001 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
32002 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
32003 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
32004 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
32005 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
32006 GIR_RootConstrainSelectedInstOperands,
32007 // GIR_Coverage, 3945,
32008 GIR_EraseRootFromParent_Done,
32009 // Label 1646: @87922
32010 GIM_Try, /*On fail goto*//*Label 1647*/ GIMT_Encode4(88029), // Rule ID 3947 //
32011 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
32012 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
32013 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
32014 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
32015 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
32016 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
32017 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
32018 GIM_RootCheckType, /*Op*/8, /*Type*/GILLT_s32,
32019 GIM_RootCheckType, /*Op*/9, /*Type*/GILLT_s32,
32020 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
32021 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
32022 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
32023 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
32024 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
32025 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm8),
32026 // MIs[1] Operand 1
32027 // No operand predicates
32028 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
32029 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
32030 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 1,
32031 GIM_CheckConstantInt8, /*MI*/0, /*Op*/8, 0,
32032 GIM_CheckConstantInt8, /*MI*/0, /*Op*/9, 1,
32033 GIM_CheckIsSafeToFold, /*NumInsns*/1,
32034 // (intrinsic_wo_chain:{ *:[v16i8] } 3373:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQRSHRUNs16th:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
32035 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRSHRUNs16th),
32036 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
32037 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
32038 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
32039 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
32040 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
32041 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
32042 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
32043 GIR_RootConstrainSelectedInstOperands,
32044 // GIR_Coverage, 3947,
32045 GIR_EraseRootFromParent_Done,
32046 // Label 1647: @88029
32047 GIM_Try, /*On fail goto*//*Label 1648*/ GIMT_Encode4(88136), // Rule ID 3949 //
32048 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
32049 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
32050 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
32051 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
32052 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
32053 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
32054 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
32055 GIM_RootCheckType, /*Op*/8, /*Type*/GILLT_s32,
32056 GIM_RootCheckType, /*Op*/9, /*Type*/GILLT_s32,
32057 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
32058 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
32059 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
32060 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
32061 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
32062 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm16),
32063 // MIs[1] Operand 1
32064 // No operand predicates
32065 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
32066 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
32067 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 1,
32068 GIM_CheckConstantInt8, /*MI*/0, /*Op*/8, 0,
32069 GIM_CheckConstantInt8, /*MI*/0, /*Op*/9, 0,
32070 GIM_CheckIsSafeToFold, /*NumInsns*/1,
32071 // (intrinsic_wo_chain:{ *:[v8i16] } 3373:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQRSHRUNs32bh:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
32072 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRSHRUNs32bh),
32073 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
32074 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
32075 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
32076 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
32077 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
32078 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
32079 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
32080 GIR_RootConstrainSelectedInstOperands,
32081 // GIR_Coverage, 3949,
32082 GIR_EraseRootFromParent_Done,
32083 // Label 1648: @88136
32084 GIM_Try, /*On fail goto*//*Label 1649*/ GIMT_Encode4(88243), // Rule ID 3951 //
32085 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
32086 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
32087 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
32088 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
32089 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
32090 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
32091 GIM_RootCheckType, /*Op*/7, /*Type*/GILLT_s32,
32092 GIM_RootCheckType, /*Op*/8, /*Type*/GILLT_s32,
32093 GIM_RootCheckType, /*Op*/9, /*Type*/GILLT_s32,
32094 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
32095 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
32096 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
32097 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
32098 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
32099 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_shr_imm16),
32100 // MIs[1] Operand 1
32101 // No operand predicates
32102 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
32103 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
32104 GIM_CheckConstantInt8, /*MI*/0, /*Op*/7, 1,
32105 GIM_CheckConstantInt8, /*MI*/0, /*Op*/8, 0,
32106 GIM_CheckConstantInt8, /*MI*/0, /*Op*/9, 1,
32107 GIM_CheckIsSafeToFold, /*NumInsns*/1,
32108 // (intrinsic_wo_chain:{ *:[v8i16] } 3373:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQRSHRUNs32th:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
32109 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQRSHRUNs32th),
32110 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
32111 GIR_RootToRootCopy, /*OpIdx*/2, // QdSrc
32112 GIR_RootToRootCopy, /*OpIdx*/3, // Qm
32113 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
32114 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
32115 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
32116 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
32117 GIR_RootConstrainSelectedInstOperands,
32118 // GIR_Coverage, 3951,
32119 GIR_EraseRootFromParent_Done,
32120 // Label 1649: @88243
32121 GIM_Reject,
32122 // Label 1609: @88244
32123 GIM_Reject,
32124 // Label 14: @88245
32125 GIM_Try, /*On fail goto*//*Label 1650*/ GIMT_Encode4(88302),
32126 GIM_CheckNumOperands, /*MI*/0, /*Expected*/1,
32127 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_clrex),
32128 GIM_Try, /*On fail goto*//*Label 1651*/ GIMT_Encode4(88275), // Rule ID 252 //
32129 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6K_IsARM),
32130 // (intrinsic_void 3158:{ *:[iPTR] }) => (CLREX)
32131 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::CLREX),
32132 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
32133 GIR_RootConstrainSelectedInstOperands,
32134 // GIR_Coverage, 252,
32135 GIR_EraseRootFromParent_Done,
32136 // Label 1651: @88275
32137 GIM_Try, /*On fail goto*//*Label 1652*/ GIMT_Encode4(88301), // Rule ID 591 //
32138 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV7Clrex_IsThumb),
32139 // (intrinsic_void 3158:{ *:[iPTR] }) => (t2CLREX)
32140 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2CLREX),
32141 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
32142 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
32143 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
32144 GIR_RootConstrainSelectedInstOperands,
32145 // GIR_Coverage, 591,
32146 GIR_EraseRootFromParent_Done,
32147 // Label 1652: @88301
32148 GIM_Reject,
32149 // Label 1650: @88302
32150 GIM_Try, /*On fail goto*//*Label 1653*/ GIMT_Encode4(89104),
32151 GIM_CheckNumOperands, /*MI*/0, /*Expected*/2,
32152 GIM_Try, /*On fail goto*//*Label 1654*/ GIMT_Encode4(88346), // Rule ID 351 //
32153 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb_IsWindows),
32154 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_undefined),
32155 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
32156 GIM_CheckConstantInt, /*MI*/0, /*Op*/1, GIMT_Encode8(249),
32157 // (intrinsic_void 3599:{ *:[iPTR] }, 249:{ *:[i32] }) => (t__brkdiv0)
32158 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t__brkdiv0),
32159 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
32160 GIR_RootConstrainSelectedInstOperands,
32161 // GIR_Coverage, 351,
32162 GIR_EraseRootFromParent_Done,
32163 // Label 1654: @88346
32164 GIM_Try, /*On fail goto*//*Label 1655*/ GIMT_Encode4(88398), // Rule ID 2 //
32165 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
32166 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_hint),
32167 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
32168 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
32169 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
32170 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm0_239),
32171 // MIs[1] Operand 1
32172 // No operand predicates
32173 GIM_CheckIsSafeToFold, /*NumInsns*/1,
32174 // (intrinsic_void 3176:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_239>>:$imm) => (HINT (imm:{ *:[i32] }):$imm)
32175 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::HINT),
32176 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
32177 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
32178 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
32179 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/2, /*MergeInsnID's*/0, 1,
32180 GIR_RootConstrainSelectedInstOperands,
32181 // GIR_Coverage, 2,
32182 GIR_EraseRootFromParent_Done,
32183 // Label 1655: @88398
32184 GIM_Try, /*On fail goto*//*Label 1656*/ GIMT_Encode4(88450), // Rule ID 10 //
32185 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV7_IsARM),
32186 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_dbg),
32187 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
32188 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
32189 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
32190 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm0_15),
32191 // MIs[1] Operand 1
32192 // No operand predicates
32193 GIM_CheckIsSafeToFold, /*NumInsns*/1,
32194 // (intrinsic_void 3171:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$opt) => (DBG (imm:{ *:[i32] }):$opt)
32195 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::DBG),
32196 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // opt
32197 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
32198 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
32199 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/2, /*MergeInsnID's*/0, 1,
32200 GIR_RootConstrainSelectedInstOperands,
32201 // GIR_Coverage, 10,
32202 GIR_EraseRootFromParent_Done,
32203 // Label 1656: @88450
32204 GIM_Try, /*On fail goto*//*Label 1657*/ GIMT_Encode4(88493), // Rule ID 11 //
32205 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
32206 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_undefined),
32207 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
32208 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
32209 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
32210 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm0_65535),
32211 // MIs[1] Operand 1
32212 // No operand predicates
32213 GIM_CheckIsSafeToFold, /*NumInsns*/1,
32214 // (intrinsic_void 3599:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_65535>>:$imm16) => (UDF (imm:{ *:[i32] }):$imm16)
32215 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::UDF),
32216 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm16
32217 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/2, /*MergeInsnID's*/0, 1,
32218 GIR_RootConstrainSelectedInstOperands,
32219 // GIR_Coverage, 11,
32220 GIR_EraseRootFromParent_Done,
32221 // Label 1657: @88493
32222 GIM_Try, /*On fail goto*//*Label 1658*/ GIMT_Encode4(88536), // Rule ID 235 //
32223 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDB_IsARM),
32224 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_dmb),
32225 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
32226 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
32227 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
32228 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm0_15),
32229 // MIs[1] Operand 1
32230 // No operand predicates
32231 GIM_CheckIsSafeToFold, /*NumInsns*/1,
32232 // (intrinsic_void 3172:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$opt) => (DMB (imm:{ *:[i32] }):$opt)
32233 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::DMB),
32234 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // opt
32235 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/2, /*MergeInsnID's*/0, 1,
32236 GIR_RootConstrainSelectedInstOperands,
32237 // GIR_Coverage, 235,
32238 GIR_EraseRootFromParent_Done,
32239 // Label 1658: @88536
32240 GIM_Try, /*On fail goto*//*Label 1659*/ GIMT_Encode4(88579), // Rule ID 236 //
32241 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDB_IsARM),
32242 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_dsb),
32243 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
32244 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
32245 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
32246 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm0_15),
32247 // MIs[1] Operand 1
32248 // No operand predicates
32249 GIM_CheckIsSafeToFold, /*NumInsns*/1,
32250 // (intrinsic_void 3173:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$opt) => (DSB (imm:{ *:[i32] }):$opt)
32251 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::DSB),
32252 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // opt
32253 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/2, /*MergeInsnID's*/0, 1,
32254 GIR_RootConstrainSelectedInstOperands,
32255 // GIR_Coverage, 236,
32256 GIR_EraseRootFromParent_Done,
32257 // Label 1659: @88579
32258 GIM_Try, /*On fail goto*//*Label 1660*/ GIMT_Encode4(88622), // Rule ID 237 //
32259 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDB_IsARM),
32260 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_isb),
32261 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
32262 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
32263 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
32264 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm0_15),
32265 // MIs[1] Operand 1
32266 // No operand predicates
32267 GIM_CheckIsSafeToFold, /*NumInsns*/1,
32268 // (intrinsic_void 3177:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$opt) => (ISB (imm:{ *:[i32] }):$opt)
32269 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::ISB),
32270 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // opt
32271 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/2, /*MergeInsnID's*/0, 1,
32272 GIR_RootConstrainSelectedInstOperands,
32273 // GIR_Coverage, 237,
32274 GIR_EraseRootFromParent_Done,
32275 // Label 1660: @88622
32276 GIM_Try, /*On fail goto*//*Label 1661*/ GIMT_Encode4(88674), // Rule ID 283 //
32277 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6M_IsThumb),
32278 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_hint),
32279 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
32280 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
32281 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
32282 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm0_15),
32283 // MIs[1] Operand 1
32284 // No operand predicates
32285 GIM_CheckIsSafeToFold, /*NumInsns*/1,
32286 // (intrinsic_void 3176:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm) => (tHINT (imm:{ *:[i32] }):$imm)
32287 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::tHINT),
32288 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
32289 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
32290 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
32291 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/2, /*MergeInsnID's*/0, 1,
32292 GIR_RootConstrainSelectedInstOperands,
32293 // GIR_Coverage, 283,
32294 GIR_EraseRootFromParent_Done,
32295 // Label 1661: @88674
32296 GIM_Try, /*On fail goto*//*Label 1662*/ GIMT_Encode4(88717), // Rule ID 350 //
32297 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb),
32298 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_undefined),
32299 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
32300 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
32301 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
32302 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm0_255),
32303 // MIs[1] Operand 1
32304 // No operand predicates
32305 GIM_CheckIsSafeToFold, /*NumInsns*/1,
32306 // (intrinsic_void 3599:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8) => (tUDF (imm:{ *:[i32] }):$imm8)
32307 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::tUDF),
32308 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm8
32309 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/2, /*MergeInsnID's*/0, 1,
32310 GIR_RootConstrainSelectedInstOperands,
32311 // GIR_Coverage, 350,
32312 GIR_EraseRootFromParent_Done,
32313 // Label 1662: @88717
32314 GIM_Try, /*On fail goto*//*Label 1663*/ GIMT_Encode4(88760), // Rule ID 502 //
32315 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
32316 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_undefined),
32317 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
32318 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
32319 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
32320 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm0_65535),
32321 // MIs[1] Operand 1
32322 // No operand predicates
32323 GIM_CheckIsSafeToFold, /*NumInsns*/1,
32324 // (intrinsic_void 3599:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_65535>>:$imm16) => (t2UDF (imm:{ *:[i32] }):$imm16)
32325 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2UDF),
32326 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm16
32327 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/2, /*MergeInsnID's*/0, 1,
32328 GIR_RootConstrainSelectedInstOperands,
32329 // GIR_Coverage, 502,
32330 GIR_EraseRootFromParent_Done,
32331 // Label 1663: @88760
32332 GIM_Try, /*On fail goto*//*Label 1664*/ GIMT_Encode4(88812), // Rule ID 576 //
32333 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDB_IsThumb),
32334 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_dmb),
32335 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
32336 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
32337 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
32338 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm0_15),
32339 // MIs[1] Operand 1
32340 // No operand predicates
32341 GIM_CheckIsSafeToFold, /*NumInsns*/1,
32342 // (intrinsic_void 3172:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$opt) => (t2DMB (imm:{ *:[i32] }):$opt)
32343 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2DMB),
32344 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // opt
32345 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
32346 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
32347 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/2, /*MergeInsnID's*/0, 1,
32348 GIR_RootConstrainSelectedInstOperands,
32349 // GIR_Coverage, 576,
32350 GIR_EraseRootFromParent_Done,
32351 // Label 1664: @88812
32352 GIM_Try, /*On fail goto*//*Label 1665*/ GIMT_Encode4(88864), // Rule ID 577 //
32353 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDB_IsThumb),
32354 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_dsb),
32355 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
32356 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
32357 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
32358 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm0_15),
32359 // MIs[1] Operand 1
32360 // No operand predicates
32361 GIM_CheckIsSafeToFold, /*NumInsns*/1,
32362 // (intrinsic_void 3173:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$opt) => (t2DSB (imm:{ *:[i32] }):$opt)
32363 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2DSB),
32364 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // opt
32365 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
32366 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
32367 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/2, /*MergeInsnID's*/0, 1,
32368 GIR_RootConstrainSelectedInstOperands,
32369 // GIR_Coverage, 577,
32370 GIR_EraseRootFromParent_Done,
32371 // Label 1665: @88864
32372 GIM_Try, /*On fail goto*//*Label 1666*/ GIMT_Encode4(88916), // Rule ID 578 //
32373 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDB_IsThumb),
32374 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_isb),
32375 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
32376 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
32377 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
32378 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm0_15),
32379 // MIs[1] Operand 1
32380 // No operand predicates
32381 GIM_CheckIsSafeToFold, /*NumInsns*/1,
32382 // (intrinsic_void 3177:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$opt) => (t2ISB (imm:{ *:[i32] }):$opt)
32383 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2ISB),
32384 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // opt
32385 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
32386 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
32387 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/2, /*MergeInsnID's*/0, 1,
32388 GIR_RootConstrainSelectedInstOperands,
32389 // GIR_Coverage, 578,
32390 GIR_EraseRootFromParent_Done,
32391 // Label 1666: @88916
32392 GIM_Try, /*On fail goto*//*Label 1667*/ GIMT_Encode4(88968), // Rule ID 596 //
32393 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
32394 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_hint),
32395 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
32396 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
32397 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
32398 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm0_239),
32399 // MIs[1] Operand 1
32400 // No operand predicates
32401 GIM_CheckIsSafeToFold, /*NumInsns*/1,
32402 // (intrinsic_void 3176:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_239>>:$imm) => (t2HINT (imm:{ *:[i32] }):$imm)
32403 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2HINT),
32404 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
32405 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
32406 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
32407 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/2, /*MergeInsnID's*/0, 1,
32408 GIR_RootConstrainSelectedInstOperands,
32409 // GIR_Coverage, 596,
32410 GIR_EraseRootFromParent_Done,
32411 // Label 1667: @88968
32412 GIM_Try, /*On fail goto*//*Label 1668*/ GIMT_Encode4(89020), // Rule ID 597 //
32413 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
32414 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_dbg),
32415 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
32416 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
32417 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
32418 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm0_15),
32419 // MIs[1] Operand 1
32420 // No operand predicates
32421 GIM_CheckIsSafeToFold, /*NumInsns*/1,
32422 // (intrinsic_void 3171:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$opt) => (t2DBG (imm:{ *:[i32] }):$opt)
32423 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2DBG),
32424 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // opt
32425 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
32426 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
32427 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/2, /*MergeInsnID's*/0, 1,
32428 GIR_RootConstrainSelectedInstOperands,
32429 // GIR_Coverage, 597,
32430 GIR_EraseRootFromParent_Done,
32431 // Label 1668: @89020
32432 GIM_Try, /*On fail goto*//*Label 1669*/ GIMT_Encode4(89060), // Rule ID 742 //
32433 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFPRegs),
32434 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_get_fpscr),
32435 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
32436 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
32437 // (intrinsic_w_chain:{ *:[i32] } 3174:{ *:[iPTR] }) => (VMRS:{ *:[i32] })
32438 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMRS),
32439 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rt]
32440 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
32441 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
32442 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
32443 GIR_RootConstrainSelectedInstOperands,
32444 // GIR_Coverage, 742,
32445 GIR_EraseRootFromParent_Done,
32446 // Label 1669: @89060
32447 GIM_Try, /*On fail goto*//*Label 1670*/ GIMT_Encode4(89103), // Rule ID 743 //
32448 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFPRegs),
32449 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_set_fpscr),
32450 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
32451 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
32452 // (intrinsic_void 3543:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rt) => (VMSR GPRnopc:{ *:[i32] }:$Rt)
32453 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMSR),
32454 GIR_RootToRootCopy, /*OpIdx*/1, // Rt
32455 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
32456 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
32457 GIR_SetImplicitDefDead, /*InsnID*/0, /*OpIdx for ARM::FPSCR*/0,
32458 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
32459 GIR_RootConstrainSelectedInstOperands,
32460 // GIR_Coverage, 743,
32461 GIR_EraseRootFromParent_Done,
32462 // Label 1670: @89103
32463 GIM_Reject,
32464 // Label 1653: @89104
32465 GIM_Try, /*On fail goto*//*Label 1671*/ GIMT_Encode4(89147), // Rule ID 621 //
32466 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasLOB_HasV8_1MMainline_IsThumb2),
32467 GIM_CheckNumOperands, /*MI*/0, /*Expected*/3,
32468 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::start_loop_iterations),
32469 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
32470 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
32471 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRlrRegClassID),
32472 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
32473 // (intrinsic_w_chain:{ *:[i32] } 333:{ *:[iPTR] }, rGPR:{ *:[i32] }:$tc) => (t2DoLoopStart:{ *:[i32] } rGPR:{ *:[i32] }:$tc)
32474 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2DoLoopStart),
32475 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[X]
32476 GIR_RootToRootCopy, /*OpIdx*/2, // tc
32477 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
32478 GIR_RootConstrainSelectedInstOperands,
32479 // GIR_Coverage, 621,
32480 GIR_EraseRootFromParent_Done,
32481 // Label 1671: @89147
32482 GIM_Try, /*On fail goto*//*Label 1672*/ GIMT_Encode4(91138),
32483 GIM_CheckNumOperands, /*MI*/0, /*Expected*/4,
32484 GIM_Try, /*On fail goto*//*Label 1673*/ GIMT_Encode4(89209), // Rule ID 5168 //
32485 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_base),
32486 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
32487 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
32488 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
32489 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
32490 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
32491 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
32492 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
32493 // MIs[1] Operand 1
32494 // No operand predicates
32495 GIM_CheckIsSafeToFold, /*NumInsns*/1,
32496 // (intrinsic_w_chain:{ *:[v4i32] } 3307:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset) => (MVE_VLDRWU32_qi:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset)
32497 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRWU32_qi),
32498 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
32499 GIR_RootToRootCopy, /*OpIdx*/2, // addr
32500 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // offset
32501 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/2, /*MergeInsnID's*/0, 1,
32502 GIR_RootConstrainSelectedInstOperands,
32503 // GIR_Coverage, 5168,
32504 GIR_EraseRootFromParent_Done,
32505 // Label 1673: @89209
32506 GIM_Try, /*On fail goto*//*Label 1674*/ GIMT_Encode4(89263), // Rule ID 5174 //
32507 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_base),
32508 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
32509 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
32510 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
32511 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
32512 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
32513 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
32514 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
32515 // MIs[1] Operand 1
32516 // No operand predicates
32517 GIM_CheckIsSafeToFold, /*NumInsns*/1,
32518 // (intrinsic_w_chain:{ *:[v4f32] } 3307:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset) => (MVE_VLDRWU32_qi:{ *:[v4f32] } MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset)
32519 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRWU32_qi),
32520 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
32521 GIR_RootToRootCopy, /*OpIdx*/2, // addr
32522 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // offset
32523 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/2, /*MergeInsnID's*/0, 1,
32524 GIR_RootConstrainSelectedInstOperands,
32525 // GIR_Coverage, 5174,
32526 GIR_EraseRootFromParent_Done,
32527 // Label 1674: @89263
32528 GIM_Try, /*On fail goto*//*Label 1675*/ GIMT_Encode4(89317), // Rule ID 5176 //
32529 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_base),
32530 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s64,
32531 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s64,
32532 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
32533 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
32534 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
32535 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
32536 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
32537 // MIs[1] Operand 1
32538 // No operand predicates
32539 GIM_CheckIsSafeToFold, /*NumInsns*/1,
32540 // (intrinsic_w_chain:{ *:[v2i64] } 3307:{ *:[iPTR] }, MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset) => (MVE_VLDRDU64_qi:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset)
32541 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRDU64_qi),
32542 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
32543 GIR_RootToRootCopy, /*OpIdx*/2, // addr
32544 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // offset
32545 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/2, /*MergeInsnID's*/0, 1,
32546 GIR_RootConstrainSelectedInstOperands,
32547 // GIR_Coverage, 5176,
32548 GIR_EraseRootFromParent_Done,
32549 // Label 1675: @89317
32550 GIM_Try, /*On fail goto*//*Label 1676*/ GIMT_Encode4(89371), // Rule ID 5178 //
32551 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_base),
32552 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s64,
32553 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s64,
32554 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
32555 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
32556 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
32557 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
32558 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
32559 // MIs[1] Operand 1
32560 // No operand predicates
32561 GIM_CheckIsSafeToFold, /*NumInsns*/1,
32562 // (intrinsic_w_chain:{ *:[v2f64] } 3307:{ *:[iPTR] }, MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset) => (MVE_VLDRDU64_qi:{ *:[v2f64] } MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset)
32563 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRDU64_qi),
32564 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
32565 GIR_RootToRootCopy, /*OpIdx*/2, // addr
32566 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // offset
32567 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/2, /*MergeInsnID's*/0, 1,
32568 GIR_RootConstrainSelectedInstOperands,
32569 // GIR_Coverage, 5178,
32570 GIR_EraseRootFromParent_Done,
32571 // Label 1676: @89371
32572 GIM_Try, /*On fail goto*//*Label 1677*/ GIMT_Encode4(89413), // Rule ID 1765 //
32573 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_space),
32574 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
32575 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
32576 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
32577 // MIs[0] size
32578 GIM_CheckIsImm, /*MI*/0, /*Op*/2,
32579 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
32580 // (intrinsic_w_chain:{ *:[i32] } 3574:{ *:[iPTR] }, (timm:{ *:[i32] }):$size, GPR:{ *:[i32] }:$Rn) => (SPACE:{ *:[i32] } (timm:{ *:[i32] }):$size, GPR:{ *:[i32] }:$Rn)
32581 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SPACE),
32582 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
32583 GIR_RootToRootCopy, /*OpIdx*/2, // size
32584 GIR_RootToRootCopy, /*OpIdx*/3, // Rn
32585 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
32586 GIR_RootConstrainSelectedInstOperands,
32587 // GIR_Coverage, 1765,
32588 GIR_EraseRootFromParent_Done,
32589 // Label 1677: @89413
32590 GIM_Try, /*On fail goto*//*Label 1678*/ GIMT_Encode4(89467), // Rule ID 5170 //
32591 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_mve_vstr_scatter_base),
32592 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
32593 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
32594 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
32595 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
32596 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
32597 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
32598 // MIs[1] Operand 1
32599 // No operand predicates
32600 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
32601 GIM_CheckIsSafeToFold, /*NumInsns*/1,
32602 // (intrinsic_void 3381:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset, MQPR:{ *:[v4i32] }:$data) => (MVE_VSTRW32_qi MQPR:{ *:[v4i32] }:$data, MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset)
32603 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSTRW32_qi),
32604 GIR_RootToRootCopy, /*OpIdx*/3, // data
32605 GIR_RootToRootCopy, /*OpIdx*/1, // addr
32606 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // offset
32607 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/2, /*MergeInsnID's*/0, 1,
32608 GIR_RootConstrainSelectedInstOperands,
32609 // GIR_Coverage, 5170,
32610 GIR_EraseRootFromParent_Done,
32611 // Label 1678: @89467
32612 GIM_Try, /*On fail goto*//*Label 1679*/ GIMT_Encode4(89521), // Rule ID 5180 //
32613 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_mve_vstr_scatter_base),
32614 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
32615 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
32616 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
32617 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
32618 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
32619 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
32620 // MIs[1] Operand 1
32621 // No operand predicates
32622 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
32623 GIM_CheckIsSafeToFold, /*NumInsns*/1,
32624 // (intrinsic_void 3381:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset, MQPR:{ *:[v4f32] }:$data) => (MVE_VSTRW32_qi MQPR:{ *:[v4f32] }:$data, MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset)
32625 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSTRW32_qi),
32626 GIR_RootToRootCopy, /*OpIdx*/3, // data
32627 GIR_RootToRootCopy, /*OpIdx*/1, // addr
32628 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // offset
32629 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/2, /*MergeInsnID's*/0, 1,
32630 GIR_RootConstrainSelectedInstOperands,
32631 // GIR_Coverage, 5180,
32632 GIR_EraseRootFromParent_Done,
32633 // Label 1679: @89521
32634 GIM_Try, /*On fail goto*//*Label 1680*/ GIMT_Encode4(89575), // Rule ID 5184 //
32635 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_mve_vstr_scatter_base),
32636 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
32637 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
32638 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s64,
32639 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
32640 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
32641 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
32642 // MIs[1] Operand 1
32643 // No operand predicates
32644 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
32645 GIM_CheckIsSafeToFold, /*NumInsns*/1,
32646 // (intrinsic_void 3381:{ *:[iPTR] }, MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset, MQPR:{ *:[v2i64] }:$data) => (MVE_VSTRD64_qi MQPR:{ *:[v2i64] }:$data, MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset)
32647 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSTRD64_qi),
32648 GIR_RootToRootCopy, /*OpIdx*/3, // data
32649 GIR_RootToRootCopy, /*OpIdx*/1, // addr
32650 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // offset
32651 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/2, /*MergeInsnID's*/0, 1,
32652 GIR_RootConstrainSelectedInstOperands,
32653 // GIR_Coverage, 5184,
32654 GIR_EraseRootFromParent_Done,
32655 // Label 1680: @89575
32656 GIM_Try, /*On fail goto*//*Label 1681*/ GIMT_Encode4(89629), // Rule ID 5188 //
32657 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_mve_vstr_scatter_base),
32658 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
32659 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
32660 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s64,
32661 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
32662 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
32663 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
32664 // MIs[1] Operand 1
32665 // No operand predicates
32666 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
32667 GIM_CheckIsSafeToFold, /*NumInsns*/1,
32668 // (intrinsic_void 3381:{ *:[iPTR] }, MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset, MQPR:{ *:[v2f64] }:$data) => (MVE_VSTRD64_qi MQPR:{ *:[v2f64] }:$data, MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset)
32669 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSTRD64_qi),
32670 GIR_RootToRootCopy, /*OpIdx*/3, // data
32671 GIR_RootToRootCopy, /*OpIdx*/1, // addr
32672 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // offset
32673 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/2, /*MergeInsnID's*/0, 1,
32674 GIR_RootConstrainSelectedInstOperands,
32675 // GIR_Coverage, 5188,
32676 GIR_EraseRootFromParent_Done,
32677 // Label 1681: @89629
32678 GIM_Try, /*On fail goto*//*Label 1682*/ GIMT_Encode4(89687), // Rule ID 3 //
32679 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
32680 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_sel),
32681 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
32682 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
32683 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
32684 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
32685 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
32686 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
32687 // (intrinsic_w_chain:{ *:[i32] } 3542:{ *:[iPTR] }, GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) => (SEL:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
32688 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SEL),
32689 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
32690 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
32691 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
32692 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
32693 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
32694 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
32695 GIR_RootConstrainSelectedInstOperands,
32696 // GIR_Coverage, 3,
32697 GIR_EraseRootFromParent_Done,
32698 // Label 1682: @89687
32699 GIM_Try, /*On fail goto*//*Label 1683*/ GIMT_Encode4(89745), // Rule ID 121 //
32700 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
32701 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_sasx),
32702 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
32703 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
32704 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
32705 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
32706 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
32707 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
32708 // (intrinsic_w_chain:{ *:[i32] } 3541:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SASX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
32709 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SASX),
32710 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
32711 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
32712 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
32713 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
32714 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
32715 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
32716 GIR_RootConstrainSelectedInstOperands,
32717 // GIR_Coverage, 121,
32718 GIR_EraseRootFromParent_Done,
32719 // Label 1683: @89745
32720 GIM_Try, /*On fail goto*//*Label 1684*/ GIMT_Encode4(89803), // Rule ID 122 //
32721 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
32722 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_sadd16),
32723 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
32724 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
32725 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
32726 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
32727 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
32728 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
32729 // (intrinsic_w_chain:{ *:[i32] } 3539:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SADD16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
32730 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SADD16),
32731 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
32732 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
32733 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
32734 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
32735 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
32736 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
32737 GIR_RootConstrainSelectedInstOperands,
32738 // GIR_Coverage, 122,
32739 GIR_EraseRootFromParent_Done,
32740 // Label 1684: @89803
32741 GIM_Try, /*On fail goto*//*Label 1685*/ GIMT_Encode4(89861), // Rule ID 123 //
32742 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
32743 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_sadd8),
32744 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
32745 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
32746 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
32747 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
32748 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
32749 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
32750 // (intrinsic_w_chain:{ *:[i32] } 3540:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SADD8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
32751 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SADD8),
32752 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
32753 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
32754 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
32755 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
32756 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
32757 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
32758 GIR_RootConstrainSelectedInstOperands,
32759 // GIR_Coverage, 123,
32760 GIR_EraseRootFromParent_Done,
32761 // Label 1685: @89861
32762 GIM_Try, /*On fail goto*//*Label 1686*/ GIMT_Encode4(89919), // Rule ID 124 //
32763 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
32764 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_ssax),
32765 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
32766 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
32767 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
32768 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
32769 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
32770 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
32771 // (intrinsic_w_chain:{ *:[i32] } 3577:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SSAX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
32772 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SSAX),
32773 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
32774 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
32775 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
32776 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
32777 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
32778 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
32779 GIR_RootConstrainSelectedInstOperands,
32780 // GIR_Coverage, 124,
32781 GIR_EraseRootFromParent_Done,
32782 // Label 1686: @89919
32783 GIM_Try, /*On fail goto*//*Label 1687*/ GIMT_Encode4(89977), // Rule ID 125 //
32784 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
32785 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_ssub16),
32786 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
32787 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
32788 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
32789 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
32790 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
32791 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
32792 // (intrinsic_w_chain:{ *:[i32] } 3578:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SSUB16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
32793 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SSUB16),
32794 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
32795 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
32796 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
32797 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
32798 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
32799 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
32800 GIR_RootConstrainSelectedInstOperands,
32801 // GIR_Coverage, 125,
32802 GIR_EraseRootFromParent_Done,
32803 // Label 1687: @89977
32804 GIM_Try, /*On fail goto*//*Label 1688*/ GIMT_Encode4(90035), // Rule ID 126 //
32805 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
32806 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_ssub8),
32807 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
32808 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
32809 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
32810 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
32811 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
32812 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
32813 // (intrinsic_w_chain:{ *:[i32] } 3579:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SSUB8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
32814 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SSUB8),
32815 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
32816 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
32817 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
32818 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
32819 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
32820 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
32821 GIR_RootConstrainSelectedInstOperands,
32822 // GIR_Coverage, 126,
32823 GIR_EraseRootFromParent_Done,
32824 // Label 1688: @90035
32825 GIM_Try, /*On fail goto*//*Label 1689*/ GIMT_Encode4(90093), // Rule ID 127 //
32826 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
32827 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_uasx),
32828 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
32829 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
32830 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
32831 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
32832 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
32833 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
32834 // (intrinsic_w_chain:{ *:[i32] } 3592:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UASX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
32835 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::UASX),
32836 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
32837 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
32838 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
32839 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
32840 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
32841 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
32842 GIR_RootConstrainSelectedInstOperands,
32843 // GIR_Coverage, 127,
32844 GIR_EraseRootFromParent_Done,
32845 // Label 1689: @90093
32846 GIM_Try, /*On fail goto*//*Label 1690*/ GIMT_Encode4(90151), // Rule ID 128 //
32847 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
32848 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_uadd16),
32849 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
32850 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
32851 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
32852 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
32853 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
32854 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
32855 // (intrinsic_w_chain:{ *:[i32] } 3590:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UADD16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
32856 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::UADD16),
32857 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
32858 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
32859 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
32860 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
32861 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
32862 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
32863 GIR_RootConstrainSelectedInstOperands,
32864 // GIR_Coverage, 128,
32865 GIR_EraseRootFromParent_Done,
32866 // Label 1690: @90151
32867 GIM_Try, /*On fail goto*//*Label 1691*/ GIMT_Encode4(90209), // Rule ID 129 //
32868 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
32869 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_uadd8),
32870 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
32871 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
32872 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
32873 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
32874 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
32875 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
32876 // (intrinsic_w_chain:{ *:[i32] } 3591:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UADD8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
32877 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::UADD8),
32878 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
32879 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
32880 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
32881 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
32882 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
32883 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
32884 GIR_RootConstrainSelectedInstOperands,
32885 // GIR_Coverage, 129,
32886 GIR_EraseRootFromParent_Done,
32887 // Label 1691: @90209
32888 GIM_Try, /*On fail goto*//*Label 1692*/ GIMT_Encode4(90267), // Rule ID 130 //
32889 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
32890 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_usax),
32891 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
32892 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
32893 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
32894 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
32895 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
32896 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
32897 // (intrinsic_w_chain:{ *:[i32] } 3610:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (USAX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
32898 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::USAX),
32899 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
32900 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
32901 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
32902 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
32903 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
32904 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
32905 GIR_RootConstrainSelectedInstOperands,
32906 // GIR_Coverage, 130,
32907 GIR_EraseRootFromParent_Done,
32908 // Label 1692: @90267
32909 GIM_Try, /*On fail goto*//*Label 1693*/ GIMT_Encode4(90325), // Rule ID 131 //
32910 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
32911 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_usub16),
32912 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
32913 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
32914 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
32915 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
32916 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
32917 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
32918 // (intrinsic_w_chain:{ *:[i32] } 3611:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (USUB16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
32919 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::USUB16),
32920 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
32921 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
32922 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
32923 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
32924 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
32925 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
32926 GIR_RootConstrainSelectedInstOperands,
32927 // GIR_Coverage, 131,
32928 GIR_EraseRootFromParent_Done,
32929 // Label 1693: @90325
32930 GIM_Try, /*On fail goto*//*Label 1694*/ GIMT_Encode4(90383), // Rule ID 132 //
32931 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
32932 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_usub8),
32933 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
32934 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
32935 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
32936 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
32937 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
32938 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
32939 // (intrinsic_w_chain:{ *:[i32] } 3612:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (USUB8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
32940 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::USUB8),
32941 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
32942 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
32943 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
32944 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
32945 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
32946 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
32947 GIR_RootConstrainSelectedInstOperands,
32948 // GIR_Coverage, 132,
32949 GIR_EraseRootFromParent_Done,
32950 // Label 1694: @90383
32951 GIM_Try, /*On fail goto*//*Label 1695*/ GIMT_Encode4(90441), // Rule ID 439 //
32952 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
32953 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_sel),
32954 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
32955 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
32956 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
32957 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
32958 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
32959 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
32960 // (intrinsic_w_chain:{ *:[i32] } 3542:{ *:[iPTR] }, GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) => (t2SEL:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
32961 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SEL),
32962 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
32963 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
32964 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
32965 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
32966 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
32967 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
32968 GIR_RootConstrainSelectedInstOperands,
32969 // GIR_Coverage, 439,
32970 GIR_EraseRootFromParent_Done,
32971 // Label 1695: @90441
32972 GIM_Try, /*On fail goto*//*Label 1696*/ GIMT_Encode4(90499), // Rule ID 452 //
32973 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
32974 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_sasx),
32975 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
32976 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
32977 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
32978 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
32979 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
32980 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
32981 // (intrinsic_w_chain:{ *:[i32] } 3541:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SASX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
32982 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SASX),
32983 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
32984 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
32985 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
32986 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
32987 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
32988 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
32989 GIR_RootConstrainSelectedInstOperands,
32990 // GIR_Coverage, 452,
32991 GIR_EraseRootFromParent_Done,
32992 // Label 1696: @90499
32993 GIM_Try, /*On fail goto*//*Label 1697*/ GIMT_Encode4(90557), // Rule ID 453 //
32994 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
32995 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_sadd16),
32996 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
32997 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
32998 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
32999 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
33000 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
33001 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
33002 // (intrinsic_w_chain:{ *:[i32] } 3539:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SADD16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
33003 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SADD16),
33004 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
33005 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
33006 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
33007 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
33008 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
33009 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
33010 GIR_RootConstrainSelectedInstOperands,
33011 // GIR_Coverage, 453,
33012 GIR_EraseRootFromParent_Done,
33013 // Label 1697: @90557
33014 GIM_Try, /*On fail goto*//*Label 1698*/ GIMT_Encode4(90615), // Rule ID 454 //
33015 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
33016 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_sadd8),
33017 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
33018 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
33019 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
33020 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
33021 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
33022 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
33023 // (intrinsic_w_chain:{ *:[i32] } 3540:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SADD8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
33024 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SADD8),
33025 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
33026 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
33027 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
33028 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
33029 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
33030 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
33031 GIR_RootConstrainSelectedInstOperands,
33032 // GIR_Coverage, 454,
33033 GIR_EraseRootFromParent_Done,
33034 // Label 1698: @90615
33035 GIM_Try, /*On fail goto*//*Label 1699*/ GIMT_Encode4(90673), // Rule ID 455 //
33036 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
33037 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_ssax),
33038 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
33039 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
33040 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
33041 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
33042 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
33043 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
33044 // (intrinsic_w_chain:{ *:[i32] } 3577:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SSAX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
33045 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SSAX),
33046 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
33047 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
33048 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
33049 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
33050 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
33051 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
33052 GIR_RootConstrainSelectedInstOperands,
33053 // GIR_Coverage, 455,
33054 GIR_EraseRootFromParent_Done,
33055 // Label 1699: @90673
33056 GIM_Try, /*On fail goto*//*Label 1700*/ GIMT_Encode4(90731), // Rule ID 456 //
33057 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
33058 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_ssub16),
33059 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
33060 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
33061 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
33062 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
33063 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
33064 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
33065 // (intrinsic_w_chain:{ *:[i32] } 3578:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SSUB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
33066 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SSUB16),
33067 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
33068 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
33069 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
33070 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
33071 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
33072 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
33073 GIR_RootConstrainSelectedInstOperands,
33074 // GIR_Coverage, 456,
33075 GIR_EraseRootFromParent_Done,
33076 // Label 1700: @90731
33077 GIM_Try, /*On fail goto*//*Label 1701*/ GIMT_Encode4(90789), // Rule ID 457 //
33078 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
33079 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_ssub8),
33080 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
33081 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
33082 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
33083 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
33084 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
33085 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
33086 // (intrinsic_w_chain:{ *:[i32] } 3579:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SSUB8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
33087 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SSUB8),
33088 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
33089 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
33090 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
33091 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
33092 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
33093 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
33094 GIR_RootConstrainSelectedInstOperands,
33095 // GIR_Coverage, 457,
33096 GIR_EraseRootFromParent_Done,
33097 // Label 1701: @90789
33098 GIM_Try, /*On fail goto*//*Label 1702*/ GIMT_Encode4(90847), // Rule ID 458 //
33099 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
33100 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_uasx),
33101 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
33102 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
33103 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
33104 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
33105 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
33106 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
33107 // (intrinsic_w_chain:{ *:[i32] } 3592:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UASX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
33108 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2UASX),
33109 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
33110 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
33111 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
33112 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
33113 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
33114 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
33115 GIR_RootConstrainSelectedInstOperands,
33116 // GIR_Coverage, 458,
33117 GIR_EraseRootFromParent_Done,
33118 // Label 1702: @90847
33119 GIM_Try, /*On fail goto*//*Label 1703*/ GIMT_Encode4(90905), // Rule ID 459 //
33120 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
33121 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_uadd16),
33122 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
33123 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
33124 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
33125 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
33126 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
33127 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
33128 // (intrinsic_w_chain:{ *:[i32] } 3590:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UADD16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
33129 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2UADD16),
33130 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
33131 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
33132 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
33133 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
33134 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
33135 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
33136 GIR_RootConstrainSelectedInstOperands,
33137 // GIR_Coverage, 459,
33138 GIR_EraseRootFromParent_Done,
33139 // Label 1703: @90905
33140 GIM_Try, /*On fail goto*//*Label 1704*/ GIMT_Encode4(90963), // Rule ID 460 //
33141 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
33142 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_uadd8),
33143 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
33144 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
33145 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
33146 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
33147 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
33148 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
33149 // (intrinsic_w_chain:{ *:[i32] } 3591:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UADD8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
33150 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2UADD8),
33151 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
33152 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
33153 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
33154 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
33155 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
33156 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
33157 GIR_RootConstrainSelectedInstOperands,
33158 // GIR_Coverage, 460,
33159 GIR_EraseRootFromParent_Done,
33160 // Label 1704: @90963
33161 GIM_Try, /*On fail goto*//*Label 1705*/ GIMT_Encode4(91021), // Rule ID 461 //
33162 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
33163 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_usax),
33164 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
33165 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
33166 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
33167 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
33168 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
33169 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
33170 // (intrinsic_w_chain:{ *:[i32] } 3610:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2USAX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
33171 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2USAX),
33172 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
33173 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
33174 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
33175 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
33176 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
33177 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
33178 GIR_RootConstrainSelectedInstOperands,
33179 // GIR_Coverage, 461,
33180 GIR_EraseRootFromParent_Done,
33181 // Label 1705: @91021
33182 GIM_Try, /*On fail goto*//*Label 1706*/ GIMT_Encode4(91079), // Rule ID 462 //
33183 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
33184 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_usub16),
33185 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
33186 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
33187 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
33188 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
33189 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
33190 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
33191 // (intrinsic_w_chain:{ *:[i32] } 3611:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2USUB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
33192 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2USUB16),
33193 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
33194 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
33195 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
33196 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
33197 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
33198 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
33199 GIR_RootConstrainSelectedInstOperands,
33200 // GIR_Coverage, 462,
33201 GIR_EraseRootFromParent_Done,
33202 // Label 1706: @91079
33203 GIM_Try, /*On fail goto*//*Label 1707*/ GIMT_Encode4(91137), // Rule ID 463 //
33204 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
33205 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_usub8),
33206 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
33207 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
33208 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
33209 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
33210 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
33211 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
33212 // (intrinsic_w_chain:{ *:[i32] } 3612:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2USUB8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
33213 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2USUB8),
33214 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
33215 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
33216 GIR_RootToRootCopy, /*OpIdx*/3, // Rm
33217 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
33218 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
33219 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
33220 GIR_RootConstrainSelectedInstOperands,
33221 // GIR_Coverage, 463,
33222 GIR_EraseRootFromParent_Done,
33223 // Label 1707: @91137
33224 GIM_Reject,
33225 // Label 1672: @91138
33226 GIM_Try, /*On fail goto*//*Label 1708*/ GIMT_Encode4(91384),
33227 GIM_CheckNumOperands, /*MI*/0, /*Expected*/5,
33228 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vstr_scatter_base_wb),
33229 GIM_Try, /*On fail goto*//*Label 1709*/ GIMT_Encode4(91209), // Rule ID 5172 //
33230 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
33231 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
33232 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
33233 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v4s32,
33234 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33235 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33236 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
33237 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
33238 // MIs[1] Operand 1
33239 // No operand predicates
33240 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33241 GIM_CheckIsSafeToFold, /*NumInsns*/1,
33242 // (intrinsic_w_chain:{ *:[v4i32] } 3383:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset, MQPR:{ *:[v4i32] }:$data) => (MVE_VSTRW32_qi_pre:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$data, MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset)
33243 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSTRW32_qi_pre),
33244 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[wb]
33245 GIR_RootToRootCopy, /*OpIdx*/4, // data
33246 GIR_RootToRootCopy, /*OpIdx*/2, // addr
33247 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // offset
33248 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/2, /*MergeInsnID's*/0, 1,
33249 GIR_RootConstrainSelectedInstOperands,
33250 // GIR_Coverage, 5172,
33251 GIR_EraseRootFromParent_Done,
33252 // Label 1709: @91209
33253 GIM_Try, /*On fail goto*//*Label 1710*/ GIMT_Encode4(91267), // Rule ID 5182 //
33254 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
33255 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
33256 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
33257 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v4s32,
33258 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33259 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33260 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
33261 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
33262 // MIs[1] Operand 1
33263 // No operand predicates
33264 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33265 GIM_CheckIsSafeToFold, /*NumInsns*/1,
33266 // (intrinsic_w_chain:{ *:[v4i32] } 3383:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset, MQPR:{ *:[v4f32] }:$data) => (MVE_VSTRW32_qi_pre:{ *:[v4i32] } MQPR:{ *:[v4f32] }:$data, MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset)
33267 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSTRW32_qi_pre),
33268 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[wb]
33269 GIR_RootToRootCopy, /*OpIdx*/4, // data
33270 GIR_RootToRootCopy, /*OpIdx*/2, // addr
33271 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // offset
33272 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/2, /*MergeInsnID's*/0, 1,
33273 GIR_RootConstrainSelectedInstOperands,
33274 // GIR_Coverage, 5182,
33275 GIR_EraseRootFromParent_Done,
33276 // Label 1710: @91267
33277 GIM_Try, /*On fail goto*//*Label 1711*/ GIMT_Encode4(91325), // Rule ID 5186 //
33278 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s64,
33279 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s64,
33280 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
33281 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v2s64,
33282 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33283 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33284 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
33285 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
33286 // MIs[1] Operand 1
33287 // No operand predicates
33288 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33289 GIM_CheckIsSafeToFold, /*NumInsns*/1,
33290 // (intrinsic_w_chain:{ *:[v2i64] } 3383:{ *:[iPTR] }, MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset, MQPR:{ *:[v2i64] }:$data) => (MVE_VSTRD64_qi_pre:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$data, MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset)
33291 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSTRD64_qi_pre),
33292 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[wb]
33293 GIR_RootToRootCopy, /*OpIdx*/4, // data
33294 GIR_RootToRootCopy, /*OpIdx*/2, // addr
33295 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // offset
33296 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/2, /*MergeInsnID's*/0, 1,
33297 GIR_RootConstrainSelectedInstOperands,
33298 // GIR_Coverage, 5186,
33299 GIR_EraseRootFromParent_Done,
33300 // Label 1711: @91325
33301 GIM_Try, /*On fail goto*//*Label 1712*/ GIMT_Encode4(91383), // Rule ID 5190 //
33302 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s64,
33303 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s64,
33304 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
33305 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_v2s64,
33306 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33307 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33308 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
33309 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
33310 // MIs[1] Operand 1
33311 // No operand predicates
33312 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33313 GIM_CheckIsSafeToFold, /*NumInsns*/1,
33314 // (intrinsic_w_chain:{ *:[v2i64] } 3383:{ *:[iPTR] }, MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset, MQPR:{ *:[v2f64] }:$data) => (MVE_VSTRD64_qi_pre:{ *:[v2i64] } MQPR:{ *:[v2f64] }:$data, MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset)
33315 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSTRD64_qi_pre),
33316 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[wb]
33317 GIR_RootToRootCopy, /*OpIdx*/4, // data
33318 GIR_RootToRootCopy, /*OpIdx*/2, // addr
33319 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // offset
33320 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/2, /*MergeInsnID's*/0, 1,
33321 GIR_RootConstrainSelectedInstOperands,
33322 // GIR_Coverage, 5190,
33323 GIR_EraseRootFromParent_Done,
33324 // Label 1712: @91383
33325 GIM_Reject,
33326 // Label 1708: @91384
33327 GIM_Try, /*On fail goto*//*Label 1713*/ GIMT_Encode4(92555),
33328 GIM_CheckNumOperands, /*MI*/0, /*Expected*/6,
33329 GIM_Try, /*On fail goto*//*Label 1714*/ GIMT_Encode4(91453), // Rule ID 5060 //
33330 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_mve_vstr_scatter_offset),
33331 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
33332 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
33333 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
33334 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
33335 // MIs[0] base
33336 GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
33337 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
33338 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33339 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33340 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 16,
33341 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
33342 // (intrinsic_void 3385:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, MQPR:{ *:[v8i16] }:$data, 16:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSTRH16_rq_u MQPR:{ *:[v8i16] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
33343 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSTRH16_rq_u),
33344 GIR_RootToRootCopy, /*OpIdx*/3, // data
33345 GIR_RootToRootCopy, /*OpIdx*/1, // base
33346 GIR_RootToRootCopy, /*OpIdx*/2, // offsets
33347 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
33348 GIR_RootConstrainSelectedInstOperands,
33349 // GIR_Coverage, 5060,
33350 GIR_EraseRootFromParent_Done,
33351 // Label 1714: @91453
33352 GIM_Try, /*On fail goto*//*Label 1715*/ GIMT_Encode4(91514), // Rule ID 5061 //
33353 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_mve_vstr_scatter_offset),
33354 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
33355 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
33356 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
33357 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
33358 // MIs[0] base
33359 GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
33360 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
33361 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33362 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33363 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 16,
33364 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
33365 // (intrinsic_void 3385:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, MQPR:{ *:[v8i16] }:$data, 16:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VSTRH16_rq MQPR:{ *:[v8i16] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
33366 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSTRH16_rq),
33367 GIR_RootToRootCopy, /*OpIdx*/3, // data
33368 GIR_RootToRootCopy, /*OpIdx*/1, // base
33369 GIR_RootToRootCopy, /*OpIdx*/2, // offsets
33370 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
33371 GIR_RootConstrainSelectedInstOperands,
33372 // GIR_Coverage, 5061,
33373 GIR_EraseRootFromParent_Done,
33374 // Label 1715: @91514
33375 GIM_Try, /*On fail goto*//*Label 1716*/ GIMT_Encode4(91575), // Rule ID 5064 //
33376 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_mve_vstr_scatter_offset),
33377 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
33378 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
33379 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
33380 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
33381 // MIs[0] base
33382 GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
33383 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
33384 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33385 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33386 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 8,
33387 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
33388 // (intrinsic_void 3385:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v16i8] }:$offsets, MQPR:{ *:[v16i8] }:$data, 8:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSTRB8_rq MQPR:{ *:[v16i8] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v16i8] }:$offsets)
33389 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSTRB8_rq),
33390 GIR_RootToRootCopy, /*OpIdx*/3, // data
33391 GIR_RootToRootCopy, /*OpIdx*/1, // base
33392 GIR_RootToRootCopy, /*OpIdx*/2, // offsets
33393 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
33394 GIR_RootConstrainSelectedInstOperands,
33395 // GIR_Coverage, 5064,
33396 GIR_EraseRootFromParent_Done,
33397 // Label 1716: @91575
33398 GIM_Try, /*On fail goto*//*Label 1717*/ GIMT_Encode4(91636), // Rule ID 5144 //
33399 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_mve_vstr_scatter_offset),
33400 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
33401 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
33402 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
33403 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
33404 // MIs[0] base
33405 GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
33406 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
33407 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33408 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33409 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 8,
33410 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
33411 // (intrinsic_void 3385:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, MQPR:{ *:[v8i16] }:$data, 8:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSTRB16_rq MQPR:{ *:[v8i16] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
33412 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSTRB16_rq),
33413 GIR_RootToRootCopy, /*OpIdx*/3, // data
33414 GIR_RootToRootCopy, /*OpIdx*/1, // base
33415 GIR_RootToRootCopy, /*OpIdx*/2, // offsets
33416 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
33417 GIR_RootConstrainSelectedInstOperands,
33418 // GIR_Coverage, 5144,
33419 GIR_EraseRootFromParent_Done,
33420 // Label 1717: @91636
33421 GIM_Try, /*On fail goto*//*Label 1718*/ GIMT_Encode4(91697), // Rule ID 5146 //
33422 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_mve_vstr_scatter_offset),
33423 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
33424 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
33425 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
33426 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
33427 // MIs[0] base
33428 GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
33429 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
33430 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33431 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33432 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 8,
33433 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
33434 // (intrinsic_void 3385:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, MQPR:{ *:[v4i32] }:$data, 8:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSTRB32_rq MQPR:{ *:[v4i32] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
33435 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSTRB32_rq),
33436 GIR_RootToRootCopy, /*OpIdx*/3, // data
33437 GIR_RootToRootCopy, /*OpIdx*/1, // base
33438 GIR_RootToRootCopy, /*OpIdx*/2, // offsets
33439 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
33440 GIR_RootConstrainSelectedInstOperands,
33441 // GIR_Coverage, 5146,
33442 GIR_EraseRootFromParent_Done,
33443 // Label 1718: @91697
33444 GIM_Try, /*On fail goto*//*Label 1719*/ GIMT_Encode4(91758), // Rule ID 5148 //
33445 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_mve_vstr_scatter_offset),
33446 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
33447 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
33448 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
33449 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
33450 // MIs[0] base
33451 GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
33452 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
33453 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33454 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33455 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 16,
33456 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
33457 // (intrinsic_void 3385:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, MQPR:{ *:[v8f16] }:$data, 16:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSTRH16_rq_u MQPR:{ *:[v8f16] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
33458 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSTRH16_rq_u),
33459 GIR_RootToRootCopy, /*OpIdx*/3, // data
33460 GIR_RootToRootCopy, /*OpIdx*/1, // base
33461 GIR_RootToRootCopy, /*OpIdx*/2, // offsets
33462 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
33463 GIR_RootConstrainSelectedInstOperands,
33464 // GIR_Coverage, 5148,
33465 GIR_EraseRootFromParent_Done,
33466 // Label 1719: @91758
33467 GIM_Try, /*On fail goto*//*Label 1720*/ GIMT_Encode4(91819), // Rule ID 5149 //
33468 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_mve_vstr_scatter_offset),
33469 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
33470 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
33471 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
33472 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
33473 // MIs[0] base
33474 GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
33475 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
33476 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33477 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33478 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 16,
33479 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
33480 // (intrinsic_void 3385:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, MQPR:{ *:[v8f16] }:$data, 16:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VSTRH16_rq MQPR:{ *:[v8f16] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
33481 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSTRH16_rq),
33482 GIR_RootToRootCopy, /*OpIdx*/3, // data
33483 GIR_RootToRootCopy, /*OpIdx*/1, // base
33484 GIR_RootToRootCopy, /*OpIdx*/2, // offsets
33485 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
33486 GIR_RootConstrainSelectedInstOperands,
33487 // GIR_Coverage, 5149,
33488 GIR_EraseRootFromParent_Done,
33489 // Label 1720: @91819
33490 GIM_Try, /*On fail goto*//*Label 1721*/ GIMT_Encode4(91880), // Rule ID 5152 //
33491 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_mve_vstr_scatter_offset),
33492 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
33493 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
33494 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
33495 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
33496 // MIs[0] base
33497 GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
33498 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
33499 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33500 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33501 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 16,
33502 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
33503 // (intrinsic_void 3385:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, MQPR:{ *:[v4i32] }:$data, 16:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSTRH32_rq_u MQPR:{ *:[v4i32] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
33504 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSTRH32_rq_u),
33505 GIR_RootToRootCopy, /*OpIdx*/3, // data
33506 GIR_RootToRootCopy, /*OpIdx*/1, // base
33507 GIR_RootToRootCopy, /*OpIdx*/2, // offsets
33508 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
33509 GIR_RootConstrainSelectedInstOperands,
33510 // GIR_Coverage, 5152,
33511 GIR_EraseRootFromParent_Done,
33512 // Label 1721: @91880
33513 GIM_Try, /*On fail goto*//*Label 1722*/ GIMT_Encode4(91941), // Rule ID 5153 //
33514 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_mve_vstr_scatter_offset),
33515 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
33516 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
33517 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
33518 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
33519 // MIs[0] base
33520 GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
33521 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
33522 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33523 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33524 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 16,
33525 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
33526 // (intrinsic_void 3385:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, MQPR:{ *:[v4i32] }:$data, 16:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VSTRH32_rq MQPR:{ *:[v4i32] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
33527 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSTRH32_rq),
33528 GIR_RootToRootCopy, /*OpIdx*/3, // data
33529 GIR_RootToRootCopy, /*OpIdx*/1, // base
33530 GIR_RootToRootCopy, /*OpIdx*/2, // offsets
33531 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
33532 GIR_RootConstrainSelectedInstOperands,
33533 // GIR_Coverage, 5153,
33534 GIR_EraseRootFromParent_Done,
33535 // Label 1722: @91941
33536 GIM_Try, /*On fail goto*//*Label 1723*/ GIMT_Encode4(92002), // Rule ID 5156 //
33537 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_mve_vstr_scatter_offset),
33538 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
33539 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
33540 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
33541 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
33542 // MIs[0] base
33543 GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
33544 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
33545 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33546 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33547 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 32,
33548 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
33549 // (intrinsic_void 3385:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, MQPR:{ *:[v4i32] }:$data, 32:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSTRW32_rq_u MQPR:{ *:[v4i32] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
33550 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSTRW32_rq_u),
33551 GIR_RootToRootCopy, /*OpIdx*/3, // data
33552 GIR_RootToRootCopy, /*OpIdx*/1, // base
33553 GIR_RootToRootCopy, /*OpIdx*/2, // offsets
33554 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
33555 GIR_RootConstrainSelectedInstOperands,
33556 // GIR_Coverage, 5156,
33557 GIR_EraseRootFromParent_Done,
33558 // Label 1723: @92002
33559 GIM_Try, /*On fail goto*//*Label 1724*/ GIMT_Encode4(92063), // Rule ID 5157 //
33560 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_mve_vstr_scatter_offset),
33561 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
33562 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
33563 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
33564 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
33565 // MIs[0] base
33566 GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
33567 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
33568 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33569 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33570 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 32,
33571 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 2,
33572 // (intrinsic_void 3385:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, MQPR:{ *:[v4i32] }:$data, 32:{ *:[i32] }, 2:{ *:[i32] }) => (MVE_VSTRW32_rq MQPR:{ *:[v4i32] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
33573 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSTRW32_rq),
33574 GIR_RootToRootCopy, /*OpIdx*/3, // data
33575 GIR_RootToRootCopy, /*OpIdx*/1, // base
33576 GIR_RootToRootCopy, /*OpIdx*/2, // offsets
33577 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
33578 GIR_RootConstrainSelectedInstOperands,
33579 // GIR_Coverage, 5157,
33580 GIR_EraseRootFromParent_Done,
33581 // Label 1724: @92063
33582 GIM_Try, /*On fail goto*//*Label 1725*/ GIMT_Encode4(92124), // Rule ID 5160 //
33583 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_mve_vstr_scatter_offset),
33584 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
33585 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
33586 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
33587 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
33588 // MIs[0] base
33589 GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
33590 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
33591 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33592 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33593 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 32,
33594 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
33595 // (intrinsic_void 3385:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, MQPR:{ *:[v4f32] }:$data, 32:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSTRW32_rq_u MQPR:{ *:[v4f32] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
33596 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSTRW32_rq_u),
33597 GIR_RootToRootCopy, /*OpIdx*/3, // data
33598 GIR_RootToRootCopy, /*OpIdx*/1, // base
33599 GIR_RootToRootCopy, /*OpIdx*/2, // offsets
33600 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
33601 GIR_RootConstrainSelectedInstOperands,
33602 // GIR_Coverage, 5160,
33603 GIR_EraseRootFromParent_Done,
33604 // Label 1725: @92124
33605 GIM_Try, /*On fail goto*//*Label 1726*/ GIMT_Encode4(92185), // Rule ID 5161 //
33606 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_mve_vstr_scatter_offset),
33607 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
33608 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
33609 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
33610 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
33611 // MIs[0] base
33612 GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
33613 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
33614 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33615 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33616 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 32,
33617 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 2,
33618 // (intrinsic_void 3385:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, MQPR:{ *:[v4f32] }:$data, 32:{ *:[i32] }, 2:{ *:[i32] }) => (MVE_VSTRW32_rq MQPR:{ *:[v4f32] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
33619 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSTRW32_rq),
33620 GIR_RootToRootCopy, /*OpIdx*/3, // data
33621 GIR_RootToRootCopy, /*OpIdx*/1, // base
33622 GIR_RootToRootCopy, /*OpIdx*/2, // offsets
33623 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
33624 GIR_RootConstrainSelectedInstOperands,
33625 // GIR_Coverage, 5161,
33626 GIR_EraseRootFromParent_Done,
33627 // Label 1726: @92185
33628 GIM_Try, /*On fail goto*//*Label 1727*/ GIMT_Encode4(92246), // Rule ID 5164 //
33629 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_mve_vstr_scatter_offset),
33630 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s64,
33631 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s64,
33632 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
33633 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
33634 // MIs[0] base
33635 GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
33636 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
33637 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33638 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33639 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 64,
33640 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
33641 // (intrinsic_void 3385:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets, MQPR:{ *:[v2i64] }:$data, 64:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSTRD64_rq_u MQPR:{ *:[v2i64] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets)
33642 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSTRD64_rq_u),
33643 GIR_RootToRootCopy, /*OpIdx*/3, // data
33644 GIR_RootToRootCopy, /*OpIdx*/1, // base
33645 GIR_RootToRootCopy, /*OpIdx*/2, // offsets
33646 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
33647 GIR_RootConstrainSelectedInstOperands,
33648 // GIR_Coverage, 5164,
33649 GIR_EraseRootFromParent_Done,
33650 // Label 1727: @92246
33651 GIM_Try, /*On fail goto*//*Label 1728*/ GIMT_Encode4(92307), // Rule ID 5165 //
33652 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_mve_vstr_scatter_offset),
33653 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s64,
33654 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s64,
33655 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
33656 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
33657 // MIs[0] base
33658 GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
33659 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
33660 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33661 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33662 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 64,
33663 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 3,
33664 // (intrinsic_void 3385:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets, MQPR:{ *:[v2i64] }:$data, 64:{ *:[i32] }, 3:{ *:[i32] }) => (MVE_VSTRD64_rq MQPR:{ *:[v2i64] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets)
33665 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSTRD64_rq),
33666 GIR_RootToRootCopy, /*OpIdx*/3, // data
33667 GIR_RootToRootCopy, /*OpIdx*/1, // base
33668 GIR_RootToRootCopy, /*OpIdx*/2, // offsets
33669 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
33670 GIR_RootConstrainSelectedInstOperands,
33671 // GIR_Coverage, 5165,
33672 GIR_EraseRootFromParent_Done,
33673 // Label 1728: @92307
33674 GIM_Try, /*On fail goto*//*Label 1729*/ GIMT_Encode4(92371), // Rule ID 265 //
33675 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
33676 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_mcrr),
33677 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
33678 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
33679 // MIs[0] cop
33680 GIM_CheckIsImm, /*MI*/0, /*Op*/1,
33681 // MIs[0] opc1
33682 GIM_CheckIsImm, /*MI*/0, /*Op*/2,
33683 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
33684 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
33685 // MIs[0] CRm
33686 GIM_CheckIsImm, /*MI*/0, /*Op*/5,
33687 // (intrinsic_void 3188:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPRnopc:{ *:[i32] }:$Rt, GPRnopc:{ *:[i32] }:$Rt2, (timm:{ *:[i32] }):$CRm) => (MCRR (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPRnopc:{ *:[i32] }:$Rt, GPRnopc:{ *:[i32] }:$Rt2, (timm:{ *:[i32] }):$CRm)
33688 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MCRR),
33689 GIR_RootToRootCopy, /*OpIdx*/1, // cop
33690 GIR_RootToRootCopy, /*OpIdx*/2, // opc1
33691 GIR_RootToRootCopy, /*OpIdx*/3, // Rt
33692 GIR_RootToRootCopy, /*OpIdx*/4, // Rt2
33693 GIR_RootToRootCopy, /*OpIdx*/5, // CRm
33694 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
33695 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
33696 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
33697 GIR_RootConstrainSelectedInstOperands,
33698 // GIR_Coverage, 265,
33699 GIR_EraseRootFromParent_Done,
33700 // Label 1729: @92371
33701 GIM_Try, /*On fail goto*//*Label 1730*/ GIMT_Encode4(92426), // Rule ID 266 //
33702 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM_PreV8),
33703 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_mcrr2),
33704 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
33705 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
33706 // MIs[0] cop
33707 GIM_CheckIsImm, /*MI*/0, /*Op*/1,
33708 // MIs[0] opc1
33709 GIM_CheckIsImm, /*MI*/0, /*Op*/2,
33710 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
33711 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
33712 // MIs[0] CRm
33713 GIM_CheckIsImm, /*MI*/0, /*Op*/5,
33714 // (intrinsic_void 3189:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPRnopc:{ *:[i32] }:$Rt, GPRnopc:{ *:[i32] }:$Rt2, (timm:{ *:[i32] }):$CRm) => (MCRR2 (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPRnopc:{ *:[i32] }:$Rt, GPRnopc:{ *:[i32] }:$Rt2, (timm:{ *:[i32] }):$CRm)
33715 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MCRR2),
33716 GIR_RootToRootCopy, /*OpIdx*/1, // cop
33717 GIR_RootToRootCopy, /*OpIdx*/2, // opc1
33718 GIR_RootToRootCopy, /*OpIdx*/3, // Rt
33719 GIR_RootToRootCopy, /*OpIdx*/4, // Rt2
33720 GIR_RootToRootCopy, /*OpIdx*/5, // CRm
33721 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
33722 GIR_RootConstrainSelectedInstOperands,
33723 // GIR_Coverage, 266,
33724 GIR_EraseRootFromParent_Done,
33725 // Label 1730: @92426
33726 GIM_Try, /*On fail goto*//*Label 1731*/ GIMT_Encode4(92490), // Rule ID 613 //
33727 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
33728 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_mcrr),
33729 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
33730 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
33731 // MIs[0] cop
33732 GIM_CheckIsImm, /*MI*/0, /*Op*/1,
33733 // MIs[0] opc1
33734 GIM_CheckIsImm, /*MI*/0, /*Op*/2,
33735 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
33736 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
33737 // MIs[0] CRm
33738 GIM_CheckIsImm, /*MI*/0, /*Op*/5,
33739 // (intrinsic_void 3188:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, GPR:{ *:[i32] }:$Rt2, (timm:{ *:[i32] }):$CRm) => (t2MCRR (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, GPR:{ *:[i32] }:$Rt2, (timm:{ *:[i32] }):$CRm)
33740 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2MCRR),
33741 GIR_RootToRootCopy, /*OpIdx*/1, // cop
33742 GIR_RootToRootCopy, /*OpIdx*/2, // opc1
33743 GIR_RootToRootCopy, /*OpIdx*/3, // Rt
33744 GIR_RootToRootCopy, /*OpIdx*/4, // Rt2
33745 GIR_RootToRootCopy, /*OpIdx*/5, // CRm
33746 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
33747 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
33748 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
33749 GIR_RootConstrainSelectedInstOperands,
33750 // GIR_Coverage, 613,
33751 GIR_EraseRootFromParent_Done,
33752 // Label 1731: @92490
33753 GIM_Try, /*On fail goto*//*Label 1732*/ GIMT_Encode4(92554), // Rule ID 614 //
33754 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2_PreV8),
33755 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_mcrr2),
33756 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
33757 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
33758 // MIs[0] cop
33759 GIM_CheckIsImm, /*MI*/0, /*Op*/1,
33760 // MIs[0] opc1
33761 GIM_CheckIsImm, /*MI*/0, /*Op*/2,
33762 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
33763 GIM_RootCheckRegBankForClass, /*Op*/4, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
33764 // MIs[0] CRm
33765 GIM_CheckIsImm, /*MI*/0, /*Op*/5,
33766 // (intrinsic_void 3189:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, GPR:{ *:[i32] }:$Rt2, (timm:{ *:[i32] }):$CRm) => (t2MCRR2 (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, GPR:{ *:[i32] }:$Rt2, (timm:{ *:[i32] }):$CRm)
33767 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2MCRR2),
33768 GIR_RootToRootCopy, /*OpIdx*/1, // cop
33769 GIR_RootToRootCopy, /*OpIdx*/2, // opc1
33770 GIR_RootToRootCopy, /*OpIdx*/3, // Rt
33771 GIR_RootToRootCopy, /*OpIdx*/4, // Rt2
33772 GIR_RootToRootCopy, /*OpIdx*/5, // CRm
33773 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
33774 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
33775 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
33776 GIR_RootConstrainSelectedInstOperands,
33777 // GIR_Coverage, 614,
33778 GIR_EraseRootFromParent_Done,
33779 // Label 1732: @92554
33780 GIM_Reject,
33781 // Label 1713: @92555
33782 GIM_Try, /*On fail goto*//*Label 1733*/ GIMT_Encode4(95906),
33783 GIM_CheckNumOperands, /*MI*/0, /*Expected*/7,
33784 GIM_Try, /*On fail goto*//*Label 1734*/ GIMT_Encode4(92624), // Rule ID 253 //
33785 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM_PreV8),
33786 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_cdp),
33787 // MIs[0] cop
33788 GIM_CheckIsImm, /*MI*/0, /*Op*/1,
33789 // MIs[0] opc1
33790 GIM_CheckIsImm, /*MI*/0, /*Op*/2,
33791 // MIs[0] CRd
33792 GIM_CheckIsImm, /*MI*/0, /*Op*/3,
33793 // MIs[0] CRn
33794 GIM_CheckIsImm, /*MI*/0, /*Op*/4,
33795 // MIs[0] CRm
33796 GIM_CheckIsImm, /*MI*/0, /*Op*/5,
33797 // MIs[0] opc2
33798 GIM_CheckIsImm, /*MI*/0, /*Op*/6,
33799 // (intrinsic_void 3156:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, (timm:{ *:[i32] }):$CRd, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2) => (CDP (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, (timm:{ *:[i32] }):$CRd, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2)
33800 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::CDP),
33801 GIR_RootToRootCopy, /*OpIdx*/1, // cop
33802 GIR_RootToRootCopy, /*OpIdx*/2, // opc1
33803 GIR_RootToRootCopy, /*OpIdx*/3, // CRd
33804 GIR_RootToRootCopy, /*OpIdx*/4, // CRn
33805 GIR_RootToRootCopy, /*OpIdx*/5, // CRm
33806 GIR_RootToRootCopy, /*OpIdx*/6, // opc2
33807 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
33808 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
33809 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
33810 GIR_RootConstrainSelectedInstOperands,
33811 // GIR_Coverage, 253,
33812 GIR_EraseRootFromParent_Done,
33813 // Label 1734: @92624
33814 GIM_Try, /*On fail goto*//*Label 1735*/ GIMT_Encode4(92676), // Rule ID 254 //
33815 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM_PreV8),
33816 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_cdp2),
33817 // MIs[0] cop
33818 GIM_CheckIsImm, /*MI*/0, /*Op*/1,
33819 // MIs[0] opc1
33820 GIM_CheckIsImm, /*MI*/0, /*Op*/2,
33821 // MIs[0] CRd
33822 GIM_CheckIsImm, /*MI*/0, /*Op*/3,
33823 // MIs[0] CRn
33824 GIM_CheckIsImm, /*MI*/0, /*Op*/4,
33825 // MIs[0] CRm
33826 GIM_CheckIsImm, /*MI*/0, /*Op*/5,
33827 // MIs[0] opc2
33828 GIM_CheckIsImm, /*MI*/0, /*Op*/6,
33829 // (intrinsic_void 3157:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, (timm:{ *:[i32] }):$CRd, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2) => (CDP2 (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, (timm:{ *:[i32] }):$CRd, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2)
33830 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::CDP2),
33831 GIR_RootToRootCopy, /*OpIdx*/1, // cop
33832 GIR_RootToRootCopy, /*OpIdx*/2, // opc1
33833 GIR_RootToRootCopy, /*OpIdx*/3, // CRd
33834 GIR_RootToRootCopy, /*OpIdx*/4, // CRn
33835 GIR_RootToRootCopy, /*OpIdx*/5, // CRm
33836 GIR_RootToRootCopy, /*OpIdx*/6, // opc2
33837 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
33838 GIR_RootConstrainSelectedInstOperands,
33839 // GIR_Coverage, 254,
33840 GIR_EraseRootFromParent_Done,
33841 // Label 1735: @92676
33842 GIM_Try, /*On fail goto*//*Label 1736*/ GIMT_Encode4(92737), // Rule ID 615 //
33843 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2_PreV8),
33844 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_cdp),
33845 // MIs[0] cop
33846 GIM_CheckIsImm, /*MI*/0, /*Op*/1,
33847 // MIs[0] opc1
33848 GIM_CheckIsImm, /*MI*/0, /*Op*/2,
33849 // MIs[0] CRd
33850 GIM_CheckIsImm, /*MI*/0, /*Op*/3,
33851 // MIs[0] CRn
33852 GIM_CheckIsImm, /*MI*/0, /*Op*/4,
33853 // MIs[0] CRm
33854 GIM_CheckIsImm, /*MI*/0, /*Op*/5,
33855 // MIs[0] opc2
33856 GIM_CheckIsImm, /*MI*/0, /*Op*/6,
33857 // (intrinsic_void 3156:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, (timm:{ *:[i32] }):$CRd, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2) => (t2CDP (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, (timm:{ *:[i32] }):$CRd, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2)
33858 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2CDP),
33859 GIR_RootToRootCopy, /*OpIdx*/1, // cop
33860 GIR_RootToRootCopy, /*OpIdx*/2, // opc1
33861 GIR_RootToRootCopy, /*OpIdx*/3, // CRd
33862 GIR_RootToRootCopy, /*OpIdx*/4, // CRn
33863 GIR_RootToRootCopy, /*OpIdx*/5, // CRm
33864 GIR_RootToRootCopy, /*OpIdx*/6, // opc2
33865 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
33866 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
33867 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
33868 GIR_RootConstrainSelectedInstOperands,
33869 // GIR_Coverage, 615,
33870 GIR_EraseRootFromParent_Done,
33871 // Label 1736: @92737
33872 GIM_Try, /*On fail goto*//*Label 1737*/ GIMT_Encode4(92798), // Rule ID 616 //
33873 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2_PreV8),
33874 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_cdp2),
33875 // MIs[0] cop
33876 GIM_CheckIsImm, /*MI*/0, /*Op*/1,
33877 // MIs[0] opc1
33878 GIM_CheckIsImm, /*MI*/0, /*Op*/2,
33879 // MIs[0] CRd
33880 GIM_CheckIsImm, /*MI*/0, /*Op*/3,
33881 // MIs[0] CRn
33882 GIM_CheckIsImm, /*MI*/0, /*Op*/4,
33883 // MIs[0] CRm
33884 GIM_CheckIsImm, /*MI*/0, /*Op*/5,
33885 // MIs[0] opc2
33886 GIM_CheckIsImm, /*MI*/0, /*Op*/6,
33887 // (intrinsic_void 3157:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, (timm:{ *:[i32] }):$CRd, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2) => (t2CDP2 (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, (timm:{ *:[i32] }):$CRd, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2)
33888 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2CDP2),
33889 GIR_RootToRootCopy, /*OpIdx*/1, // cop
33890 GIR_RootToRootCopy, /*OpIdx*/2, // opc1
33891 GIR_RootToRootCopy, /*OpIdx*/3, // CRd
33892 GIR_RootToRootCopy, /*OpIdx*/4, // CRn
33893 GIR_RootToRootCopy, /*OpIdx*/5, // CRm
33894 GIR_RootToRootCopy, /*OpIdx*/6, // opc2
33895 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
33896 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
33897 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
33898 GIR_RootConstrainSelectedInstOperands,
33899 // GIR_Coverage, 616,
33900 GIR_EraseRootFromParent_Done,
33901 // Label 1737: @92798
33902 GIM_Try, /*On fail goto*//*Label 1738*/ GIMT_Encode4(92866), // Rule ID 5054 //
33903 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_offset),
33904 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
33905 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
33906 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
33907 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
33908 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
33909 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33910 // MIs[0] base
33911 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
33912 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
33913 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33914 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 16,
33915 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
33916 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
33917 // (intrinsic_w_chain:{ *:[v8i16] } 3311:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 16:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VLDRHU16_rq_u:{ *:[v8i16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
33918 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRHU16_rq_u),
33919 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
33920 GIR_RootToRootCopy, /*OpIdx*/2, // base
33921 GIR_RootToRootCopy, /*OpIdx*/3, // offsets
33922 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
33923 GIR_RootConstrainSelectedInstOperands,
33924 // GIR_Coverage, 5054,
33925 GIR_EraseRootFromParent_Done,
33926 // Label 1738: @92866
33927 GIM_Try, /*On fail goto*//*Label 1739*/ GIMT_Encode4(92934), // Rule ID 5055 //
33928 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_offset),
33929 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
33930 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
33931 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
33932 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
33933 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
33934 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33935 // MIs[0] base
33936 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
33937 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
33938 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33939 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 16,
33940 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
33941 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
33942 // (intrinsic_w_chain:{ *:[v8i16] } 3311:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 16:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VLDRHU16_rq:{ *:[v8i16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
33943 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRHU16_rq),
33944 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
33945 GIR_RootToRootCopy, /*OpIdx*/2, // base
33946 GIR_RootToRootCopy, /*OpIdx*/3, // offsets
33947 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
33948 GIR_RootConstrainSelectedInstOperands,
33949 // GIR_Coverage, 5055,
33950 GIR_EraseRootFromParent_Done,
33951 // Label 1739: @92934
33952 GIM_Try, /*On fail goto*//*Label 1740*/ GIMT_Encode4(93002), // Rule ID 5058 //
33953 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_offset),
33954 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
33955 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
33956 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
33957 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
33958 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
33959 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33960 // MIs[0] base
33961 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
33962 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
33963 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33964 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 8,
33965 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
33966 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
33967 // (intrinsic_w_chain:{ *:[v16i8] } 3311:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v16i8] }:$offsets, 8:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VLDRBU8_rq:{ *:[v16i8] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v16i8] }:$offsets)
33968 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRBU8_rq),
33969 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
33970 GIR_RootToRootCopy, /*OpIdx*/2, // base
33971 GIR_RootToRootCopy, /*OpIdx*/3, // offsets
33972 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
33973 GIR_RootConstrainSelectedInstOperands,
33974 // GIR_Coverage, 5058,
33975 GIR_EraseRootFromParent_Done,
33976 // Label 1740: @93002
33977 GIM_Try, /*On fail goto*//*Label 1741*/ GIMT_Encode4(93070), // Rule ID 5066 //
33978 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_offset),
33979 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v16s8,
33980 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v16s8,
33981 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
33982 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
33983 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
33984 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33985 // MIs[0] base
33986 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
33987 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
33988 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
33989 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 8,
33990 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
33991 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
33992 // (intrinsic_w_chain:{ *:[v16i8] } 3311:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v16i8] }:$offsets, 8:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VLDRBU8_rq:{ *:[v16i8] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v16i8] }:$offsets)
33993 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRBU8_rq),
33994 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
33995 GIR_RootToRootCopy, /*OpIdx*/2, // base
33996 GIR_RootToRootCopy, /*OpIdx*/3, // offsets
33997 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
33998 GIR_RootConstrainSelectedInstOperands,
33999 // GIR_Coverage, 5066,
34000 GIR_EraseRootFromParent_Done,
34001 // Label 1741: @93070
34002 GIM_Try, /*On fail goto*//*Label 1742*/ GIMT_Encode4(93138), // Rule ID 5068 //
34003 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_offset),
34004 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
34005 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
34006 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
34007 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
34008 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
34009 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34010 // MIs[0] base
34011 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
34012 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
34013 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34014 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 8,
34015 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
34016 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
34017 // (intrinsic_w_chain:{ *:[v8i16] } 3311:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 8:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VLDRBU16_rq:{ *:[v8i16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
34018 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRBU16_rq),
34019 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
34020 GIR_RootToRootCopy, /*OpIdx*/2, // base
34021 GIR_RootToRootCopy, /*OpIdx*/3, // offsets
34022 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
34023 GIR_RootConstrainSelectedInstOperands,
34024 // GIR_Coverage, 5068,
34025 GIR_EraseRootFromParent_Done,
34026 // Label 1742: @93138
34027 GIM_Try, /*On fail goto*//*Label 1743*/ GIMT_Encode4(93206), // Rule ID 5070 //
34028 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_offset),
34029 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
34030 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
34031 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
34032 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
34033 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
34034 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34035 // MIs[0] base
34036 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
34037 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
34038 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34039 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 8,
34040 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
34041 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
34042 // (intrinsic_w_chain:{ *:[v8i16] } 3311:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 8:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VLDRBS16_rq:{ *:[v8i16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
34043 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRBS16_rq),
34044 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
34045 GIR_RootToRootCopy, /*OpIdx*/2, // base
34046 GIR_RootToRootCopy, /*OpIdx*/3, // offsets
34047 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
34048 GIR_RootConstrainSelectedInstOperands,
34049 // GIR_Coverage, 5070,
34050 GIR_EraseRootFromParent_Done,
34051 // Label 1743: @93206
34052 GIM_Try, /*On fail goto*//*Label 1744*/ GIMT_Encode4(93274), // Rule ID 5072 //
34053 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_offset),
34054 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
34055 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
34056 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
34057 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
34058 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
34059 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34060 // MIs[0] base
34061 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
34062 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
34063 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34064 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 8,
34065 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
34066 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
34067 // (intrinsic_w_chain:{ *:[v4i32] } 3311:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 8:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VLDRBU32_rq:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
34068 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRBU32_rq),
34069 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
34070 GIR_RootToRootCopy, /*OpIdx*/2, // base
34071 GIR_RootToRootCopy, /*OpIdx*/3, // offsets
34072 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
34073 GIR_RootConstrainSelectedInstOperands,
34074 // GIR_Coverage, 5072,
34075 GIR_EraseRootFromParent_Done,
34076 // Label 1744: @93274
34077 GIM_Try, /*On fail goto*//*Label 1745*/ GIMT_Encode4(93342), // Rule ID 5074 //
34078 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_offset),
34079 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
34080 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
34081 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
34082 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
34083 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
34084 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34085 // MIs[0] base
34086 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
34087 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
34088 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34089 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 8,
34090 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
34091 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
34092 // (intrinsic_w_chain:{ *:[v4i32] } 3311:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 8:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VLDRBS32_rq:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
34093 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRBS32_rq),
34094 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
34095 GIR_RootToRootCopy, /*OpIdx*/2, // base
34096 GIR_RootToRootCopy, /*OpIdx*/3, // offsets
34097 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
34098 GIR_RootConstrainSelectedInstOperands,
34099 // GIR_Coverage, 5074,
34100 GIR_EraseRootFromParent_Done,
34101 // Label 1745: @93342
34102 GIM_Try, /*On fail goto*//*Label 1746*/ GIMT_Encode4(93410), // Rule ID 5076 //
34103 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_offset),
34104 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
34105 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
34106 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
34107 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
34108 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
34109 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34110 // MIs[0] base
34111 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
34112 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
34113 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34114 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 16,
34115 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
34116 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
34117 // (intrinsic_w_chain:{ *:[v8i16] } 3311:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 16:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VLDRHU16_rq_u:{ *:[v8i16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
34118 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRHU16_rq_u),
34119 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
34120 GIR_RootToRootCopy, /*OpIdx*/2, // base
34121 GIR_RootToRootCopy, /*OpIdx*/3, // offsets
34122 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
34123 GIR_RootConstrainSelectedInstOperands,
34124 // GIR_Coverage, 5076,
34125 GIR_EraseRootFromParent_Done,
34126 // Label 1746: @93410
34127 GIM_Try, /*On fail goto*//*Label 1747*/ GIMT_Encode4(93478), // Rule ID 5077 //
34128 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_offset),
34129 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
34130 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
34131 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
34132 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
34133 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
34134 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34135 // MIs[0] base
34136 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
34137 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
34138 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34139 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 16,
34140 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
34141 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
34142 // (intrinsic_w_chain:{ *:[v8i16] } 3311:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 16:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VLDRHU16_rq:{ *:[v8i16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
34143 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRHU16_rq),
34144 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
34145 GIR_RootToRootCopy, /*OpIdx*/2, // base
34146 GIR_RootToRootCopy, /*OpIdx*/3, // offsets
34147 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
34148 GIR_RootConstrainSelectedInstOperands,
34149 // GIR_Coverage, 5077,
34150 GIR_EraseRootFromParent_Done,
34151 // Label 1747: @93478
34152 GIM_Try, /*On fail goto*//*Label 1748*/ GIMT_Encode4(93546), // Rule ID 5080 //
34153 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_offset),
34154 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
34155 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
34156 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
34157 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
34158 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
34159 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34160 // MIs[0] base
34161 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
34162 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
34163 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34164 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 16,
34165 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
34166 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
34167 // (intrinsic_w_chain:{ *:[v8i16] } 3311:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 16:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VLDRHU16_rq_u:{ *:[v8i16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
34168 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRHU16_rq_u),
34169 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
34170 GIR_RootToRootCopy, /*OpIdx*/2, // base
34171 GIR_RootToRootCopy, /*OpIdx*/3, // offsets
34172 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
34173 GIR_RootConstrainSelectedInstOperands,
34174 // GIR_Coverage, 5080,
34175 GIR_EraseRootFromParent_Done,
34176 // Label 1748: @93546
34177 GIM_Try, /*On fail goto*//*Label 1749*/ GIMT_Encode4(93614), // Rule ID 5081 //
34178 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_offset),
34179 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
34180 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
34181 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
34182 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
34183 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
34184 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34185 // MIs[0] base
34186 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
34187 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
34188 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34189 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 16,
34190 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
34191 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
34192 // (intrinsic_w_chain:{ *:[v8i16] } 3311:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 16:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VLDRHU16_rq:{ *:[v8i16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
34193 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRHU16_rq),
34194 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
34195 GIR_RootToRootCopy, /*OpIdx*/2, // base
34196 GIR_RootToRootCopy, /*OpIdx*/3, // offsets
34197 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
34198 GIR_RootConstrainSelectedInstOperands,
34199 // GIR_Coverage, 5081,
34200 GIR_EraseRootFromParent_Done,
34201 // Label 1749: @93614
34202 GIM_Try, /*On fail goto*//*Label 1750*/ GIMT_Encode4(93682), // Rule ID 5084 //
34203 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_offset),
34204 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
34205 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
34206 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
34207 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
34208 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
34209 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34210 // MIs[0] base
34211 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
34212 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
34213 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34214 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 16,
34215 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
34216 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
34217 // (intrinsic_w_chain:{ *:[v8i16] } 3311:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 16:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VLDRHU16_rq_u:{ *:[v8i16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
34218 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRHU16_rq_u),
34219 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
34220 GIR_RootToRootCopy, /*OpIdx*/2, // base
34221 GIR_RootToRootCopy, /*OpIdx*/3, // offsets
34222 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
34223 GIR_RootConstrainSelectedInstOperands,
34224 // GIR_Coverage, 5084,
34225 GIR_EraseRootFromParent_Done,
34226 // Label 1750: @93682
34227 GIM_Try, /*On fail goto*//*Label 1751*/ GIMT_Encode4(93750), // Rule ID 5085 //
34228 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_offset),
34229 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
34230 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
34231 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
34232 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
34233 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
34234 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34235 // MIs[0] base
34236 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
34237 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
34238 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34239 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 16,
34240 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
34241 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
34242 // (intrinsic_w_chain:{ *:[v8i16] } 3311:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 16:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VLDRHU16_rq:{ *:[v8i16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
34243 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRHU16_rq),
34244 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
34245 GIR_RootToRootCopy, /*OpIdx*/2, // base
34246 GIR_RootToRootCopy, /*OpIdx*/3, // offsets
34247 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
34248 GIR_RootConstrainSelectedInstOperands,
34249 // GIR_Coverage, 5085,
34250 GIR_EraseRootFromParent_Done,
34251 // Label 1751: @93750
34252 GIM_Try, /*On fail goto*//*Label 1752*/ GIMT_Encode4(93818), // Rule ID 5088 //
34253 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_offset),
34254 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
34255 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
34256 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
34257 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
34258 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
34259 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34260 // MIs[0] base
34261 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
34262 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
34263 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34264 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 16,
34265 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
34266 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
34267 // (intrinsic_w_chain:{ *:[v8f16] } 3311:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 16:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VLDRHU16_rq_u:{ *:[v8f16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
34268 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRHU16_rq_u),
34269 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
34270 GIR_RootToRootCopy, /*OpIdx*/2, // base
34271 GIR_RootToRootCopy, /*OpIdx*/3, // offsets
34272 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
34273 GIR_RootConstrainSelectedInstOperands,
34274 // GIR_Coverage, 5088,
34275 GIR_EraseRootFromParent_Done,
34276 // Label 1752: @93818
34277 GIM_Try, /*On fail goto*//*Label 1753*/ GIMT_Encode4(93886), // Rule ID 5089 //
34278 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_offset),
34279 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
34280 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
34281 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
34282 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
34283 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
34284 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34285 // MIs[0] base
34286 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
34287 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
34288 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34289 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 16,
34290 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
34291 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
34292 // (intrinsic_w_chain:{ *:[v8f16] } 3311:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 16:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VLDRHU16_rq:{ *:[v8f16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
34293 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRHU16_rq),
34294 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
34295 GIR_RootToRootCopy, /*OpIdx*/2, // base
34296 GIR_RootToRootCopy, /*OpIdx*/3, // offsets
34297 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
34298 GIR_RootConstrainSelectedInstOperands,
34299 // GIR_Coverage, 5089,
34300 GIR_EraseRootFromParent_Done,
34301 // Label 1753: @93886
34302 GIM_Try, /*On fail goto*//*Label 1754*/ GIMT_Encode4(93954), // Rule ID 5092 //
34303 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_offset),
34304 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
34305 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
34306 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
34307 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
34308 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
34309 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34310 // MIs[0] base
34311 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
34312 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
34313 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34314 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 16,
34315 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
34316 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
34317 // (intrinsic_w_chain:{ *:[v8f16] } 3311:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 16:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VLDRHU16_rq_u:{ *:[v8f16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
34318 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRHU16_rq_u),
34319 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
34320 GIR_RootToRootCopy, /*OpIdx*/2, // base
34321 GIR_RootToRootCopy, /*OpIdx*/3, // offsets
34322 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
34323 GIR_RootConstrainSelectedInstOperands,
34324 // GIR_Coverage, 5092,
34325 GIR_EraseRootFromParent_Done,
34326 // Label 1754: @93954
34327 GIM_Try, /*On fail goto*//*Label 1755*/ GIMT_Encode4(94022), // Rule ID 5093 //
34328 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_offset),
34329 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v8s16,
34330 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
34331 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
34332 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
34333 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
34334 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34335 // MIs[0] base
34336 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
34337 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
34338 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34339 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 16,
34340 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
34341 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
34342 // (intrinsic_w_chain:{ *:[v8f16] } 3311:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 16:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VLDRHU16_rq:{ *:[v8f16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
34343 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRHU16_rq),
34344 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
34345 GIR_RootToRootCopy, /*OpIdx*/2, // base
34346 GIR_RootToRootCopy, /*OpIdx*/3, // offsets
34347 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
34348 GIR_RootConstrainSelectedInstOperands,
34349 // GIR_Coverage, 5093,
34350 GIR_EraseRootFromParent_Done,
34351 // Label 1755: @94022
34352 GIM_Try, /*On fail goto*//*Label 1756*/ GIMT_Encode4(94090), // Rule ID 5096 //
34353 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_offset),
34354 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
34355 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
34356 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
34357 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
34358 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
34359 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34360 // MIs[0] base
34361 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
34362 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
34363 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34364 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 16,
34365 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
34366 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
34367 // (intrinsic_w_chain:{ *:[v4i32] } 3311:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 16:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VLDRHU32_rq_u:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
34368 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRHU32_rq_u),
34369 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
34370 GIR_RootToRootCopy, /*OpIdx*/2, // base
34371 GIR_RootToRootCopy, /*OpIdx*/3, // offsets
34372 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
34373 GIR_RootConstrainSelectedInstOperands,
34374 // GIR_Coverage, 5096,
34375 GIR_EraseRootFromParent_Done,
34376 // Label 1756: @94090
34377 GIM_Try, /*On fail goto*//*Label 1757*/ GIMT_Encode4(94158), // Rule ID 5097 //
34378 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_offset),
34379 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
34380 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
34381 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
34382 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
34383 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
34384 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34385 // MIs[0] base
34386 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
34387 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
34388 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34389 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 16,
34390 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
34391 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
34392 // (intrinsic_w_chain:{ *:[v4i32] } 3311:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 16:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VLDRHU32_rq:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
34393 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRHU32_rq),
34394 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
34395 GIR_RootToRootCopy, /*OpIdx*/2, // base
34396 GIR_RootToRootCopy, /*OpIdx*/3, // offsets
34397 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
34398 GIR_RootConstrainSelectedInstOperands,
34399 // GIR_Coverage, 5097,
34400 GIR_EraseRootFromParent_Done,
34401 // Label 1757: @94158
34402 GIM_Try, /*On fail goto*//*Label 1758*/ GIMT_Encode4(94226), // Rule ID 5100 //
34403 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_offset),
34404 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
34405 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
34406 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
34407 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
34408 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
34409 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34410 // MIs[0] base
34411 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
34412 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
34413 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34414 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 16,
34415 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
34416 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
34417 // (intrinsic_w_chain:{ *:[v4i32] } 3311:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 16:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VLDRHS32_rq_u:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
34418 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRHS32_rq_u),
34419 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
34420 GIR_RootToRootCopy, /*OpIdx*/2, // base
34421 GIR_RootToRootCopy, /*OpIdx*/3, // offsets
34422 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
34423 GIR_RootConstrainSelectedInstOperands,
34424 // GIR_Coverage, 5100,
34425 GIR_EraseRootFromParent_Done,
34426 // Label 1758: @94226
34427 GIM_Try, /*On fail goto*//*Label 1759*/ GIMT_Encode4(94294), // Rule ID 5101 //
34428 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_offset),
34429 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
34430 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
34431 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
34432 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
34433 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
34434 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34435 // MIs[0] base
34436 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
34437 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
34438 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34439 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 16,
34440 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 1,
34441 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
34442 // (intrinsic_w_chain:{ *:[v4i32] } 3311:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 16:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VLDRHS32_rq:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
34443 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRHS32_rq),
34444 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
34445 GIR_RootToRootCopy, /*OpIdx*/2, // base
34446 GIR_RootToRootCopy, /*OpIdx*/3, // offsets
34447 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
34448 GIR_RootConstrainSelectedInstOperands,
34449 // GIR_Coverage, 5101,
34450 GIR_EraseRootFromParent_Done,
34451 // Label 1759: @94294
34452 GIM_Try, /*On fail goto*//*Label 1760*/ GIMT_Encode4(94362), // Rule ID 5104 //
34453 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_offset),
34454 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
34455 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
34456 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
34457 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
34458 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
34459 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34460 // MIs[0] base
34461 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
34462 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
34463 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34464 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 32,
34465 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
34466 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
34467 // (intrinsic_w_chain:{ *:[v4i32] } 3311:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 32:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VLDRWU32_rq_u:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
34468 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRWU32_rq_u),
34469 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
34470 GIR_RootToRootCopy, /*OpIdx*/2, // base
34471 GIR_RootToRootCopy, /*OpIdx*/3, // offsets
34472 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
34473 GIR_RootConstrainSelectedInstOperands,
34474 // GIR_Coverage, 5104,
34475 GIR_EraseRootFromParent_Done,
34476 // Label 1760: @94362
34477 GIM_Try, /*On fail goto*//*Label 1761*/ GIMT_Encode4(94430), // Rule ID 5105 //
34478 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_offset),
34479 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
34480 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
34481 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
34482 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
34483 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
34484 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34485 // MIs[0] base
34486 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
34487 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
34488 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34489 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 32,
34490 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 2,
34491 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
34492 // (intrinsic_w_chain:{ *:[v4i32] } 3311:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 32:{ *:[i32] }, 2:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VLDRWU32_rq:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
34493 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRWU32_rq),
34494 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
34495 GIR_RootToRootCopy, /*OpIdx*/2, // base
34496 GIR_RootToRootCopy, /*OpIdx*/3, // offsets
34497 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
34498 GIR_RootConstrainSelectedInstOperands,
34499 // GIR_Coverage, 5105,
34500 GIR_EraseRootFromParent_Done,
34501 // Label 1761: @94430
34502 GIM_Try, /*On fail goto*//*Label 1762*/ GIMT_Encode4(94498), // Rule ID 5108 //
34503 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_offset),
34504 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
34505 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
34506 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
34507 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
34508 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
34509 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34510 // MIs[0] base
34511 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
34512 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
34513 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34514 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 32,
34515 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
34516 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
34517 // (intrinsic_w_chain:{ *:[v4i32] } 3311:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 32:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VLDRWU32_rq_u:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
34518 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRWU32_rq_u),
34519 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
34520 GIR_RootToRootCopy, /*OpIdx*/2, // base
34521 GIR_RootToRootCopy, /*OpIdx*/3, // offsets
34522 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
34523 GIR_RootConstrainSelectedInstOperands,
34524 // GIR_Coverage, 5108,
34525 GIR_EraseRootFromParent_Done,
34526 // Label 1762: @94498
34527 GIM_Try, /*On fail goto*//*Label 1763*/ GIMT_Encode4(94566), // Rule ID 5109 //
34528 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_offset),
34529 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
34530 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
34531 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
34532 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
34533 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
34534 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34535 // MIs[0] base
34536 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
34537 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
34538 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34539 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 32,
34540 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 2,
34541 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
34542 // (intrinsic_w_chain:{ *:[v4i32] } 3311:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 32:{ *:[i32] }, 2:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VLDRWU32_rq:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
34543 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRWU32_rq),
34544 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
34545 GIR_RootToRootCopy, /*OpIdx*/2, // base
34546 GIR_RootToRootCopy, /*OpIdx*/3, // offsets
34547 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
34548 GIR_RootConstrainSelectedInstOperands,
34549 // GIR_Coverage, 5109,
34550 GIR_EraseRootFromParent_Done,
34551 // Label 1763: @94566
34552 GIM_Try, /*On fail goto*//*Label 1764*/ GIMT_Encode4(94634), // Rule ID 5112 //
34553 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_offset),
34554 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
34555 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
34556 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
34557 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
34558 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
34559 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34560 // MIs[0] base
34561 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
34562 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
34563 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34564 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 32,
34565 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
34566 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
34567 // (intrinsic_w_chain:{ *:[v4i32] } 3311:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 32:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VLDRWU32_rq_u:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
34568 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRWU32_rq_u),
34569 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
34570 GIR_RootToRootCopy, /*OpIdx*/2, // base
34571 GIR_RootToRootCopy, /*OpIdx*/3, // offsets
34572 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
34573 GIR_RootConstrainSelectedInstOperands,
34574 // GIR_Coverage, 5112,
34575 GIR_EraseRootFromParent_Done,
34576 // Label 1764: @94634
34577 GIM_Try, /*On fail goto*//*Label 1765*/ GIMT_Encode4(94702), // Rule ID 5113 //
34578 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_offset),
34579 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
34580 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
34581 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
34582 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
34583 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
34584 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34585 // MIs[0] base
34586 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
34587 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
34588 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34589 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 32,
34590 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 2,
34591 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
34592 // (intrinsic_w_chain:{ *:[v4i32] } 3311:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 32:{ *:[i32] }, 2:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VLDRWU32_rq:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
34593 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRWU32_rq),
34594 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
34595 GIR_RootToRootCopy, /*OpIdx*/2, // base
34596 GIR_RootToRootCopy, /*OpIdx*/3, // offsets
34597 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
34598 GIR_RootConstrainSelectedInstOperands,
34599 // GIR_Coverage, 5113,
34600 GIR_EraseRootFromParent_Done,
34601 // Label 1765: @94702
34602 GIM_Try, /*On fail goto*//*Label 1766*/ GIMT_Encode4(94770), // Rule ID 5116 //
34603 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_offset),
34604 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
34605 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
34606 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
34607 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
34608 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
34609 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34610 // MIs[0] base
34611 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
34612 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
34613 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34614 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 32,
34615 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
34616 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
34617 // (intrinsic_w_chain:{ *:[v4i32] } 3311:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 32:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VLDRWU32_rq_u:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
34618 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRWU32_rq_u),
34619 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
34620 GIR_RootToRootCopy, /*OpIdx*/2, // base
34621 GIR_RootToRootCopy, /*OpIdx*/3, // offsets
34622 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
34623 GIR_RootConstrainSelectedInstOperands,
34624 // GIR_Coverage, 5116,
34625 GIR_EraseRootFromParent_Done,
34626 // Label 1766: @94770
34627 GIM_Try, /*On fail goto*//*Label 1767*/ GIMT_Encode4(94838), // Rule ID 5117 //
34628 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_offset),
34629 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
34630 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
34631 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
34632 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
34633 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
34634 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34635 // MIs[0] base
34636 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
34637 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
34638 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34639 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 32,
34640 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 2,
34641 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
34642 // (intrinsic_w_chain:{ *:[v4i32] } 3311:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 32:{ *:[i32] }, 2:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VLDRWU32_rq:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
34643 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRWU32_rq),
34644 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
34645 GIR_RootToRootCopy, /*OpIdx*/2, // base
34646 GIR_RootToRootCopy, /*OpIdx*/3, // offsets
34647 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
34648 GIR_RootConstrainSelectedInstOperands,
34649 // GIR_Coverage, 5117,
34650 GIR_EraseRootFromParent_Done,
34651 // Label 1767: @94838
34652 GIM_Try, /*On fail goto*//*Label 1768*/ GIMT_Encode4(94906), // Rule ID 5120 //
34653 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_offset),
34654 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
34655 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
34656 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
34657 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
34658 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
34659 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34660 // MIs[0] base
34661 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
34662 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
34663 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34664 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 32,
34665 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
34666 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
34667 // (intrinsic_w_chain:{ *:[v4f32] } 3311:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 32:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VLDRWU32_rq_u:{ *:[v4f32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
34668 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRWU32_rq_u),
34669 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
34670 GIR_RootToRootCopy, /*OpIdx*/2, // base
34671 GIR_RootToRootCopy, /*OpIdx*/3, // offsets
34672 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
34673 GIR_RootConstrainSelectedInstOperands,
34674 // GIR_Coverage, 5120,
34675 GIR_EraseRootFromParent_Done,
34676 // Label 1768: @94906
34677 GIM_Try, /*On fail goto*//*Label 1769*/ GIMT_Encode4(94974), // Rule ID 5121 //
34678 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_offset),
34679 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
34680 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
34681 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
34682 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
34683 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
34684 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34685 // MIs[0] base
34686 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
34687 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
34688 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34689 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 32,
34690 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 2,
34691 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
34692 // (intrinsic_w_chain:{ *:[v4f32] } 3311:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 32:{ *:[i32] }, 2:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VLDRWU32_rq:{ *:[v4f32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
34693 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRWU32_rq),
34694 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
34695 GIR_RootToRootCopy, /*OpIdx*/2, // base
34696 GIR_RootToRootCopy, /*OpIdx*/3, // offsets
34697 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
34698 GIR_RootConstrainSelectedInstOperands,
34699 // GIR_Coverage, 5121,
34700 GIR_EraseRootFromParent_Done,
34701 // Label 1769: @94974
34702 GIM_Try, /*On fail goto*//*Label 1770*/ GIMT_Encode4(95042), // Rule ID 5124 //
34703 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_offset),
34704 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
34705 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
34706 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
34707 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
34708 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
34709 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34710 // MIs[0] base
34711 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
34712 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
34713 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34714 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 32,
34715 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
34716 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
34717 // (intrinsic_w_chain:{ *:[v4f32] } 3311:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 32:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VLDRWU32_rq_u:{ *:[v4f32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
34718 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRWU32_rq_u),
34719 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
34720 GIR_RootToRootCopy, /*OpIdx*/2, // base
34721 GIR_RootToRootCopy, /*OpIdx*/3, // offsets
34722 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
34723 GIR_RootConstrainSelectedInstOperands,
34724 // GIR_Coverage, 5124,
34725 GIR_EraseRootFromParent_Done,
34726 // Label 1770: @95042
34727 GIM_Try, /*On fail goto*//*Label 1771*/ GIMT_Encode4(95110), // Rule ID 5125 //
34728 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_offset),
34729 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v4s32,
34730 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
34731 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
34732 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
34733 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
34734 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34735 // MIs[0] base
34736 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
34737 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
34738 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34739 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 32,
34740 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 2,
34741 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
34742 // (intrinsic_w_chain:{ *:[v4f32] } 3311:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 32:{ *:[i32] }, 2:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VLDRWU32_rq:{ *:[v4f32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
34743 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRWU32_rq),
34744 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
34745 GIR_RootToRootCopy, /*OpIdx*/2, // base
34746 GIR_RootToRootCopy, /*OpIdx*/3, // offsets
34747 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
34748 GIR_RootConstrainSelectedInstOperands,
34749 // GIR_Coverage, 5125,
34750 GIR_EraseRootFromParent_Done,
34751 // Label 1771: @95110
34752 GIM_Try, /*On fail goto*//*Label 1772*/ GIMT_Encode4(95178), // Rule ID 5128 //
34753 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_offset),
34754 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s64,
34755 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s64,
34756 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
34757 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
34758 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
34759 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34760 // MIs[0] base
34761 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
34762 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
34763 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34764 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 64,
34765 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
34766 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
34767 // (intrinsic_w_chain:{ *:[v2i64] } 3311:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets, 64:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VLDRDU64_rq_u:{ *:[v2i64] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets)
34768 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRDU64_rq_u),
34769 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
34770 GIR_RootToRootCopy, /*OpIdx*/2, // base
34771 GIR_RootToRootCopy, /*OpIdx*/3, // offsets
34772 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
34773 GIR_RootConstrainSelectedInstOperands,
34774 // GIR_Coverage, 5128,
34775 GIR_EraseRootFromParent_Done,
34776 // Label 1772: @95178
34777 GIM_Try, /*On fail goto*//*Label 1773*/ GIMT_Encode4(95246), // Rule ID 5129 //
34778 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_offset),
34779 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s64,
34780 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s64,
34781 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
34782 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
34783 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
34784 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34785 // MIs[0] base
34786 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
34787 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
34788 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34789 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 64,
34790 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 3,
34791 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
34792 // (intrinsic_w_chain:{ *:[v2i64] } 3311:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets, 64:{ *:[i32] }, 3:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VLDRDU64_rq:{ *:[v2i64] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets)
34793 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRDU64_rq),
34794 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
34795 GIR_RootToRootCopy, /*OpIdx*/2, // base
34796 GIR_RootToRootCopy, /*OpIdx*/3, // offsets
34797 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
34798 GIR_RootConstrainSelectedInstOperands,
34799 // GIR_Coverage, 5129,
34800 GIR_EraseRootFromParent_Done,
34801 // Label 1773: @95246
34802 GIM_Try, /*On fail goto*//*Label 1774*/ GIMT_Encode4(95314), // Rule ID 5132 //
34803 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_offset),
34804 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s64,
34805 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s64,
34806 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
34807 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
34808 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
34809 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34810 // MIs[0] base
34811 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
34812 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
34813 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34814 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 64,
34815 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
34816 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
34817 // (intrinsic_w_chain:{ *:[v2i64] } 3311:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets, 64:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VLDRDU64_rq_u:{ *:[v2i64] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets)
34818 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRDU64_rq_u),
34819 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
34820 GIR_RootToRootCopy, /*OpIdx*/2, // base
34821 GIR_RootToRootCopy, /*OpIdx*/3, // offsets
34822 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
34823 GIR_RootConstrainSelectedInstOperands,
34824 // GIR_Coverage, 5132,
34825 GIR_EraseRootFromParent_Done,
34826 // Label 1774: @95314
34827 GIM_Try, /*On fail goto*//*Label 1775*/ GIMT_Encode4(95382), // Rule ID 5133 //
34828 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_offset),
34829 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s64,
34830 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s64,
34831 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
34832 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
34833 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
34834 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34835 // MIs[0] base
34836 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
34837 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
34838 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34839 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 64,
34840 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 3,
34841 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
34842 // (intrinsic_w_chain:{ *:[v2i64] } 3311:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets, 64:{ *:[i32] }, 3:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VLDRDU64_rq:{ *:[v2i64] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets)
34843 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRDU64_rq),
34844 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
34845 GIR_RootToRootCopy, /*OpIdx*/2, // base
34846 GIR_RootToRootCopy, /*OpIdx*/3, // offsets
34847 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
34848 GIR_RootConstrainSelectedInstOperands,
34849 // GIR_Coverage, 5133,
34850 GIR_EraseRootFromParent_Done,
34851 // Label 1775: @95382
34852 GIM_Try, /*On fail goto*//*Label 1776*/ GIMT_Encode4(95450), // Rule ID 5136 //
34853 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_offset),
34854 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s64,
34855 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s64,
34856 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
34857 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
34858 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
34859 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34860 // MIs[0] base
34861 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
34862 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
34863 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34864 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 64,
34865 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
34866 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
34867 // (intrinsic_w_chain:{ *:[v2i64] } 3311:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets, 64:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VLDRDU64_rq_u:{ *:[v2i64] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets)
34868 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRDU64_rq_u),
34869 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
34870 GIR_RootToRootCopy, /*OpIdx*/2, // base
34871 GIR_RootToRootCopy, /*OpIdx*/3, // offsets
34872 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
34873 GIR_RootConstrainSelectedInstOperands,
34874 // GIR_Coverage, 5136,
34875 GIR_EraseRootFromParent_Done,
34876 // Label 1776: @95450
34877 GIM_Try, /*On fail goto*//*Label 1777*/ GIMT_Encode4(95518), // Rule ID 5137 //
34878 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_offset),
34879 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s64,
34880 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s64,
34881 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
34882 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
34883 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
34884 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34885 // MIs[0] base
34886 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
34887 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
34888 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34889 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 64,
34890 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 3,
34891 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 0,
34892 // (intrinsic_w_chain:{ *:[v2i64] } 3311:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets, 64:{ *:[i32] }, 3:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VLDRDU64_rq:{ *:[v2i64] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets)
34893 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRDU64_rq),
34894 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
34895 GIR_RootToRootCopy, /*OpIdx*/2, // base
34896 GIR_RootToRootCopy, /*OpIdx*/3, // offsets
34897 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
34898 GIR_RootConstrainSelectedInstOperands,
34899 // GIR_Coverage, 5137,
34900 GIR_EraseRootFromParent_Done,
34901 // Label 1777: @95518
34902 GIM_Try, /*On fail goto*//*Label 1778*/ GIMT_Encode4(95586), // Rule ID 5140 //
34903 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_offset),
34904 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s64,
34905 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s64,
34906 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
34907 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
34908 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
34909 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34910 // MIs[0] base
34911 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
34912 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
34913 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34914 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 64,
34915 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 0,
34916 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
34917 // (intrinsic_w_chain:{ *:[v2i64] } 3311:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets, 64:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VLDRDU64_rq_u:{ *:[v2i64] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets)
34918 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRDU64_rq_u),
34919 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
34920 GIR_RootToRootCopy, /*OpIdx*/2, // base
34921 GIR_RootToRootCopy, /*OpIdx*/3, // offsets
34922 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
34923 GIR_RootConstrainSelectedInstOperands,
34924 // GIR_Coverage, 5140,
34925 GIR_EraseRootFromParent_Done,
34926 // Label 1778: @95586
34927 GIM_Try, /*On fail goto*//*Label 1779*/ GIMT_Encode4(95654), // Rule ID 5141 //
34928 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::arm_mve_vldr_gather_offset),
34929 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_v2s64,
34930 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s64,
34931 GIM_RootCheckType, /*Op*/4, /*Type*/GILLT_s32,
34932 GIM_RootCheckType, /*Op*/5, /*Type*/GILLT_s32,
34933 GIM_RootCheckType, /*Op*/6, /*Type*/GILLT_s32,
34934 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34935 // MIs[0] base
34936 GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
34937 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
34938 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
34939 GIM_CheckConstantInt8, /*MI*/0, /*Op*/4, 64,
34940 GIM_CheckConstantInt8, /*MI*/0, /*Op*/5, 3,
34941 GIM_CheckConstantInt8, /*MI*/0, /*Op*/6, 1,
34942 // (intrinsic_w_chain:{ *:[v2i64] } 3311:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets, 64:{ *:[i32] }, 3:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VLDRDU64_rq:{ *:[v2i64] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets)
34943 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VLDRDU64_rq),
34944 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
34945 GIR_RootToRootCopy, /*OpIdx*/2, // base
34946 GIR_RootToRootCopy, /*OpIdx*/3, // offsets
34947 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
34948 GIR_RootConstrainSelectedInstOperands,
34949 // GIR_Coverage, 5141,
34950 GIR_EraseRootFromParent_Done,
34951 // Label 1779: @95654
34952 GIM_Try, /*On fail goto*//*Label 1780*/ GIMT_Encode4(95719), // Rule ID 263 //
34953 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
34954 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_mcr),
34955 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
34956 // MIs[0] cop
34957 GIM_CheckIsImm, /*MI*/0, /*Op*/1,
34958 // MIs[0] opc1
34959 GIM_CheckIsImm, /*MI*/0, /*Op*/2,
34960 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
34961 // MIs[0] CRn
34962 GIM_CheckIsImm, /*MI*/0, /*Op*/4,
34963 // MIs[0] CRm
34964 GIM_CheckIsImm, /*MI*/0, /*Op*/5,
34965 // MIs[0] opc2
34966 GIM_CheckIsImm, /*MI*/0, /*Op*/6,
34967 // (intrinsic_void 3186:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2) => (MCR (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2)
34968 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MCR),
34969 GIR_RootToRootCopy, /*OpIdx*/1, // cop
34970 GIR_RootToRootCopy, /*OpIdx*/2, // opc1
34971 GIR_RootToRootCopy, /*OpIdx*/3, // Rt
34972 GIR_RootToRootCopy, /*OpIdx*/4, // CRn
34973 GIR_RootToRootCopy, /*OpIdx*/5, // CRm
34974 GIR_RootToRootCopy, /*OpIdx*/6, // opc2
34975 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
34976 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
34977 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
34978 GIR_RootConstrainSelectedInstOperands,
34979 // GIR_Coverage, 263,
34980 GIR_EraseRootFromParent_Done,
34981 // Label 1780: @95719
34982 GIM_Try, /*On fail goto*//*Label 1781*/ GIMT_Encode4(95775), // Rule ID 264 //
34983 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM_PreV8),
34984 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_mcr2),
34985 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
34986 // MIs[0] cop
34987 GIM_CheckIsImm, /*MI*/0, /*Op*/1,
34988 // MIs[0] opc1
34989 GIM_CheckIsImm, /*MI*/0, /*Op*/2,
34990 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
34991 // MIs[0] CRn
34992 GIM_CheckIsImm, /*MI*/0, /*Op*/4,
34993 // MIs[0] CRm
34994 GIM_CheckIsImm, /*MI*/0, /*Op*/5,
34995 // MIs[0] opc2
34996 GIM_CheckIsImm, /*MI*/0, /*Op*/6,
34997 // (intrinsic_void 3187:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2) => (MCR2 (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2)
34998 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MCR2),
34999 GIR_RootToRootCopy, /*OpIdx*/1, // cop
35000 GIR_RootToRootCopy, /*OpIdx*/2, // opc1
35001 GIR_RootToRootCopy, /*OpIdx*/3, // Rt
35002 GIR_RootToRootCopy, /*OpIdx*/4, // CRn
35003 GIR_RootToRootCopy, /*OpIdx*/5, // CRm
35004 GIR_RootToRootCopy, /*OpIdx*/6, // opc2
35005 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
35006 GIR_RootConstrainSelectedInstOperands,
35007 // GIR_Coverage, 264,
35008 GIR_EraseRootFromParent_Done,
35009 // Label 1781: @95775
35010 GIM_Try, /*On fail goto*//*Label 1782*/ GIMT_Encode4(95840), // Rule ID 611 //
35011 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
35012 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_mcr),
35013 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
35014 // MIs[0] cop
35015 GIM_CheckIsImm, /*MI*/0, /*Op*/1,
35016 // MIs[0] opc1
35017 GIM_CheckIsImm, /*MI*/0, /*Op*/2,
35018 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
35019 // MIs[0] CRn
35020 GIM_CheckIsImm, /*MI*/0, /*Op*/4,
35021 // MIs[0] CRm
35022 GIM_CheckIsImm, /*MI*/0, /*Op*/5,
35023 // MIs[0] opc2
35024 GIM_CheckIsImm, /*MI*/0, /*Op*/6,
35025 // (intrinsic_void 3186:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2) => (t2MCR (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2)
35026 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2MCR),
35027 GIR_RootToRootCopy, /*OpIdx*/1, // cop
35028 GIR_RootToRootCopy, /*OpIdx*/2, // opc1
35029 GIR_RootToRootCopy, /*OpIdx*/3, // Rt
35030 GIR_RootToRootCopy, /*OpIdx*/4, // CRn
35031 GIR_RootToRootCopy, /*OpIdx*/5, // CRm
35032 GIR_RootToRootCopy, /*OpIdx*/6, // opc2
35033 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
35034 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35035 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
35036 GIR_RootConstrainSelectedInstOperands,
35037 // GIR_Coverage, 611,
35038 GIR_EraseRootFromParent_Done,
35039 // Label 1782: @95840
35040 GIM_Try, /*On fail goto*//*Label 1783*/ GIMT_Encode4(95905), // Rule ID 612 //
35041 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2_PreV8),
35042 GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, GIMT_Encode2(Intrinsic::arm_mcr2),
35043 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
35044 // MIs[0] cop
35045 GIM_CheckIsImm, /*MI*/0, /*Op*/1,
35046 // MIs[0] opc1
35047 GIM_CheckIsImm, /*MI*/0, /*Op*/2,
35048 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
35049 // MIs[0] CRn
35050 GIM_CheckIsImm, /*MI*/0, /*Op*/4,
35051 // MIs[0] CRm
35052 GIM_CheckIsImm, /*MI*/0, /*Op*/5,
35053 // MIs[0] opc2
35054 GIM_CheckIsImm, /*MI*/0, /*Op*/6,
35055 // (intrinsic_void 3187:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2) => (t2MCR2 (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2)
35056 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2MCR2),
35057 GIR_RootToRootCopy, /*OpIdx*/1, // cop
35058 GIR_RootToRootCopy, /*OpIdx*/2, // opc1
35059 GIR_RootToRootCopy, /*OpIdx*/3, // Rt
35060 GIR_RootToRootCopy, /*OpIdx*/4, // CRn
35061 GIR_RootToRootCopy, /*OpIdx*/5, // CRm
35062 GIR_RootToRootCopy, /*OpIdx*/6, // opc2
35063 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
35064 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35065 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
35066 GIR_RootConstrainSelectedInstOperands,
35067 // GIR_Coverage, 612,
35068 GIR_EraseRootFromParent_Done,
35069 // Label 1783: @95905
35070 GIM_Reject,
35071 // Label 1733: @95906
35072 GIM_Reject,
35073 // Label 15: @95907
35074 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(5), GIMT_Encode2(13), /*)*//*default:*//*Label 1787*/ GIMT_Encode4(96064),
35075 /*GILLT_v2s64*//*Label 1784*/ GIMT_Encode4(95950), GIMT_Encode4(0), GIMT_Encode4(0),
35076 /*GILLT_v4s32*//*Label 1785*/ GIMT_Encode4(95988), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
35077 /*GILLT_v8s16*//*Label 1786*/ GIMT_Encode4(96026),
35078 // Label 1784: @95950
35079 GIM_Try, /*On fail goto*//*Label 1788*/ GIMT_Encode4(95987), // Rule ID 2679 //
35080 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
35081 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
35082 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
35083 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
35084 // (anyext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm) => (VMOVLuv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)
35085 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMOVLuv2i64),
35086 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
35087 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
35088 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
35089 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35090 GIR_RootConstrainSelectedInstOperands,
35091 // GIR_Coverage, 2679,
35092 GIR_EraseRootFromParent_Done,
35093 // Label 1788: @95987
35094 GIM_Reject,
35095 // Label 1785: @95988
35096 GIM_Try, /*On fail goto*//*Label 1789*/ GIMT_Encode4(96025), // Rule ID 2678 //
35097 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
35098 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
35099 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
35100 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
35101 // (anyext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm) => (VMOVLuv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)
35102 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMOVLuv4i32),
35103 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
35104 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
35105 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
35106 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35107 GIR_RootConstrainSelectedInstOperands,
35108 // GIR_Coverage, 2678,
35109 GIR_EraseRootFromParent_Done,
35110 // Label 1789: @96025
35111 GIM_Reject,
35112 // Label 1786: @96026
35113 GIM_Try, /*On fail goto*//*Label 1790*/ GIMT_Encode4(96063), // Rule ID 2677 //
35114 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
35115 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s8,
35116 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
35117 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
35118 // (anyext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm) => (VMOVLuv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)
35119 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMOVLuv8i16),
35120 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
35121 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
35122 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
35123 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35124 GIR_RootConstrainSelectedInstOperands,
35125 // GIR_Coverage, 2677,
35126 GIR_EraseRootFromParent_Done,
35127 // Label 1790: @96063
35128 GIM_Reject,
35129 // Label 1787: @96064
35130 GIM_Reject,
35131 // Label 16: @96065
35132 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(4), GIMT_Encode2(12), /*)*//*default:*//*Label 1794*/ GIMT_Encode4(96222),
35133 /*GILLT_v2s32*//*Label 1791*/ GIMT_Encode4(96108), GIMT_Encode4(0), GIMT_Encode4(0),
35134 /*GILLT_v4s16*//*Label 1792*/ GIMT_Encode4(96146), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
35135 /*GILLT_v8s8*//*Label 1793*/ GIMT_Encode4(96184),
35136 // Label 1791: @96108
35137 GIM_Try, /*On fail goto*//*Label 1795*/ GIMT_Encode4(96145), // Rule ID 1607 //
35138 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
35139 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
35140 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
35141 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
35142 // (trunc:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm) => (VMOVNv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm)
35143 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMOVNv2i32),
35144 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
35145 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
35146 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
35147 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35148 GIR_RootConstrainSelectedInstOperands,
35149 // GIR_Coverage, 1607,
35150 GIR_EraseRootFromParent_Done,
35151 // Label 1795: @96145
35152 GIM_Reject,
35153 // Label 1792: @96146
35154 GIM_Try, /*On fail goto*//*Label 1796*/ GIMT_Encode4(96183), // Rule ID 1606 //
35155 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
35156 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
35157 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
35158 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
35159 // (trunc:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm) => (VMOVNv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm)
35160 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMOVNv4i16),
35161 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
35162 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
35163 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
35164 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35165 GIR_RootConstrainSelectedInstOperands,
35166 // GIR_Coverage, 1606,
35167 GIR_EraseRootFromParent_Done,
35168 // Label 1796: @96183
35169 GIM_Reject,
35170 // Label 1793: @96184
35171 GIM_Try, /*On fail goto*//*Label 1797*/ GIMT_Encode4(96221), // Rule ID 1605 //
35172 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
35173 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
35174 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
35175 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
35176 // (trunc:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm) => (VMOVNv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm)
35177 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMOVNv8i8),
35178 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
35179 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
35180 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
35181 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35182 GIR_RootConstrainSelectedInstOperands,
35183 // GIR_Coverage, 1605,
35184 GIR_EraseRootFromParent_Done,
35185 // Label 1797: @96221
35186 GIM_Reject,
35187 // Label 1794: @96222
35188 GIM_Reject,
35189 // Label 17: @96223
35190 GIM_Try, /*On fail goto*//*Label 1798*/ GIMT_Encode4(96502),
35191 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
35192 GIM_Try, /*On fail goto*//*Label 1799*/ GIMT_Encode4(96272), // Rule ID 412 //
35193 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
35194 GIM_CheckI64ImmPredicate, /*MI*/0, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_t2_so_imm),
35195 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
35196 // MIs[0] Operand 1
35197 // No operand predicates
35198 // (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm => (t2MOVi:{ *:[i32] } (imm:{ *:[i32] }):$imm)
35199 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2MOVi),
35200 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
35201 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/0, // imm
35202 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
35203 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35204 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35205 GIR_RootConstrainSelectedInstOperands,
35206 // GIR_Coverage, 412,
35207 GIR_EraseRootFromParent_Done,
35208 // Label 1799: @96272
35209 GIM_Try, /*On fail goto*//*Label 1800*/ GIMT_Encode4(96313), // Rule ID 57 //
35210 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
35211 GIM_CheckI64ImmPredicate, /*MI*/0, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_mod_imm),
35212 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
35213 // MIs[0] Operand 1
35214 // No operand predicates
35215 // (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm => (MOVi:{ *:[i32] } (imm:{ *:[i32] }):$imm)
35216 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MOVi),
35217 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
35218 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/0, // imm
35219 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
35220 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35221 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35222 GIR_RootConstrainSelectedInstOperands,
35223 // GIR_Coverage, 57,
35224 GIR_EraseRootFromParent_Done,
35225 // Label 1800: @96313
35226 GIM_Try, /*On fail goto*//*Label 1801*/ GIMT_Encode4(96348), // Rule ID 58 //
35227 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6T2_IsARM),
35228 GIM_CheckI64ImmPredicate, /*MI*/0, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm0_65535),
35229 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
35230 // MIs[0] Operand 1
35231 // No operand predicates
35232 // (imm:{ *:[i32] })<<P:Predicate_imm0_65535>>:$imm => (MOVi16:{ *:[i32] } (imm:{ *:[i32] }):$imm)
35233 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MOVi16),
35234 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
35235 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/0, // imm
35236 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
35237 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35238 GIR_RootConstrainSelectedInstOperands,
35239 // GIR_Coverage, 58,
35240 GIR_EraseRootFromParent_Done,
35241 // Label 1801: @96348
35242 GIM_Try, /*On fail goto*//*Label 1802*/ GIMT_Encode4(96391), // Rule ID 168 //
35243 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
35244 GIM_CheckI64ImmPredicate, /*MI*/0, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_mod_imm_not),
35245 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
35246 // MIs[0] Operand 1
35247 // No operand predicates
35248 // (imm:{ *:[i32] })<<P:Predicate_mod_imm_not>><<X:imm_not_XFORM>>:$imm => (MVNi:{ *:[i32] } (imm_not_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$imm))
35249 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVNi),
35250 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
35251 GIR_CustomRenderer, /*InsnID*/0, /*OldInsnID*/0, /*Renderer*/GIMT_Encode2(GICR_renderInvertedImm), // imm
35252 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
35253 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35254 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35255 GIR_RootConstrainSelectedInstOperands,
35256 // GIR_Coverage, 168,
35257 GIR_EraseRootFromParent_Done,
35258 // Label 1802: @96391
35259 GIM_Try, /*On fail goto*//*Label 1803*/ GIMT_Encode4(96417), // Rule ID 275 //
35260 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
35261 GIM_CheckAPIntImmPredicate, /*MI*/0, /*Predicate*/GIMT_Encode2(GICXXPred_APInt_Predicate_arm_i32imm),
35262 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
35263 // MIs[0] Operand 1
35264 // No operand predicates
35265 // (imm:{ *:[i32] })<<P:Predicate_arm_i32imm>>:$src => (MOVi32imm:{ *:[i32] } (imm:{ *:[i32] }):$src)
35266 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MOVi32imm),
35267 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
35268 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/0, // src
35269 GIR_RootConstrainSelectedInstOperands,
35270 // GIR_Coverage, 275,
35271 GIR_EraseRootFromParent_Done,
35272 // Label 1803: @96417
35273 GIM_Try, /*On fail goto*//*Label 1804*/ GIMT_Encode4(96452), // Rule ID 413 //
35274 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV8MBaseline_IsThumb),
35275 GIM_CheckI64ImmPredicate, /*MI*/0, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm0_65535),
35276 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
35277 // MIs[0] Operand 1
35278 // No operand predicates
35279 // (imm:{ *:[i32] })<<P:Predicate_imm0_65535>>:$imm => (t2MOVi16:{ *:[i32] } (imm:{ *:[i32] }):$imm)
35280 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2MOVi16),
35281 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
35282 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/0, // imm
35283 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
35284 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35285 GIR_RootConstrainSelectedInstOperands,
35286 // GIR_Coverage, 413,
35287 GIR_EraseRootFromParent_Done,
35288 // Label 1804: @96452
35289 GIM_Try, /*On fail goto*//*Label 1805*/ GIMT_Encode4(96501),
35290 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
35291 GIM_Try, /*On fail goto*//*Label 1806*/ GIMT_Encode4(96482), // Rule ID 361 //
35292 GIM_CheckFeatures, GIMT_Encode2(GIFBS_DontUseMovt_GenExecuteOnly_IsThumb1Only),
35293 // MIs[0] Operand 1
35294 // No operand predicates
35295 // (imm:{ *:[i32] }):$src => (tMOVi32imm:{ *:[i32] }:{ *:[i32] } (imm:{ *:[i32] }):$src)
35296 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::tMOVi32imm),
35297 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
35298 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/0, // src
35299 GIR_SetImplicitDefDead, /*InsnID*/0, /*OpIdx for ARM::CPSR*/0,
35300 GIR_RootConstrainSelectedInstOperands,
35301 // GIR_Coverage, 361,
35302 GIR_EraseRootFromParent_Done,
35303 // Label 1806: @96482
35304 GIM_Try, /*On fail goto*//*Label 1807*/ GIMT_Encode4(96500), // Rule ID 599 //
35305 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb_UseMovt),
35306 // MIs[0] Operand 1
35307 // No operand predicates
35308 // (imm:{ *:[i32] }):$src => (t2MOVi32imm:{ *:[i32] } (imm:{ *:[i32] }):$src)
35309 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2MOVi32imm),
35310 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
35311 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/0, // src
35312 GIR_RootConstrainSelectedInstOperands,
35313 // GIR_Coverage, 599,
35314 GIR_EraseRootFromParent_Done,
35315 // Label 1807: @96500
35316 GIM_Reject,
35317 // Label 1805: @96501
35318 GIM_Reject,
35319 // Label 1798: @96502
35320 GIM_Reject,
35321 // Label 18: @96503
35322 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(1), GIMT_Encode2(3), /*)*//*default:*//*Label 1810*/ GIMT_Encode4(96598),
35323 /*GILLT_s32*//*Label 1808*/ GIMT_Encode4(96522),
35324 /*GILLT_s64*//*Label 1809*/ GIMT_Encode4(96560),
35325 // Label 1808: @96522
35326 GIM_Try, /*On fail goto*//*Label 1811*/ GIMT_Encode4(96559), // Rule ID 745 //
35327 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasVFP3),
35328 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
35329 // MIs[0] Operand 1
35330 // No operand predicates
35331 GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_vfp_f32imm),
35332 // (fpimm:{ *:[f32] })<<P:Predicate_vfp_f32imm>><<X:vfp_f32imm_xform>>:$imm => (FCONSTS:{ *:[f32] } (vfp_f32imm_xform:{ *:[f32] } (fpimm:{ *:[f32] }):$imm))
35333 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::FCONSTS),
35334 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
35335 GIR_CustomRenderer, /*InsnID*/0, /*OldInsnID*/0, /*Renderer*/GIMT_Encode2(GICR_renderVFPF32Imm), // imm
35336 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
35337 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35338 GIR_RootConstrainSelectedInstOperands,
35339 // GIR_Coverage, 745,
35340 GIR_EraseRootFromParent_Done,
35341 // Label 1811: @96559
35342 GIM_Reject,
35343 // Label 1809: @96560
35344 GIM_Try, /*On fail goto*//*Label 1812*/ GIMT_Encode4(96597), // Rule ID 744 //
35345 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasVFP3),
35346 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
35347 // MIs[0] Operand 1
35348 // No operand predicates
35349 GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_vfp_f64imm),
35350 // (fpimm:{ *:[f64] })<<P:Predicate_vfp_f64imm>><<X:vfp_f64imm_xform>>:$imm => (FCONSTD:{ *:[f64] } (vfp_f64imm_xform:{ *:[f64] } (fpimm:{ *:[f64] }):$imm))
35351 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::FCONSTD),
35352 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Dd]
35353 GIR_CustomRenderer, /*InsnID*/0, /*OldInsnID*/0, /*Renderer*/GIMT_Encode2(GICR_renderVFPF64Imm), // imm
35354 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
35355 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35356 GIR_RootConstrainSelectedInstOperands,
35357 // GIR_Coverage, 744,
35358 GIR_EraseRootFromParent_Done,
35359 // Label 1812: @96597
35360 GIM_Reject,
35361 // Label 1810: @96598
35362 GIM_Reject,
35363 // Label 19: @96599
35364 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(5), GIMT_Encode2(13), /*)*//*default:*//*Label 1816*/ GIMT_Encode4(96756),
35365 /*GILLT_v2s64*//*Label 1813*/ GIMT_Encode4(96642), GIMT_Encode4(0), GIMT_Encode4(0),
35366 /*GILLT_v4s32*//*Label 1814*/ GIMT_Encode4(96680), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
35367 /*GILLT_v8s16*//*Label 1815*/ GIMT_Encode4(96718),
35368 // Label 1813: @96642
35369 GIM_Try, /*On fail goto*//*Label 1817*/ GIMT_Encode4(96679), // Rule ID 1619 //
35370 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
35371 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
35372 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
35373 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
35374 // (sext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm) => (VMOVLsv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)
35375 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMOVLsv2i64),
35376 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
35377 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
35378 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
35379 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35380 GIR_RootConstrainSelectedInstOperands,
35381 // GIR_Coverage, 1619,
35382 GIR_EraseRootFromParent_Done,
35383 // Label 1817: @96679
35384 GIM_Reject,
35385 // Label 1814: @96680
35386 GIM_Try, /*On fail goto*//*Label 1818*/ GIMT_Encode4(96717), // Rule ID 1618 //
35387 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
35388 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
35389 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
35390 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
35391 // (sext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm) => (VMOVLsv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)
35392 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMOVLsv4i32),
35393 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
35394 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
35395 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
35396 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35397 GIR_RootConstrainSelectedInstOperands,
35398 // GIR_Coverage, 1618,
35399 GIR_EraseRootFromParent_Done,
35400 // Label 1818: @96717
35401 GIM_Reject,
35402 // Label 1815: @96718
35403 GIM_Try, /*On fail goto*//*Label 1819*/ GIMT_Encode4(96755), // Rule ID 1617 //
35404 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
35405 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s8,
35406 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
35407 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
35408 // (sext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm) => (VMOVLsv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)
35409 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMOVLsv8i16),
35410 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
35411 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
35412 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
35413 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35414 GIR_RootConstrainSelectedInstOperands,
35415 // GIR_Coverage, 1617,
35416 GIR_EraseRootFromParent_Done,
35417 // Label 1819: @96755
35418 GIM_Reject,
35419 // Label 1816: @96756
35420 GIM_Reject,
35421 // Label 20: @96757
35422 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(5), GIMT_Encode2(13), /*)*//*default:*//*Label 1823*/ GIMT_Encode4(96914),
35423 /*GILLT_v2s64*//*Label 1820*/ GIMT_Encode4(96800), GIMT_Encode4(0), GIMT_Encode4(0),
35424 /*GILLT_v4s32*//*Label 1821*/ GIMT_Encode4(96838), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
35425 /*GILLT_v8s16*//*Label 1822*/ GIMT_Encode4(96876),
35426 // Label 1820: @96800
35427 GIM_Try, /*On fail goto*//*Label 1824*/ GIMT_Encode4(96837), // Rule ID 1622 //
35428 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
35429 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
35430 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
35431 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
35432 // (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm) => (VMOVLuv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)
35433 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMOVLuv2i64),
35434 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
35435 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
35436 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
35437 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35438 GIR_RootConstrainSelectedInstOperands,
35439 // GIR_Coverage, 1622,
35440 GIR_EraseRootFromParent_Done,
35441 // Label 1824: @96837
35442 GIM_Reject,
35443 // Label 1821: @96838
35444 GIM_Try, /*On fail goto*//*Label 1825*/ GIMT_Encode4(96875), // Rule ID 1621 //
35445 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
35446 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
35447 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
35448 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
35449 // (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm) => (VMOVLuv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)
35450 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMOVLuv4i32),
35451 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
35452 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
35453 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
35454 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35455 GIR_RootConstrainSelectedInstOperands,
35456 // GIR_Coverage, 1621,
35457 GIR_EraseRootFromParent_Done,
35458 // Label 1825: @96875
35459 GIM_Reject,
35460 // Label 1822: @96876
35461 GIM_Try, /*On fail goto*//*Label 1826*/ GIMT_Encode4(96913), // Rule ID 1620 //
35462 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
35463 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s8,
35464 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
35465 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
35466 // (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm) => (VMOVLuv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)
35467 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMOVLuv8i16),
35468 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
35469 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
35470 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
35471 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35472 GIR_RootConstrainSelectedInstOperands,
35473 // GIR_Coverage, 1620,
35474 GIR_EraseRootFromParent_Done,
35475 // Label 1826: @96913
35476 GIM_Reject,
35477 // Label 1823: @96914
35478 GIM_Reject,
35479 // Label 21: @96915
35480 GIM_Try, /*On fail goto*//*Label 1827*/ GIMT_Encode4(97025),
35481 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
35482 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
35483 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
35484 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
35485 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
35486 GIM_Try, /*On fail goto*//*Label 1828*/ GIMT_Encode4(96986), // Rule ID 478 //
35487 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
35488 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
35489 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
35490 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm1_31),
35491 // MIs[1] Operand 1
35492 // No operand predicates
35493 GIM_CheckIsSafeToFold, /*NumInsns*/1,
35494 // (shl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_imm1_31>>:$imm) => (t2LSLri:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$imm)
35495 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2LSLri),
35496 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
35497 GIR_RootToRootCopy, /*OpIdx*/1, // Rm
35498 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
35499 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
35500 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35501 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35502 GIR_RootConstrainSelectedInstOperands,
35503 // GIR_Coverage, 478,
35504 GIR_EraseRootFromParent_Done,
35505 // Label 1828: @96986
35506 GIM_Try, /*On fail goto*//*Label 1829*/ GIMT_Encode4(97024), // Rule ID 479 //
35507 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
35508 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
35509 // (shl:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2LSLrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
35510 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2LSLrr),
35511 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
35512 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
35513 GIR_RootToRootCopy, /*OpIdx*/2, // Rm
35514 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
35515 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35516 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35517 GIR_RootConstrainSelectedInstOperands,
35518 // GIR_Coverage, 479,
35519 GIR_EraseRootFromParent_Done,
35520 // Label 1829: @97024
35521 GIM_Reject,
35522 // Label 1827: @97025
35523 GIM_Reject,
35524 // Label 22: @97026
35525 GIM_Try, /*On fail goto*//*Label 1830*/ GIMT_Encode4(97081), // Rule ID 481 //
35526 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
35527 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
35528 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
35529 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
35530 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
35531 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
35532 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
35533 // (srl:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2LSRrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
35534 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2LSRrr),
35535 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
35536 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
35537 GIR_RootToRootCopy, /*OpIdx*/2, // Rm
35538 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
35539 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35540 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35541 GIR_RootConstrainSelectedInstOperands,
35542 // GIR_Coverage, 481,
35543 GIR_EraseRootFromParent_Done,
35544 // Label 1830: @97081
35545 GIM_Reject,
35546 // Label 23: @97082
35547 GIM_Try, /*On fail goto*//*Label 1831*/ GIMT_Encode4(97310),
35548 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
35549 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
35550 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
35551 GIM_Try, /*On fail goto*//*Label 1832*/ GIMT_Encode4(97151), // Rule ID 201 //
35552 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
35553 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
35554 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
35555 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BSWAP),
35556 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
35557 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
35558 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 16,
35559 GIM_CheckIsSafeToFold, /*NumInsns*/1,
35560 // (sra:{ *:[i32] } (bswap:{ *:[i32] } GPR:{ *:[i32] }:$Rm), 16:{ *:[i32] }) => (REVSH:{ *:[i32] } GPR:{ *:[i32] }:$Rm)
35561 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::REVSH),
35562 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
35563 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
35564 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
35565 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35566 GIR_RootConstrainSelectedInstOperands,
35567 // GIR_Coverage, 201,
35568 GIR_EraseRootFromParent_Done,
35569 // Label 1832: @97151
35570 GIM_Try, /*On fail goto*//*Label 1833*/ GIMT_Encode4(97206), // Rule ID 335 //
35571 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsThumb_IsThumb1Only),
35572 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::tGPRRegClassID),
35573 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
35574 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BSWAP),
35575 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
35576 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::tGPRRegClassID),
35577 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 16,
35578 GIM_CheckIsSafeToFold, /*NumInsns*/1,
35579 // (sra:{ *:[i32] } (bswap:{ *:[i32] } tGPR:{ *:[i32] }:$Rm), 16:{ *:[i32] }) => (tREVSH:{ *:[i32] } tGPR:{ *:[i32] }:$Rm)
35580 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::tREVSH),
35581 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
35582 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
35583 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
35584 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35585 GIR_RootConstrainSelectedInstOperands,
35586 // GIR_Coverage, 335,
35587 GIR_EraseRootFromParent_Done,
35588 // Label 1833: @97206
35589 GIM_Try, /*On fail goto*//*Label 1834*/ GIMT_Encode4(97309),
35590 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
35591 GIM_Try, /*On fail goto*//*Label 1835*/ GIMT_Encode4(97266), // Rule ID 546 //
35592 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
35593 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
35594 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BSWAP),
35595 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
35596 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
35597 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 16,
35598 GIM_CheckIsSafeToFold, /*NumInsns*/1,
35599 // (sra:{ *:[i32] } (bswap:{ *:[i32] } rGPR:{ *:[i32] }:$Rm), 16:{ *:[i32] }) => (t2REVSH:{ *:[i32] } rGPR:{ *:[i32] }:$Rm)
35600 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2REVSH),
35601 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
35602 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
35603 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
35604 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35605 GIR_RootConstrainSelectedInstOperands,
35606 // GIR_Coverage, 546,
35607 GIR_EraseRootFromParent_Done,
35608 // Label 1835: @97266
35609 GIM_Try, /*On fail goto*//*Label 1836*/ GIMT_Encode4(97308), // Rule ID 483 //
35610 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
35611 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
35612 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
35613 // (sra:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2ASRrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
35614 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2ASRrr),
35615 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
35616 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
35617 GIR_RootToRootCopy, /*OpIdx*/2, // Rm
35618 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
35619 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35620 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35621 GIR_RootConstrainSelectedInstOperands,
35622 // GIR_Coverage, 483,
35623 GIR_EraseRootFromParent_Done,
35624 // Label 1836: @97308
35625 GIM_Reject,
35626 // Label 1834: @97309
35627 GIM_Reject,
35628 // Label 1831: @97310
35629 GIM_Reject,
35630 // Label 24: @97311
35631 GIM_Try, /*On fail goto*//*Label 1837*/ GIMT_Encode4(97592),
35632 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
35633 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
35634 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
35635 GIM_Try, /*On fail goto*//*Label 1838*/ GIMT_Encode4(97380), // Rule ID 200 //
35636 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
35637 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
35638 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
35639 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BSWAP),
35640 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
35641 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
35642 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 16,
35643 GIM_CheckIsSafeToFold, /*NumInsns*/1,
35644 // (rotr:{ *:[i32] } (bswap:{ *:[i32] } GPR:{ *:[i32] }:$Rm), 16:{ *:[i32] }) => (REV16:{ *:[i32] } GPR:{ *:[i32] }:$Rm)
35645 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::REV16),
35646 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
35647 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
35648 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
35649 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35650 GIR_RootConstrainSelectedInstOperands,
35651 // GIR_Coverage, 200,
35652 GIR_EraseRootFromParent_Done,
35653 // Label 1838: @97380
35654 GIM_Try, /*On fail goto*//*Label 1839*/ GIMT_Encode4(97435), // Rule ID 334 //
35655 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsThumb_IsThumb1Only),
35656 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::tGPRRegClassID),
35657 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
35658 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BSWAP),
35659 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
35660 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::tGPRRegClassID),
35661 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 16,
35662 GIM_CheckIsSafeToFold, /*NumInsns*/1,
35663 // (rotr:{ *:[i32] } (bswap:{ *:[i32] } tGPR:{ *:[i32] }:$Rm), 16:{ *:[i32] }) => (tREV16:{ *:[i32] } tGPR:{ *:[i32] }:$Rm)
35664 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::tREV16),
35665 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
35666 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
35667 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
35668 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35669 GIR_RootConstrainSelectedInstOperands,
35670 // GIR_Coverage, 334,
35671 GIR_EraseRootFromParent_Done,
35672 // Label 1839: @97435
35673 GIM_Try, /*On fail goto*//*Label 1840*/ GIMT_Encode4(97591),
35674 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
35675 GIM_Try, /*On fail goto*//*Label 1841*/ GIMT_Encode4(97495), // Rule ID 545 //
35676 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
35677 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
35678 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BSWAP),
35679 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
35680 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
35681 GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 16,
35682 GIM_CheckIsSafeToFold, /*NumInsns*/1,
35683 // (rotr:{ *:[i32] } (bswap:{ *:[i32] } rGPR:{ *:[i32] }:$Rm), 16:{ *:[i32] }) => (t2REV16:{ *:[i32] } rGPR:{ *:[i32] }:$Rm)
35684 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2REV16),
35685 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
35686 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
35687 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
35688 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35689 GIR_RootConstrainSelectedInstOperands,
35690 // GIR_Coverage, 545,
35691 GIR_EraseRootFromParent_Done,
35692 // Label 1841: @97495
35693 GIM_Try, /*On fail goto*//*Label 1842*/ GIMT_Encode4(97548), // Rule ID 484 //
35694 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
35695 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
35696 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
35697 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
35698 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm1_31),
35699 // MIs[1] Operand 1
35700 // No operand predicates
35701 GIM_CheckIsSafeToFold, /*NumInsns*/1,
35702 // (rotr:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_imm1_31>>:$imm) => (t2RORri:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$imm)
35703 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2RORri),
35704 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
35705 GIR_RootToRootCopy, /*OpIdx*/1, // Rm
35706 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
35707 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
35708 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35709 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35710 GIR_RootConstrainSelectedInstOperands,
35711 // GIR_Coverage, 484,
35712 GIR_EraseRootFromParent_Done,
35713 // Label 1842: @97548
35714 GIM_Try, /*On fail goto*//*Label 1843*/ GIMT_Encode4(97590), // Rule ID 485 //
35715 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
35716 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
35717 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
35718 // (rotr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2RORrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
35719 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2RORrr),
35720 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
35721 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
35722 GIR_RootToRootCopy, /*OpIdx*/2, // Rm
35723 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
35724 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35725 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35726 GIR_RootConstrainSelectedInstOperands,
35727 // GIR_Coverage, 485,
35728 GIR_EraseRootFromParent_Done,
35729 // Label 1843: @97590
35730 GIM_Reject,
35731 // Label 1840: @97591
35732 GIM_Reject,
35733 // Label 1837: @97592
35734 GIM_Reject,
35735 // Label 25: @97593
35736 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(8), GIMT_Encode2(16), /*)*//*default:*//*Label 1847*/ GIMT_Encode4(97834),
35737 /*GILLT_v4s32*//*Label 1844*/ GIMT_Encode4(97636), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
35738 /*GILLT_v8s16*//*Label 1845*/ GIMT_Encode4(97702), GIMT_Encode4(0), GIMT_Encode4(0),
35739 /*GILLT_v16s8*//*Label 1846*/ GIMT_Encode4(97768),
35740 // Label 1844: @97636
35741 GIM_Try, /*On fail goto*//*Label 1848*/ GIMT_Encode4(97701), // Rule ID 4579 //
35742 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
35743 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
35744 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
35745 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
35746 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
35747 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
35748 // (mulhu:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) => (MVE_VMULHu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
35749 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
35750 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
35751 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
35752 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMULHu32),
35753 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
35754 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
35755 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
35756 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
35757 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35758 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35759 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
35760 GIR_RootConstrainSelectedInstOperands,
35761 // GIR_Coverage, 4579,
35762 GIR_EraseRootFromParent_Done,
35763 // Label 1848: @97701
35764 GIM_Reject,
35765 // Label 1845: @97702
35766 GIM_Try, /*On fail goto*//*Label 1849*/ GIMT_Encode4(97767), // Rule ID 4575 //
35767 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
35768 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
35769 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
35770 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
35771 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
35772 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
35773 // (mulhu:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) => (MVE_VMULHu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
35774 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
35775 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
35776 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
35777 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMULHu16),
35778 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
35779 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
35780 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
35781 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
35782 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35783 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35784 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
35785 GIR_RootConstrainSelectedInstOperands,
35786 // GIR_Coverage, 4575,
35787 GIR_EraseRootFromParent_Done,
35788 // Label 1849: @97767
35789 GIM_Reject,
35790 // Label 1846: @97768
35791 GIM_Try, /*On fail goto*//*Label 1850*/ GIMT_Encode4(97833), // Rule ID 4571 //
35792 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
35793 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
35794 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
35795 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
35796 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
35797 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
35798 // (mulhu:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) => (MVE_VMULHu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
35799 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
35800 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
35801 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
35802 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMULHu8),
35803 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
35804 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
35805 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
35806 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
35807 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35808 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35809 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
35810 GIR_RootConstrainSelectedInstOperands,
35811 // GIR_Coverage, 4571,
35812 GIR_EraseRootFromParent_Done,
35813 // Label 1850: @97833
35814 GIM_Reject,
35815 // Label 1847: @97834
35816 GIM_Reject,
35817 // Label 26: @97835
35818 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(1), GIMT_Encode2(16), /*)*//*default:*//*Label 1855*/ GIMT_Encode4(98197),
35819 /*GILLT_s32*//*Label 1851*/ GIMT_Encode4(97906), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
35820 /*GILLT_v4s32*//*Label 1852*/ GIMT_Encode4(97999), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
35821 /*GILLT_v8s16*//*Label 1853*/ GIMT_Encode4(98065), GIMT_Encode4(0), GIMT_Encode4(0),
35822 /*GILLT_v16s8*//*Label 1854*/ GIMT_Encode4(98131),
35823 // Label 1851: @97906
35824 GIM_Try, /*On fail goto*//*Label 1856*/ GIMT_Encode4(97998),
35825 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
35826 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
35827 GIM_Try, /*On fail goto*//*Label 1857*/ GIMT_Encode4(97957), // Rule ID 178 //
35828 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
35829 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
35830 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
35831 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
35832 // (mulhs:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) => (SMMUL:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
35833 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::SMMUL),
35834 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
35835 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
35836 GIR_RootToRootCopy, /*OpIdx*/2, // Rm
35837 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
35838 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35839 GIR_RootConstrainSelectedInstOperands,
35840 // GIR_Coverage, 178,
35841 GIR_EraseRootFromParent_Done,
35842 // Label 1857: @97957
35843 GIM_Try, /*On fail goto*//*Label 1858*/ GIMT_Encode4(97997), // Rule ID 515 //
35844 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
35845 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
35846 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
35847 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
35848 // (mulhs:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SMMUL:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
35849 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2SMMUL),
35850 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
35851 GIR_RootToRootCopy, /*OpIdx*/1, // Rn
35852 GIR_RootToRootCopy, /*OpIdx*/2, // Rm
35853 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
35854 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35855 GIR_RootConstrainSelectedInstOperands,
35856 // GIR_Coverage, 515,
35857 GIR_EraseRootFromParent_Done,
35858 // Label 1858: @97997
35859 GIM_Reject,
35860 // Label 1856: @97998
35861 GIM_Reject,
35862 // Label 1852: @97999
35863 GIM_Try, /*On fail goto*//*Label 1859*/ GIMT_Encode4(98064), // Rule ID 4567 //
35864 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
35865 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
35866 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
35867 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
35868 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
35869 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
35870 // (mulhs:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) => (MVE_VMULHs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
35871 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
35872 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
35873 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
35874 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMULHs32),
35875 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
35876 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
35877 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
35878 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
35879 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35880 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35881 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
35882 GIR_RootConstrainSelectedInstOperands,
35883 // GIR_Coverage, 4567,
35884 GIR_EraseRootFromParent_Done,
35885 // Label 1859: @98064
35886 GIM_Reject,
35887 // Label 1853: @98065
35888 GIM_Try, /*On fail goto*//*Label 1860*/ GIMT_Encode4(98130), // Rule ID 4563 //
35889 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
35890 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
35891 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
35892 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
35893 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
35894 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
35895 // (mulhs:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) => (MVE_VMULHs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
35896 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
35897 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
35898 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
35899 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMULHs16),
35900 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
35901 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
35902 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
35903 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
35904 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35905 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35906 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
35907 GIR_RootConstrainSelectedInstOperands,
35908 // GIR_Coverage, 4563,
35909 GIR_EraseRootFromParent_Done,
35910 // Label 1860: @98130
35911 GIM_Reject,
35912 // Label 1854: @98131
35913 GIM_Try, /*On fail goto*//*Label 1861*/ GIMT_Encode4(98196), // Rule ID 4560 //
35914 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
35915 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
35916 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
35917 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
35918 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
35919 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
35920 // (mulhs:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) => (MVE_VMULHs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
35921 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
35922 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
35923 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
35924 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMULHs8),
35925 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
35926 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
35927 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
35928 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
35929 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35930 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35931 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
35932 GIR_RootConstrainSelectedInstOperands,
35933 // GIR_Coverage, 4560,
35934 GIR_EraseRootFromParent_Done,
35935 // Label 1861: @98196
35936 GIM_Reject,
35937 // Label 1855: @98197
35938 GIM_Reject,
35939 // Label 27: @98198
35940 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(2), GIMT_Encode2(16), /*)*//*default:*//*Label 1870*/ GIMT_Encode4(98836),
35941 /*GILLT_s64*//*Label 1862*/ GIMT_Encode4(98265), GIMT_Encode4(0),
35942 /*GILLT_v2s32*//*Label 1863*/ GIMT_Encode4(98312),
35943 /*GILLT_v2s64*//*Label 1864*/ GIMT_Encode4(98359), GIMT_Encode4(0),
35944 /*GILLT_v4s16*//*Label 1865*/ GIMT_Encode4(98406),
35945 /*GILLT_v4s32*//*Label 1866*/ GIMT_Encode4(98453), GIMT_Encode4(0), GIMT_Encode4(0),
35946 /*GILLT_v8s8*//*Label 1867*/ GIMT_Encode4(98565),
35947 /*GILLT_v8s16*//*Label 1868*/ GIMT_Encode4(98612), GIMT_Encode4(0), GIMT_Encode4(0),
35948 /*GILLT_v16s8*//*Label 1869*/ GIMT_Encode4(98724),
35949 // Label 1862: @98265
35950 GIM_Try, /*On fail goto*//*Label 1871*/ GIMT_Encode4(98311), // Rule ID 847 //
35951 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
35952 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
35953 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
35954 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
35955 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
35956 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
35957 // (uaddsat:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm) => (VQADDuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
35958 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQADDuv1i64),
35959 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
35960 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
35961 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
35962 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
35963 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35964 GIR_RootConstrainSelectedInstOperands,
35965 // GIR_Coverage, 847,
35966 GIR_EraseRootFromParent_Done,
35967 // Label 1871: @98311
35968 GIM_Reject,
35969 // Label 1863: @98312
35970 GIM_Try, /*On fail goto*//*Label 1872*/ GIMT_Encode4(98358), // Rule ID 842 //
35971 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
35972 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
35973 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
35974 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
35975 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
35976 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
35977 // (uaddsat:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VQADDuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
35978 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQADDuv2i32),
35979 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
35980 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
35981 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
35982 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
35983 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
35984 GIR_RootConstrainSelectedInstOperands,
35985 // GIR_Coverage, 842,
35986 GIR_EraseRootFromParent_Done,
35987 // Label 1872: @98358
35988 GIM_Reject,
35989 // Label 1864: @98359
35990 GIM_Try, /*On fail goto*//*Label 1873*/ GIMT_Encode4(98405), // Rule ID 848 //
35991 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
35992 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
35993 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s64,
35994 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
35995 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
35996 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
35997 // (uaddsat:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm) => (VQADDuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
35998 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQADDuv2i64),
35999 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
36000 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
36001 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
36002 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
36003 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36004 GIR_RootConstrainSelectedInstOperands,
36005 // GIR_Coverage, 848,
36006 GIR_EraseRootFromParent_Done,
36007 // Label 1873: @98405
36008 GIM_Reject,
36009 // Label 1865: @98406
36010 GIM_Try, /*On fail goto*//*Label 1874*/ GIMT_Encode4(98452), // Rule ID 841 //
36011 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
36012 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
36013 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
36014 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
36015 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
36016 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
36017 // (uaddsat:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VQADDuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
36018 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQADDuv4i16),
36019 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
36020 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
36021 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
36022 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
36023 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36024 GIR_RootConstrainSelectedInstOperands,
36025 // GIR_Coverage, 841,
36026 GIR_EraseRootFromParent_Done,
36027 // Label 1874: @98452
36028 GIM_Reject,
36029 // Label 1866: @98453
36030 GIM_Try, /*On fail goto*//*Label 1875*/ GIMT_Encode4(98564),
36031 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
36032 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
36033 GIM_Try, /*On fail goto*//*Label 1876*/ GIMT_Encode4(98504), // Rule ID 844 //
36034 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
36035 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
36036 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
36037 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
36038 // (uaddsat:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VQADDuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
36039 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQADDuv4i32),
36040 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
36041 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
36042 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
36043 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
36044 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36045 GIR_RootConstrainSelectedInstOperands,
36046 // GIR_Coverage, 844,
36047 GIR_EraseRootFromParent_Done,
36048 // Label 1876: @98504
36049 GIM_Try, /*On fail goto*//*Label 1877*/ GIMT_Encode4(98563), // Rule ID 3624 //
36050 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
36051 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
36052 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
36053 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
36054 // (uaddsat:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) => (MVE_VQADDu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
36055 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
36056 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
36057 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
36058 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQADDu32),
36059 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
36060 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
36061 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
36062 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
36063 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36064 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36065 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
36066 GIR_RootConstrainSelectedInstOperands,
36067 // GIR_Coverage, 3624,
36068 GIR_EraseRootFromParent_Done,
36069 // Label 1877: @98563
36070 GIM_Reject,
36071 // Label 1875: @98564
36072 GIM_Reject,
36073 // Label 1867: @98565
36074 GIM_Try, /*On fail goto*//*Label 1878*/ GIMT_Encode4(98611), // Rule ID 845 //
36075 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
36076 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s8,
36077 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
36078 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
36079 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
36080 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
36081 // (uaddsat:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VQADDuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
36082 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQADDuv8i8),
36083 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
36084 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
36085 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
36086 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
36087 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36088 GIR_RootConstrainSelectedInstOperands,
36089 // GIR_Coverage, 845,
36090 GIR_EraseRootFromParent_Done,
36091 // Label 1878: @98611
36092 GIM_Reject,
36093 // Label 1868: @98612
36094 GIM_Try, /*On fail goto*//*Label 1879*/ GIMT_Encode4(98723),
36095 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
36096 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
36097 GIM_Try, /*On fail goto*//*Label 1880*/ GIMT_Encode4(98663), // Rule ID 843 //
36098 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
36099 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
36100 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
36101 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
36102 // (uaddsat:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VQADDuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
36103 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQADDuv8i16),
36104 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
36105 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
36106 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
36107 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
36108 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36109 GIR_RootConstrainSelectedInstOperands,
36110 // GIR_Coverage, 843,
36111 GIR_EraseRootFromParent_Done,
36112 // Label 1880: @98663
36113 GIM_Try, /*On fail goto*//*Label 1881*/ GIMT_Encode4(98722), // Rule ID 3621 //
36114 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
36115 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
36116 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
36117 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
36118 // (uaddsat:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) => (MVE_VQADDu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
36119 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
36120 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
36121 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
36122 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQADDu16),
36123 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
36124 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
36125 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
36126 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
36127 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36128 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36129 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
36130 GIR_RootConstrainSelectedInstOperands,
36131 // GIR_Coverage, 3621,
36132 GIR_EraseRootFromParent_Done,
36133 // Label 1881: @98722
36134 GIM_Reject,
36135 // Label 1879: @98723
36136 GIM_Reject,
36137 // Label 1869: @98724
36138 GIM_Try, /*On fail goto*//*Label 1882*/ GIMT_Encode4(98835),
36139 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
36140 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
36141 GIM_Try, /*On fail goto*//*Label 1883*/ GIMT_Encode4(98775), // Rule ID 846 //
36142 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
36143 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
36144 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
36145 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
36146 // (uaddsat:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VQADDuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
36147 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQADDuv16i8),
36148 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
36149 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
36150 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
36151 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
36152 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36153 GIR_RootConstrainSelectedInstOperands,
36154 // GIR_Coverage, 846,
36155 GIR_EraseRootFromParent_Done,
36156 // Label 1883: @98775
36157 GIM_Try, /*On fail goto*//*Label 1884*/ GIMT_Encode4(98834), // Rule ID 3618 //
36158 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
36159 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
36160 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
36161 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
36162 // (uaddsat:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) => (MVE_VQADDu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
36163 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
36164 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
36165 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
36166 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQADDu8),
36167 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
36168 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
36169 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
36170 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
36171 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36172 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36173 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
36174 GIR_RootConstrainSelectedInstOperands,
36175 // GIR_Coverage, 3618,
36176 GIR_EraseRootFromParent_Done,
36177 // Label 1884: @98834
36178 GIM_Reject,
36179 // Label 1882: @98835
36180 GIM_Reject,
36181 // Label 1870: @98836
36182 GIM_Reject,
36183 // Label 28: @98837
36184 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(1), GIMT_Encode2(16), /*)*//*default:*//*Label 1894*/ GIMT_Encode4(100130),
36185 /*GILLT_s32*//*Label 1885*/ GIMT_Encode4(98908),
36186 /*GILLT_s64*//*Label 1886*/ GIMT_Encode4(99249), GIMT_Encode4(0),
36187 /*GILLT_v2s32*//*Label 1887*/ GIMT_Encode4(99296),
36188 /*GILLT_v2s64*//*Label 1888*/ GIMT_Encode4(99343), GIMT_Encode4(0),
36189 /*GILLT_v4s16*//*Label 1889*/ GIMT_Encode4(99544),
36190 /*GILLT_v4s32*//*Label 1890*/ GIMT_Encode4(99591), GIMT_Encode4(0), GIMT_Encode4(0),
36191 /*GILLT_v8s8*//*Label 1891*/ GIMT_Encode4(99859),
36192 /*GILLT_v8s16*//*Label 1892*/ GIMT_Encode4(99906), GIMT_Encode4(0), GIMT_Encode4(0),
36193 /*GILLT_v16s8*//*Label 1893*/ GIMT_Encode4(100018),
36194 // Label 1885: @98908
36195 GIM_Try, /*On fail goto*//*Label 1895*/ GIMT_Encode4(99248),
36196 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
36197 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
36198 GIM_Try, /*On fail goto*//*Label 1896*/ GIMT_Encode4(98981), // Rule ID 5771 //
36199 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV5TE_IsARM),
36200 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
36201 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
36202 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SADDSAT),
36203 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
36204 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
36205 // MIs[1] Rn
36206 GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
36207 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
36208 GIM_CheckIsSafeToFold, /*NumInsns*/1,
36209 // (saddsat:{ *:[i32] } (saddsat:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rn), rGPR:{ *:[i32] }:$Rm) => (QDADD:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
36210 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::QDADD),
36211 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
36212 GIR_RootToRootCopy, /*OpIdx*/2, // Rm
36213 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
36214 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
36215 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36216 GIR_RootConstrainSelectedInstOperands,
36217 // GIR_Coverage, 5771,
36218 GIR_EraseRootFromParent_Done,
36219 // Label 1896: @98981
36220 GIM_Try, /*On fail goto*//*Label 1897*/ GIMT_Encode4(99043), // Rule ID 5805 //
36221 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
36222 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
36223 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
36224 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SADDSAT),
36225 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
36226 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
36227 // MIs[1] Rn
36228 GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
36229 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
36230 GIM_CheckIsSafeToFold, /*NumInsns*/1,
36231 // (saddsat:{ *:[i32] } (saddsat:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rn), rGPR:{ *:[i32] }:$Rm) => (t2QDADD:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
36232 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2QDADD),
36233 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
36234 GIR_RootToRootCopy, /*OpIdx*/2, // Rm
36235 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
36236 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
36237 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36238 GIR_RootConstrainSelectedInstOperands,
36239 // GIR_Coverage, 5805,
36240 GIR_EraseRootFromParent_Done,
36241 // Label 1897: @99043
36242 GIM_Try, /*On fail goto*//*Label 1898*/ GIMT_Encode4(99105), // Rule ID 1894 //
36243 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV5TE_IsARM),
36244 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
36245 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
36246 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
36247 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SADDSAT),
36248 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
36249 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
36250 // MIs[1] Rn
36251 GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
36252 GIM_CheckIsSafeToFold, /*NumInsns*/1,
36253 // (saddsat:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (saddsat:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rn)) => (QDADD:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
36254 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::QDADD),
36255 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
36256 GIR_RootToRootCopy, /*OpIdx*/1, // Rm
36257 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
36258 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
36259 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36260 GIR_RootConstrainSelectedInstOperands,
36261 // GIR_Coverage, 1894,
36262 GIR_EraseRootFromParent_Done,
36263 // Label 1898: @99105
36264 GIM_Try, /*On fail goto*//*Label 1899*/ GIMT_Encode4(99167), // Rule ID 2143 //
36265 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
36266 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
36267 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
36268 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
36269 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SADDSAT),
36270 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
36271 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
36272 // MIs[1] Rn
36273 GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
36274 GIM_CheckIsSafeToFold, /*NumInsns*/1,
36275 // (saddsat:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (saddsat:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rn)) => (t2QDADD:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
36276 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2QDADD),
36277 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
36278 GIR_RootToRootCopy, /*OpIdx*/1, // Rm
36279 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
36280 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
36281 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36282 GIR_RootConstrainSelectedInstOperands,
36283 // GIR_Coverage, 2143,
36284 GIR_EraseRootFromParent_Done,
36285 // Label 1899: @99167
36286 GIM_Try, /*On fail goto*//*Label 1900*/ GIMT_Encode4(99207), // Rule ID 1892 //
36287 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV5TE_IsARM),
36288 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
36289 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
36290 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
36291 // (saddsat:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b) => (QADD:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b)
36292 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::QADD),
36293 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
36294 GIR_RootToRootCopy, /*OpIdx*/1, // a
36295 GIR_RootToRootCopy, /*OpIdx*/2, // b
36296 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
36297 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36298 GIR_RootConstrainSelectedInstOperands,
36299 // GIR_Coverage, 1892,
36300 GIR_EraseRootFromParent_Done,
36301 // Label 1900: @99207
36302 GIM_Try, /*On fail goto*//*Label 1901*/ GIMT_Encode4(99247), // Rule ID 2141 //
36303 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
36304 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
36305 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
36306 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
36307 // (saddsat:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn) => (t2QADD:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
36308 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2QADD),
36309 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
36310 GIR_RootToRootCopy, /*OpIdx*/1, // Rm
36311 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
36312 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
36313 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36314 GIR_RootConstrainSelectedInstOperands,
36315 // GIR_Coverage, 2141,
36316 GIR_EraseRootFromParent_Done,
36317 // Label 1901: @99247
36318 GIM_Reject,
36319 // Label 1895: @99248
36320 GIM_Reject,
36321 // Label 1886: @99249
36322 GIM_Try, /*On fail goto*//*Label 1902*/ GIMT_Encode4(99295), // Rule ID 839 //
36323 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
36324 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
36325 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
36326 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
36327 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
36328 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
36329 // (saddsat:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm) => (VQADDsv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
36330 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQADDsv1i64),
36331 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
36332 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
36333 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
36334 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
36335 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36336 GIR_RootConstrainSelectedInstOperands,
36337 // GIR_Coverage, 839,
36338 GIR_EraseRootFromParent_Done,
36339 // Label 1902: @99295
36340 GIM_Reject,
36341 // Label 1887: @99296
36342 GIM_Try, /*On fail goto*//*Label 1903*/ GIMT_Encode4(99342), // Rule ID 834 //
36343 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
36344 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
36345 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
36346 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
36347 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
36348 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
36349 // (saddsat:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VQADDsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
36350 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQADDsv2i32),
36351 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
36352 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
36353 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
36354 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
36355 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36356 GIR_RootConstrainSelectedInstOperands,
36357 // GIR_Coverage, 834,
36358 GIR_EraseRootFromParent_Done,
36359 // Label 1903: @99342
36360 GIM_Reject,
36361 // Label 1888: @99343
36362 GIM_Try, /*On fail goto*//*Label 1904*/ GIMT_Encode4(99543),
36363 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
36364 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s64,
36365 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
36366 GIM_Try, /*On fail goto*//*Label 1905*/ GIMT_Encode4(99432), // Rule ID 5862 //
36367 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
36368 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
36369 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTRINSIC),
36370 GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
36371 GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqdmull),
36372 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s32,
36373 GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v2s32,
36374 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
36375 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
36376 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
36377 GIM_CheckIsSafeToFold, /*NumInsns*/1,
36378 // (saddsat:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i64] } 3474:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm), QPR:{ *:[v2i64] }:$src1) => (VQDMLALv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
36379 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQDMLALv2i64),
36380 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
36381 GIR_RootToRootCopy, /*OpIdx*/2, // src1
36382 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
36383 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
36384 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
36385 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36386 GIR_RootConstrainSelectedInstOperands,
36387 // GIR_Coverage, 5862,
36388 GIR_EraseRootFromParent_Done,
36389 // Label 1905: @99432
36390 GIM_Try, /*On fail goto*//*Label 1906*/ GIMT_Encode4(99506), // Rule ID 2486 //
36391 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
36392 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
36393 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
36394 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTRINSIC),
36395 GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
36396 GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqdmull),
36397 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s32,
36398 GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v2s32,
36399 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
36400 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
36401 GIM_CheckIsSafeToFold, /*NumInsns*/1,
36402 // (saddsat:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, (intrinsic_wo_chain:{ *:[v2i64] } 3474:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)) => (VQDMLALv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
36403 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQDMLALv2i64),
36404 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
36405 GIR_RootToRootCopy, /*OpIdx*/1, // src1
36406 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
36407 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
36408 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
36409 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36410 GIR_RootConstrainSelectedInstOperands,
36411 // GIR_Coverage, 2486,
36412 GIR_EraseRootFromParent_Done,
36413 // Label 1906: @99506
36414 GIM_Try, /*On fail goto*//*Label 1907*/ GIMT_Encode4(99542), // Rule ID 840 //
36415 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
36416 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
36417 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
36418 // (saddsat:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm) => (VQADDsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
36419 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQADDsv2i64),
36420 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
36421 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
36422 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
36423 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
36424 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36425 GIR_RootConstrainSelectedInstOperands,
36426 // GIR_Coverage, 840,
36427 GIR_EraseRootFromParent_Done,
36428 // Label 1907: @99542
36429 GIM_Reject,
36430 // Label 1904: @99543
36431 GIM_Reject,
36432 // Label 1889: @99544
36433 GIM_Try, /*On fail goto*//*Label 1908*/ GIMT_Encode4(99590), // Rule ID 833 //
36434 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
36435 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
36436 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
36437 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
36438 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
36439 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
36440 // (saddsat:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VQADDsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
36441 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQADDsv4i16),
36442 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
36443 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
36444 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
36445 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
36446 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36447 GIR_RootConstrainSelectedInstOperands,
36448 // GIR_Coverage, 833,
36449 GIR_EraseRootFromParent_Done,
36450 // Label 1908: @99590
36451 GIM_Reject,
36452 // Label 1890: @99591
36453 GIM_Try, /*On fail goto*//*Label 1909*/ GIMT_Encode4(99858),
36454 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
36455 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
36456 GIM_Try, /*On fail goto*//*Label 1910*/ GIMT_Encode4(99680), // Rule ID 5861 //
36457 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
36458 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
36459 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
36460 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTRINSIC),
36461 GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
36462 GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqdmull),
36463 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
36464 GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v4s16,
36465 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
36466 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
36467 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
36468 GIM_CheckIsSafeToFold, /*NumInsns*/1,
36469 // (saddsat:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i32] } 3474:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm), QPR:{ *:[v4i32] }:$src1) => (VQDMLALv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
36470 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQDMLALv4i32),
36471 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
36472 GIR_RootToRootCopy, /*OpIdx*/2, // src1
36473 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
36474 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
36475 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
36476 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36477 GIR_RootConstrainSelectedInstOperands,
36478 // GIR_Coverage, 5861,
36479 GIR_EraseRootFromParent_Done,
36480 // Label 1910: @99680
36481 GIM_Try, /*On fail goto*//*Label 1911*/ GIMT_Encode4(99758), // Rule ID 2485 //
36482 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
36483 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
36484 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
36485 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
36486 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTRINSIC),
36487 GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
36488 GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqdmull),
36489 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
36490 GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v4s16,
36491 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
36492 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
36493 GIM_CheckIsSafeToFold, /*NumInsns*/1,
36494 // (saddsat:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (intrinsic_wo_chain:{ *:[v4i32] } 3474:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)) => (VQDMLALv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
36495 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQDMLALv4i32),
36496 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
36497 GIR_RootToRootCopy, /*OpIdx*/1, // src1
36498 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
36499 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
36500 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
36501 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36502 GIR_RootConstrainSelectedInstOperands,
36503 // GIR_Coverage, 2485,
36504 GIR_EraseRootFromParent_Done,
36505 // Label 1911: @99758
36506 GIM_Try, /*On fail goto*//*Label 1912*/ GIMT_Encode4(99798), // Rule ID 836 //
36507 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
36508 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
36509 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
36510 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
36511 // (saddsat:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VQADDsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
36512 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQADDsv4i32),
36513 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
36514 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
36515 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
36516 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
36517 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36518 GIR_RootConstrainSelectedInstOperands,
36519 // GIR_Coverage, 836,
36520 GIR_EraseRootFromParent_Done,
36521 // Label 1912: @99798
36522 GIM_Try, /*On fail goto*//*Label 1913*/ GIMT_Encode4(99857), // Rule ID 3615 //
36523 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
36524 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
36525 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
36526 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
36527 // (saddsat:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) => (MVE_VQADDs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
36528 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
36529 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
36530 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
36531 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQADDs32),
36532 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
36533 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
36534 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
36535 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
36536 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36537 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36538 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
36539 GIR_RootConstrainSelectedInstOperands,
36540 // GIR_Coverage, 3615,
36541 GIR_EraseRootFromParent_Done,
36542 // Label 1913: @99857
36543 GIM_Reject,
36544 // Label 1909: @99858
36545 GIM_Reject,
36546 // Label 1891: @99859
36547 GIM_Try, /*On fail goto*//*Label 1914*/ GIMT_Encode4(99905), // Rule ID 837 //
36548 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
36549 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s8,
36550 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
36551 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
36552 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
36553 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
36554 // (saddsat:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VQADDsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
36555 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQADDsv8i8),
36556 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
36557 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
36558 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
36559 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
36560 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36561 GIR_RootConstrainSelectedInstOperands,
36562 // GIR_Coverage, 837,
36563 GIR_EraseRootFromParent_Done,
36564 // Label 1914: @99905
36565 GIM_Reject,
36566 // Label 1892: @99906
36567 GIM_Try, /*On fail goto*//*Label 1915*/ GIMT_Encode4(100017),
36568 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
36569 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
36570 GIM_Try, /*On fail goto*//*Label 1916*/ GIMT_Encode4(99957), // Rule ID 835 //
36571 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
36572 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
36573 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
36574 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
36575 // (saddsat:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VQADDsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
36576 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQADDsv8i16),
36577 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
36578 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
36579 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
36580 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
36581 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36582 GIR_RootConstrainSelectedInstOperands,
36583 // GIR_Coverage, 835,
36584 GIR_EraseRootFromParent_Done,
36585 // Label 1916: @99957
36586 GIM_Try, /*On fail goto*//*Label 1917*/ GIMT_Encode4(100016), // Rule ID 3612 //
36587 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
36588 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
36589 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
36590 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
36591 // (saddsat:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) => (MVE_VQADDs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
36592 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
36593 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
36594 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
36595 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQADDs16),
36596 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
36597 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
36598 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
36599 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
36600 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36601 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36602 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
36603 GIR_RootConstrainSelectedInstOperands,
36604 // GIR_Coverage, 3612,
36605 GIR_EraseRootFromParent_Done,
36606 // Label 1917: @100016
36607 GIM_Reject,
36608 // Label 1915: @100017
36609 GIM_Reject,
36610 // Label 1893: @100018
36611 GIM_Try, /*On fail goto*//*Label 1918*/ GIMT_Encode4(100129),
36612 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
36613 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
36614 GIM_Try, /*On fail goto*//*Label 1919*/ GIMT_Encode4(100069), // Rule ID 838 //
36615 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
36616 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
36617 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
36618 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
36619 // (saddsat:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VQADDsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
36620 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQADDsv16i8),
36621 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
36622 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
36623 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
36624 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
36625 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36626 GIR_RootConstrainSelectedInstOperands,
36627 // GIR_Coverage, 838,
36628 GIR_EraseRootFromParent_Done,
36629 // Label 1919: @100069
36630 GIM_Try, /*On fail goto*//*Label 1920*/ GIMT_Encode4(100128), // Rule ID 3609 //
36631 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
36632 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
36633 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
36634 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
36635 // (saddsat:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) => (MVE_VQADDs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
36636 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
36637 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
36638 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
36639 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQADDs8),
36640 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
36641 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
36642 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
36643 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
36644 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36645 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36646 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
36647 GIR_RootConstrainSelectedInstOperands,
36648 // GIR_Coverage, 3609,
36649 GIR_EraseRootFromParent_Done,
36650 // Label 1920: @100128
36651 GIM_Reject,
36652 // Label 1918: @100129
36653 GIM_Reject,
36654 // Label 1894: @100130
36655 GIM_Reject,
36656 // Label 29: @100131
36657 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(2), GIMT_Encode2(16), /*)*//*default:*//*Label 1929*/ GIMT_Encode4(100769),
36658 /*GILLT_s64*//*Label 1921*/ GIMT_Encode4(100198), GIMT_Encode4(0),
36659 /*GILLT_v2s32*//*Label 1922*/ GIMT_Encode4(100245),
36660 /*GILLT_v2s64*//*Label 1923*/ GIMT_Encode4(100292), GIMT_Encode4(0),
36661 /*GILLT_v4s16*//*Label 1924*/ GIMT_Encode4(100339),
36662 /*GILLT_v4s32*//*Label 1925*/ GIMT_Encode4(100386), GIMT_Encode4(0), GIMT_Encode4(0),
36663 /*GILLT_v8s8*//*Label 1926*/ GIMT_Encode4(100498),
36664 /*GILLT_v8s16*//*Label 1927*/ GIMT_Encode4(100545), GIMT_Encode4(0), GIMT_Encode4(0),
36665 /*GILLT_v16s8*//*Label 1928*/ GIMT_Encode4(100657),
36666 // Label 1921: @100198
36667 GIM_Try, /*On fail goto*//*Label 1930*/ GIMT_Encode4(100244), // Rule ID 1039 //
36668 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
36669 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
36670 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
36671 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
36672 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
36673 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
36674 // (usubsat:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm) => (VQSUBuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
36675 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQSUBuv1i64),
36676 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
36677 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
36678 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
36679 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
36680 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36681 GIR_RootConstrainSelectedInstOperands,
36682 // GIR_Coverage, 1039,
36683 GIR_EraseRootFromParent_Done,
36684 // Label 1930: @100244
36685 GIM_Reject,
36686 // Label 1922: @100245
36687 GIM_Try, /*On fail goto*//*Label 1931*/ GIMT_Encode4(100291), // Rule ID 1034 //
36688 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
36689 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
36690 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
36691 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
36692 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
36693 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
36694 // (usubsat:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VQSUBuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
36695 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQSUBuv2i32),
36696 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
36697 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
36698 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
36699 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
36700 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36701 GIR_RootConstrainSelectedInstOperands,
36702 // GIR_Coverage, 1034,
36703 GIR_EraseRootFromParent_Done,
36704 // Label 1931: @100291
36705 GIM_Reject,
36706 // Label 1923: @100292
36707 GIM_Try, /*On fail goto*//*Label 1932*/ GIMT_Encode4(100338), // Rule ID 1040 //
36708 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
36709 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
36710 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s64,
36711 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
36712 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
36713 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
36714 // (usubsat:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm) => (VQSUBuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
36715 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQSUBuv2i64),
36716 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
36717 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
36718 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
36719 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
36720 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36721 GIR_RootConstrainSelectedInstOperands,
36722 // GIR_Coverage, 1040,
36723 GIR_EraseRootFromParent_Done,
36724 // Label 1932: @100338
36725 GIM_Reject,
36726 // Label 1924: @100339
36727 GIM_Try, /*On fail goto*//*Label 1933*/ GIMT_Encode4(100385), // Rule ID 1033 //
36728 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
36729 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
36730 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
36731 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
36732 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
36733 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
36734 // (usubsat:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VQSUBuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
36735 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQSUBuv4i16),
36736 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
36737 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
36738 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
36739 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
36740 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36741 GIR_RootConstrainSelectedInstOperands,
36742 // GIR_Coverage, 1033,
36743 GIR_EraseRootFromParent_Done,
36744 // Label 1933: @100385
36745 GIM_Reject,
36746 // Label 1925: @100386
36747 GIM_Try, /*On fail goto*//*Label 1934*/ GIMT_Encode4(100497),
36748 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
36749 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
36750 GIM_Try, /*On fail goto*//*Label 1935*/ GIMT_Encode4(100437), // Rule ID 1036 //
36751 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
36752 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
36753 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
36754 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
36755 // (usubsat:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VQSUBuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
36756 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQSUBuv4i32),
36757 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
36758 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
36759 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
36760 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
36761 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36762 GIR_RootConstrainSelectedInstOperands,
36763 // GIR_Coverage, 1036,
36764 GIR_EraseRootFromParent_Done,
36765 // Label 1935: @100437
36766 GIM_Try, /*On fail goto*//*Label 1936*/ GIMT_Encode4(100496), // Rule ID 3642 //
36767 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
36768 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
36769 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
36770 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
36771 // (usubsat:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) => (MVE_VQSUBu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
36772 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
36773 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
36774 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
36775 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQSUBu32),
36776 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
36777 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
36778 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
36779 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
36780 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36781 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36782 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
36783 GIR_RootConstrainSelectedInstOperands,
36784 // GIR_Coverage, 3642,
36785 GIR_EraseRootFromParent_Done,
36786 // Label 1936: @100496
36787 GIM_Reject,
36788 // Label 1934: @100497
36789 GIM_Reject,
36790 // Label 1926: @100498
36791 GIM_Try, /*On fail goto*//*Label 1937*/ GIMT_Encode4(100544), // Rule ID 1037 //
36792 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
36793 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s8,
36794 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
36795 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
36796 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
36797 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
36798 // (usubsat:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VQSUBuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
36799 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQSUBuv8i8),
36800 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
36801 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
36802 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
36803 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
36804 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36805 GIR_RootConstrainSelectedInstOperands,
36806 // GIR_Coverage, 1037,
36807 GIR_EraseRootFromParent_Done,
36808 // Label 1937: @100544
36809 GIM_Reject,
36810 // Label 1927: @100545
36811 GIM_Try, /*On fail goto*//*Label 1938*/ GIMT_Encode4(100656),
36812 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
36813 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
36814 GIM_Try, /*On fail goto*//*Label 1939*/ GIMT_Encode4(100596), // Rule ID 1035 //
36815 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
36816 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
36817 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
36818 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
36819 // (usubsat:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VQSUBuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
36820 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQSUBuv8i16),
36821 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
36822 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
36823 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
36824 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
36825 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36826 GIR_RootConstrainSelectedInstOperands,
36827 // GIR_Coverage, 1035,
36828 GIR_EraseRootFromParent_Done,
36829 // Label 1939: @100596
36830 GIM_Try, /*On fail goto*//*Label 1940*/ GIMT_Encode4(100655), // Rule ID 3639 //
36831 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
36832 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
36833 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
36834 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
36835 // (usubsat:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) => (MVE_VQSUBu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
36836 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
36837 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
36838 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
36839 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQSUBu16),
36840 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
36841 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
36842 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
36843 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
36844 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36845 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36846 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
36847 GIR_RootConstrainSelectedInstOperands,
36848 // GIR_Coverage, 3639,
36849 GIR_EraseRootFromParent_Done,
36850 // Label 1940: @100655
36851 GIM_Reject,
36852 // Label 1938: @100656
36853 GIM_Reject,
36854 // Label 1928: @100657
36855 GIM_Try, /*On fail goto*//*Label 1941*/ GIMT_Encode4(100768),
36856 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
36857 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
36858 GIM_Try, /*On fail goto*//*Label 1942*/ GIMT_Encode4(100708), // Rule ID 1038 //
36859 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
36860 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
36861 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
36862 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
36863 // (usubsat:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VQSUBuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
36864 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQSUBuv16i8),
36865 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
36866 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
36867 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
36868 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
36869 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36870 GIR_RootConstrainSelectedInstOperands,
36871 // GIR_Coverage, 1038,
36872 GIR_EraseRootFromParent_Done,
36873 // Label 1942: @100708
36874 GIM_Try, /*On fail goto*//*Label 1943*/ GIMT_Encode4(100767), // Rule ID 3636 //
36875 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
36876 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
36877 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
36878 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
36879 // (usubsat:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) => (MVE_VQSUBu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
36880 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
36881 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
36882 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
36883 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQSUBu8),
36884 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
36885 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
36886 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
36887 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
36888 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36889 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36890 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
36891 GIR_RootConstrainSelectedInstOperands,
36892 // GIR_Coverage, 3636,
36893 GIR_EraseRootFromParent_Done,
36894 // Label 1943: @100767
36895 GIM_Reject,
36896 // Label 1941: @100768
36897 GIM_Reject,
36898 // Label 1929: @100769
36899 GIM_Reject,
36900 // Label 30: @100770
36901 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(1), GIMT_Encode2(16), /*)*//*default:*//*Label 1953*/ GIMT_Encode4(101783),
36902 /*GILLT_s32*//*Label 1944*/ GIMT_Encode4(100841),
36903 /*GILLT_s64*//*Label 1945*/ GIMT_Encode4(101058), GIMT_Encode4(0),
36904 /*GILLT_v2s32*//*Label 1946*/ GIMT_Encode4(101105),
36905 /*GILLT_v2s64*//*Label 1947*/ GIMT_Encode4(101152), GIMT_Encode4(0),
36906 /*GILLT_v4s16*//*Label 1948*/ GIMT_Encode4(101275),
36907 /*GILLT_v4s32*//*Label 1949*/ GIMT_Encode4(101322), GIMT_Encode4(0), GIMT_Encode4(0),
36908 /*GILLT_v8s8*//*Label 1950*/ GIMT_Encode4(101512),
36909 /*GILLT_v8s16*//*Label 1951*/ GIMT_Encode4(101559), GIMT_Encode4(0), GIMT_Encode4(0),
36910 /*GILLT_v16s8*//*Label 1952*/ GIMT_Encode4(101671),
36911 // Label 1944: @100841
36912 GIM_Try, /*On fail goto*//*Label 1954*/ GIMT_Encode4(101057),
36913 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
36914 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
36915 GIM_Try, /*On fail goto*//*Label 1955*/ GIMT_Encode4(100914), // Rule ID 1895 //
36916 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV5TE_IsARM),
36917 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
36918 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
36919 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
36920 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SADDSAT),
36921 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
36922 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
36923 // MIs[1] Rn
36924 GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
36925 GIM_CheckIsSafeToFold, /*NumInsns*/1,
36926 // (ssubsat:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (saddsat:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rn)) => (QDSUB:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
36927 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::QDSUB),
36928 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
36929 GIR_RootToRootCopy, /*OpIdx*/1, // Rm
36930 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
36931 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
36932 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36933 GIR_RootConstrainSelectedInstOperands,
36934 // GIR_Coverage, 1895,
36935 GIR_EraseRootFromParent_Done,
36936 // Label 1955: @100914
36937 GIM_Try, /*On fail goto*//*Label 1956*/ GIMT_Encode4(100976), // Rule ID 2144 //
36938 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
36939 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
36940 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
36941 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
36942 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SADDSAT),
36943 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
36944 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
36945 // MIs[1] Rn
36946 GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
36947 GIM_CheckIsSafeToFold, /*NumInsns*/1,
36948 // (ssubsat:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (saddsat:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rn)) => (t2QDSUB:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
36949 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2QDSUB),
36950 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
36951 GIR_RootToRootCopy, /*OpIdx*/1, // Rm
36952 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
36953 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
36954 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36955 GIR_RootConstrainSelectedInstOperands,
36956 // GIR_Coverage, 2144,
36957 GIR_EraseRootFromParent_Done,
36958 // Label 1956: @100976
36959 GIM_Try, /*On fail goto*//*Label 1957*/ GIMT_Encode4(101016), // Rule ID 1893 //
36960 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV5TE_IsARM),
36961 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
36962 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
36963 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
36964 // (ssubsat:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b) => (QSUB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b)
36965 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::QSUB),
36966 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
36967 GIR_RootToRootCopy, /*OpIdx*/1, // a
36968 GIR_RootToRootCopy, /*OpIdx*/2, // b
36969 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
36970 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36971 GIR_RootConstrainSelectedInstOperands,
36972 // GIR_Coverage, 1893,
36973 GIR_EraseRootFromParent_Done,
36974 // Label 1957: @101016
36975 GIM_Try, /*On fail goto*//*Label 1958*/ GIMT_Encode4(101056), // Rule ID 2142 //
36976 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
36977 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
36978 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
36979 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
36980 // (ssubsat:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn) => (t2QSUB:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
36981 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2QSUB),
36982 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
36983 GIR_RootToRootCopy, /*OpIdx*/1, // Rm
36984 GIR_RootToRootCopy, /*OpIdx*/2, // Rn
36985 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
36986 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
36987 GIR_RootConstrainSelectedInstOperands,
36988 // GIR_Coverage, 2142,
36989 GIR_EraseRootFromParent_Done,
36990 // Label 1958: @101056
36991 GIM_Reject,
36992 // Label 1954: @101057
36993 GIM_Reject,
36994 // Label 1945: @101058
36995 GIM_Try, /*On fail goto*//*Label 1959*/ GIMT_Encode4(101104), // Rule ID 1031 //
36996 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
36997 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
36998 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
36999 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
37000 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
37001 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
37002 // (ssubsat:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm) => (VQSUBsv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
37003 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQSUBsv1i64),
37004 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
37005 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
37006 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
37007 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
37008 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
37009 GIR_RootConstrainSelectedInstOperands,
37010 // GIR_Coverage, 1031,
37011 GIR_EraseRootFromParent_Done,
37012 // Label 1959: @101104
37013 GIM_Reject,
37014 // Label 1946: @101105
37015 GIM_Try, /*On fail goto*//*Label 1960*/ GIMT_Encode4(101151), // Rule ID 1026 //
37016 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
37017 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
37018 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
37019 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
37020 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
37021 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
37022 // (ssubsat:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VQSUBsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
37023 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQSUBsv2i32),
37024 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
37025 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
37026 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
37027 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
37028 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
37029 GIR_RootConstrainSelectedInstOperands,
37030 // GIR_Coverage, 1026,
37031 GIR_EraseRootFromParent_Done,
37032 // Label 1960: @101151
37033 GIM_Reject,
37034 // Label 1947: @101152
37035 GIM_Try, /*On fail goto*//*Label 1961*/ GIMT_Encode4(101274),
37036 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s64,
37037 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s64,
37038 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
37039 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
37040 GIM_Try, /*On fail goto*//*Label 1962*/ GIMT_Encode4(101241), // Rule ID 2493 //
37041 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
37042 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
37043 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTRINSIC),
37044 GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
37045 GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqdmull),
37046 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s32,
37047 GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v2s32,
37048 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
37049 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
37050 GIM_CheckIsSafeToFold, /*NumInsns*/1,
37051 // (ssubsat:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, (intrinsic_wo_chain:{ *:[v2i64] } 3474:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)) => (VQDMLSLv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
37052 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQDMLSLv2i64),
37053 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
37054 GIR_RootToRootCopy, /*OpIdx*/1, // src1
37055 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
37056 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
37057 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
37058 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
37059 GIR_RootConstrainSelectedInstOperands,
37060 // GIR_Coverage, 2493,
37061 GIR_EraseRootFromParent_Done,
37062 // Label 1962: @101241
37063 GIM_Try, /*On fail goto*//*Label 1963*/ GIMT_Encode4(101273), // Rule ID 1032 //
37064 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
37065 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
37066 // (ssubsat:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm) => (VQSUBsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
37067 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQSUBsv2i64),
37068 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
37069 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
37070 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
37071 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
37072 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
37073 GIR_RootConstrainSelectedInstOperands,
37074 // GIR_Coverage, 1032,
37075 GIR_EraseRootFromParent_Done,
37076 // Label 1963: @101273
37077 GIM_Reject,
37078 // Label 1961: @101274
37079 GIM_Reject,
37080 // Label 1948: @101275
37081 GIM_Try, /*On fail goto*//*Label 1964*/ GIMT_Encode4(101321), // Rule ID 1025 //
37082 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
37083 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
37084 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
37085 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
37086 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
37087 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
37088 // (ssubsat:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VQSUBsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
37089 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQSUBsv4i16),
37090 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
37091 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
37092 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
37093 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
37094 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
37095 GIR_RootConstrainSelectedInstOperands,
37096 // GIR_Coverage, 1025,
37097 GIR_EraseRootFromParent_Done,
37098 // Label 1964: @101321
37099 GIM_Reject,
37100 // Label 1949: @101322
37101 GIM_Try, /*On fail goto*//*Label 1965*/ GIMT_Encode4(101511),
37102 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
37103 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
37104 GIM_Try, /*On fail goto*//*Label 1966*/ GIMT_Encode4(101411), // Rule ID 2492 //
37105 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
37106 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
37107 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
37108 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
37109 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTRINSIC),
37110 GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
37111 GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, GIMT_Encode2(Intrinsic::arm_neon_vqdmull),
37112 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
37113 GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v4s16,
37114 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
37115 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
37116 GIM_CheckIsSafeToFold, /*NumInsns*/1,
37117 // (ssubsat:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (intrinsic_wo_chain:{ *:[v4i32] } 3474:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)) => (VQDMLSLv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
37118 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQDMLSLv4i32),
37119 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
37120 GIR_RootToRootCopy, /*OpIdx*/1, // src1
37121 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
37122 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
37123 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
37124 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
37125 GIR_RootConstrainSelectedInstOperands,
37126 // GIR_Coverage, 2492,
37127 GIR_EraseRootFromParent_Done,
37128 // Label 1966: @101411
37129 GIM_Try, /*On fail goto*//*Label 1967*/ GIMT_Encode4(101451), // Rule ID 1028 //
37130 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
37131 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
37132 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
37133 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
37134 // (ssubsat:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VQSUBsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
37135 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQSUBsv4i32),
37136 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
37137 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
37138 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
37139 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
37140 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
37141 GIR_RootConstrainSelectedInstOperands,
37142 // GIR_Coverage, 1028,
37143 GIR_EraseRootFromParent_Done,
37144 // Label 1967: @101451
37145 GIM_Try, /*On fail goto*//*Label 1968*/ GIMT_Encode4(101510), // Rule ID 3633 //
37146 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
37147 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
37148 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
37149 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
37150 // (ssubsat:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) => (MVE_VQSUBs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
37151 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
37152 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
37153 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
37154 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQSUBs32),
37155 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
37156 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
37157 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
37158 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
37159 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
37160 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
37161 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
37162 GIR_RootConstrainSelectedInstOperands,
37163 // GIR_Coverage, 3633,
37164 GIR_EraseRootFromParent_Done,
37165 // Label 1968: @101510
37166 GIM_Reject,
37167 // Label 1965: @101511
37168 GIM_Reject,
37169 // Label 1950: @101512
37170 GIM_Try, /*On fail goto*//*Label 1969*/ GIMT_Encode4(101558), // Rule ID 1029 //
37171 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
37172 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s8,
37173 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
37174 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
37175 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
37176 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
37177 // (ssubsat:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VQSUBsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
37178 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQSUBsv8i8),
37179 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
37180 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
37181 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
37182 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
37183 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
37184 GIR_RootConstrainSelectedInstOperands,
37185 // GIR_Coverage, 1029,
37186 GIR_EraseRootFromParent_Done,
37187 // Label 1969: @101558
37188 GIM_Reject,
37189 // Label 1951: @101559
37190 GIM_Try, /*On fail goto*//*Label 1970*/ GIMT_Encode4(101670),
37191 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
37192 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
37193 GIM_Try, /*On fail goto*//*Label 1971*/ GIMT_Encode4(101610), // Rule ID 1027 //
37194 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
37195 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
37196 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
37197 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
37198 // (ssubsat:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VQSUBsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
37199 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQSUBsv8i16),
37200 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
37201 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
37202 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
37203 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
37204 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
37205 GIR_RootConstrainSelectedInstOperands,
37206 // GIR_Coverage, 1027,
37207 GIR_EraseRootFromParent_Done,
37208 // Label 1971: @101610
37209 GIM_Try, /*On fail goto*//*Label 1972*/ GIMT_Encode4(101669), // Rule ID 3630 //
37210 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
37211 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
37212 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
37213 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
37214 // (ssubsat:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) => (MVE_VQSUBs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
37215 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
37216 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
37217 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
37218 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQSUBs16),
37219 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
37220 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
37221 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
37222 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
37223 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
37224 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
37225 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
37226 GIR_RootConstrainSelectedInstOperands,
37227 // GIR_Coverage, 3630,
37228 GIR_EraseRootFromParent_Done,
37229 // Label 1972: @101669
37230 GIM_Reject,
37231 // Label 1970: @101670
37232 GIM_Reject,
37233 // Label 1952: @101671
37234 GIM_Try, /*On fail goto*//*Label 1973*/ GIMT_Encode4(101782),
37235 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
37236 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
37237 GIM_Try, /*On fail goto*//*Label 1974*/ GIMT_Encode4(101722), // Rule ID 1030 //
37238 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
37239 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
37240 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
37241 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
37242 // (ssubsat:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VQSUBsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
37243 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VQSUBsv16i8),
37244 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
37245 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
37246 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
37247 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
37248 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
37249 GIR_RootConstrainSelectedInstOperands,
37250 // GIR_Coverage, 1030,
37251 GIR_EraseRootFromParent_Done,
37252 // Label 1974: @101722
37253 GIM_Try, /*On fail goto*//*Label 1975*/ GIMT_Encode4(101781), // Rule ID 3627 //
37254 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
37255 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
37256 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
37257 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
37258 // (ssubsat:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) => (MVE_VQSUBs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
37259 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
37260 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
37261 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
37262 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VQSUBs8),
37263 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
37264 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
37265 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
37266 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
37267 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
37268 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
37269 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
37270 GIR_RootConstrainSelectedInstOperands,
37271 // GIR_Coverage, 3627,
37272 GIR_EraseRootFromParent_Done,
37273 // Label 1975: @101781
37274 GIM_Reject,
37275 // Label 1973: @101782
37276 GIM_Reject,
37277 // Label 1953: @101783
37278 GIM_Reject,
37279 // Label 31: @101784
37280 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(0), GIMT_Encode2(13), /*)*//*default:*//*Label 1983*/ GIMT_Encode4(104095),
37281 /*GILLT_s16*//*Label 1976*/ GIMT_Encode4(101847),
37282 /*GILLT_s32*//*Label 1977*/ GIMT_Encode4(101894),
37283 /*GILLT_s64*//*Label 1978*/ GIMT_Encode4(103452), GIMT_Encode4(0),
37284 /*GILLT_v2s32*//*Label 1979*/ GIMT_Encode4(103499), GIMT_Encode4(0), GIMT_Encode4(0),
37285 /*GILLT_v4s16*//*Label 1980*/ GIMT_Encode4(103546),
37286 /*GILLT_v4s32*//*Label 1981*/ GIMT_Encode4(103731), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
37287 /*GILLT_v8s16*//*Label 1982*/ GIMT_Encode4(103843),
37288 // Label 1976: @101847
37289 GIM_Try, /*On fail goto*//*Label 1984*/ GIMT_Encode4(101893), // Rule ID 631 //
37290 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16),
37291 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s16,
37292 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s16,
37293 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
37294 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
37295 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
37296 // (fadd:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm) => (VADDH:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
37297 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDH),
37298 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
37299 GIR_RootToRootCopy, /*OpIdx*/1, // Sn
37300 GIR_RootToRootCopy, /*OpIdx*/2, // Sm
37301 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
37302 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
37303 GIR_RootConstrainSelectedInstOperands,
37304 // GIR_Coverage, 631,
37305 GIR_EraseRootFromParent_Done,
37306 // Label 1984: @101893
37307 GIM_Reject,
37308 // Label 1977: @101894
37309 GIM_Try, /*On fail goto*//*Label 1985*/ GIMT_Encode4(103451),
37310 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
37311 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
37312 GIM_Try, /*On fail goto*//*Label 1986*/ GIMT_Encode4(102225), // Rule ID 6038 //
37313 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_UseFPVMLx_UseNEONForFP),
37314 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPR_VFP2RegClassID),
37315 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
37316 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FMUL),
37317 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
37318 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
37319 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
37320 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
37321 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
37322 GIM_CheckIsSafeToFold, /*NumInsns*/1,
37323 // (fadd:{ *:[f32] } (fmul:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b), SPR:{ *:[f32] }:$acc) => (EXTRACT_SUBREG:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (VMLAfd:{ *:[f64] } (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$acc, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$b, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
37324 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v2s32,
37325 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s64,
37326 GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v2s32,
37327 GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_v2s32,
37328 GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_v2s32,
37329 GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_v2s32,
37330 GIR_MakeTempReg, /*TempRegID*/6, /*TypeID*/GILLT_v2s32,
37331 GIR_MakeTempReg, /*TempRegID*/7, /*TypeID*/GILLT_v2s32,
37332 GIR_MakeTempReg, /*TempRegID*/8, /*TypeID*/GILLT_v2s32,
37333 GIR_MakeTempReg, /*TempRegID*/9, /*TypeID*/GILLT_v2s32,
37334 GIR_MakeTempReg, /*TempRegID*/10, /*TypeID*/GILLT_v2s32,
37335 GIR_BuildMI, /*InsnID*/11, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
37336 GIR_AddTempRegister, /*InsnID*/11, /*TempRegID*/10, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37337 GIR_ConstrainSelectedInstOperands, /*InsnID*/11,
37338 GIR_BuildMI, /*InsnID*/10, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
37339 GIR_AddTempRegister, /*InsnID*/10, /*TempRegID*/9, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37340 GIR_AddSimpleTempRegister, /*InsnID*/10, /*TempRegID*/10,
37341 GIR_ConstrainSelectedInstOperands, /*InsnID*/10,
37342 GIR_BuildMI, /*InsnID*/9, /*Opcode*/GIMT_Encode2(TargetOpcode::INSERT_SUBREG),
37343 GIR_AddTempRegister, /*InsnID*/9, /*TempRegID*/8, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37344 GIR_AddSimpleTempRegister, /*InsnID*/9, /*TempRegID*/9,
37345 GIR_Copy, /*NewInsnID*/9, /*OldInsnID*/1, /*OpIdx*/2, // b
37346 GIR_AddImm8, /*InsnID*/9, /*Imm*/17,
37347 GIR_ConstrainOperandRC, /*InsnID*/9, /*Op*/0, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
37348 GIR_ConstrainOperandRC, /*InsnID*/9, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
37349 GIR_ConstrainOperandRC, /*InsnID*/9, /*Op*/2, GIMT_Encode2(ARM::SPRRegClassID),
37350 GIR_BuildMI, /*InsnID*/8, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
37351 GIR_AddTempRegister, /*InsnID*/8, /*TempRegID*/7, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37352 GIR_ConstrainSelectedInstOperands, /*InsnID*/8,
37353 GIR_BuildMI, /*InsnID*/7, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
37354 GIR_AddTempRegister, /*InsnID*/7, /*TempRegID*/6, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37355 GIR_AddSimpleTempRegister, /*InsnID*/7, /*TempRegID*/7,
37356 GIR_ConstrainSelectedInstOperands, /*InsnID*/7,
37357 GIR_BuildMI, /*InsnID*/6, /*Opcode*/GIMT_Encode2(TargetOpcode::INSERT_SUBREG),
37358 GIR_AddTempRegister, /*InsnID*/6, /*TempRegID*/5, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37359 GIR_AddSimpleTempRegister, /*InsnID*/6, /*TempRegID*/6,
37360 GIR_Copy, /*NewInsnID*/6, /*OldInsnID*/1, /*OpIdx*/1, // a
37361 GIR_AddImm8, /*InsnID*/6, /*Imm*/17,
37362 GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/0, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
37363 GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
37364 GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/2, GIMT_Encode2(ARM::SPRRegClassID),
37365 GIR_BuildMI, /*InsnID*/5, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
37366 GIR_AddTempRegister, /*InsnID*/5, /*TempRegID*/4, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37367 GIR_ConstrainSelectedInstOperands, /*InsnID*/5,
37368 GIR_BuildMI, /*InsnID*/4, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
37369 GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/3, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37370 GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/4,
37371 GIR_ConstrainSelectedInstOperands, /*InsnID*/4,
37372 GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::INSERT_SUBREG),
37373 GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37374 GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/3,
37375 GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // acc
37376 GIR_AddImm8, /*InsnID*/3, /*Imm*/17,
37377 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/0, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
37378 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
37379 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/2, GIMT_Encode2(ARM::SPRRegClassID),
37380 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(ARM::VMLAfd),
37381 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37382 GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
37383 GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/5,
37384 GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/8,
37385 GIR_AddImm8, /*InsnID*/2, /*Imm*/14,
37386 GIR_AddRegister, /*InsnID*/2, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
37387 GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
37388 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
37389 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37390 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
37391 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
37392 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
37393 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
37394 GIR_AddTempSubRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(0), GIMT_Encode2(ARM::ssub_0),
37395 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::SPRRegClassID),
37396 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
37397 // GIR_Coverage, 6038,
37398 GIR_EraseRootFromParent_Done,
37399 // Label 1986: @102225
37400 GIM_Try, /*On fail goto*//*Label 1987*/ GIMT_Encode4(102545), // Rule ID 6039 //
37401 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasVFP4_UseFusedMAC_UseNEONForFP),
37402 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPR_VFP2RegClassID),
37403 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
37404 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FMUL),
37405 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
37406 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
37407 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
37408 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
37409 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
37410 GIM_CheckIsSafeToFold, /*NumInsns*/1,
37411 // (fadd:{ *:[f32] } (fmul:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b), SPR:{ *:[f32] }:$acc) => (EXTRACT_SUBREG:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (VFMAfd:{ *:[f64] } (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$acc, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$b, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
37412 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v2s32,
37413 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s64,
37414 GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v2s32,
37415 GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_v2s32,
37416 GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_v2s32,
37417 GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_v2s32,
37418 GIR_MakeTempReg, /*TempRegID*/6, /*TypeID*/GILLT_v2s32,
37419 GIR_MakeTempReg, /*TempRegID*/7, /*TypeID*/GILLT_v2s32,
37420 GIR_MakeTempReg, /*TempRegID*/8, /*TypeID*/GILLT_v2s32,
37421 GIR_MakeTempReg, /*TempRegID*/9, /*TypeID*/GILLT_v2s32,
37422 GIR_MakeTempReg, /*TempRegID*/10, /*TypeID*/GILLT_v2s32,
37423 GIR_BuildMI, /*InsnID*/11, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
37424 GIR_AddTempRegister, /*InsnID*/11, /*TempRegID*/10, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37425 GIR_ConstrainSelectedInstOperands, /*InsnID*/11,
37426 GIR_BuildMI, /*InsnID*/10, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
37427 GIR_AddTempRegister, /*InsnID*/10, /*TempRegID*/9, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37428 GIR_AddSimpleTempRegister, /*InsnID*/10, /*TempRegID*/10,
37429 GIR_ConstrainSelectedInstOperands, /*InsnID*/10,
37430 GIR_BuildMI, /*InsnID*/9, /*Opcode*/GIMT_Encode2(TargetOpcode::INSERT_SUBREG),
37431 GIR_AddTempRegister, /*InsnID*/9, /*TempRegID*/8, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37432 GIR_AddSimpleTempRegister, /*InsnID*/9, /*TempRegID*/9,
37433 GIR_Copy, /*NewInsnID*/9, /*OldInsnID*/1, /*OpIdx*/2, // b
37434 GIR_AddImm8, /*InsnID*/9, /*Imm*/17,
37435 GIR_ConstrainOperandRC, /*InsnID*/9, /*Op*/0, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
37436 GIR_ConstrainOperandRC, /*InsnID*/9, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
37437 GIR_ConstrainOperandRC, /*InsnID*/9, /*Op*/2, GIMT_Encode2(ARM::SPRRegClassID),
37438 GIR_BuildMI, /*InsnID*/8, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
37439 GIR_AddTempRegister, /*InsnID*/8, /*TempRegID*/7, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37440 GIR_ConstrainSelectedInstOperands, /*InsnID*/8,
37441 GIR_BuildMI, /*InsnID*/7, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
37442 GIR_AddTempRegister, /*InsnID*/7, /*TempRegID*/6, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37443 GIR_AddSimpleTempRegister, /*InsnID*/7, /*TempRegID*/7,
37444 GIR_ConstrainSelectedInstOperands, /*InsnID*/7,
37445 GIR_BuildMI, /*InsnID*/6, /*Opcode*/GIMT_Encode2(TargetOpcode::INSERT_SUBREG),
37446 GIR_AddTempRegister, /*InsnID*/6, /*TempRegID*/5, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37447 GIR_AddSimpleTempRegister, /*InsnID*/6, /*TempRegID*/6,
37448 GIR_Copy, /*NewInsnID*/6, /*OldInsnID*/1, /*OpIdx*/1, // a
37449 GIR_AddImm8, /*InsnID*/6, /*Imm*/17,
37450 GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/0, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
37451 GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
37452 GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/2, GIMT_Encode2(ARM::SPRRegClassID),
37453 GIR_BuildMI, /*InsnID*/5, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
37454 GIR_AddTempRegister, /*InsnID*/5, /*TempRegID*/4, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37455 GIR_ConstrainSelectedInstOperands, /*InsnID*/5,
37456 GIR_BuildMI, /*InsnID*/4, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
37457 GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/3, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37458 GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/4,
37459 GIR_ConstrainSelectedInstOperands, /*InsnID*/4,
37460 GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::INSERT_SUBREG),
37461 GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37462 GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/3,
37463 GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // acc
37464 GIR_AddImm8, /*InsnID*/3, /*Imm*/17,
37465 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/0, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
37466 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
37467 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/2, GIMT_Encode2(ARM::SPRRegClassID),
37468 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(ARM::VFMAfd),
37469 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37470 GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
37471 GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/5,
37472 GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/8,
37473 GIR_AddImm8, /*InsnID*/2, /*Imm*/14,
37474 GIR_AddRegister, /*InsnID*/2, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
37475 GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
37476 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
37477 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37478 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
37479 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
37480 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
37481 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
37482 GIR_AddTempSubRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(0), GIMT_Encode2(ARM::ssub_0),
37483 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::SPRRegClassID),
37484 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
37485 // GIR_Coverage, 6039,
37486 GIR_EraseRootFromParent_Done,
37487 // Label 1987: @102545
37488 GIM_Try, /*On fail goto*//*Label 1988*/ GIMT_Encode4(102865), // Rule ID 2718 //
37489 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_UseFPVMLx_UseNEONForFP),
37490 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPR_VFP2RegClassID),
37491 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
37492 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
37493 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FMUL),
37494 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
37495 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
37496 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
37497 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
37498 GIM_CheckIsSafeToFold, /*NumInsns*/1,
37499 // (fadd:{ *:[f32] } SPR:{ *:[f32] }:$acc, (fmul:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b)) => (EXTRACT_SUBREG:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (VMLAfd:{ *:[f64] } (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$acc, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$b, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
37500 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v2s32,
37501 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s64,
37502 GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v2s32,
37503 GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_v2s32,
37504 GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_v2s32,
37505 GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_v2s32,
37506 GIR_MakeTempReg, /*TempRegID*/6, /*TypeID*/GILLT_v2s32,
37507 GIR_MakeTempReg, /*TempRegID*/7, /*TypeID*/GILLT_v2s32,
37508 GIR_MakeTempReg, /*TempRegID*/8, /*TypeID*/GILLT_v2s32,
37509 GIR_MakeTempReg, /*TempRegID*/9, /*TypeID*/GILLT_v2s32,
37510 GIR_MakeTempReg, /*TempRegID*/10, /*TypeID*/GILLT_v2s32,
37511 GIR_BuildMI, /*InsnID*/11, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
37512 GIR_AddTempRegister, /*InsnID*/11, /*TempRegID*/10, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37513 GIR_ConstrainSelectedInstOperands, /*InsnID*/11,
37514 GIR_BuildMI, /*InsnID*/10, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
37515 GIR_AddTempRegister, /*InsnID*/10, /*TempRegID*/9, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37516 GIR_AddSimpleTempRegister, /*InsnID*/10, /*TempRegID*/10,
37517 GIR_ConstrainSelectedInstOperands, /*InsnID*/10,
37518 GIR_BuildMI, /*InsnID*/9, /*Opcode*/GIMT_Encode2(TargetOpcode::INSERT_SUBREG),
37519 GIR_AddTempRegister, /*InsnID*/9, /*TempRegID*/8, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37520 GIR_AddSimpleTempRegister, /*InsnID*/9, /*TempRegID*/9,
37521 GIR_Copy, /*NewInsnID*/9, /*OldInsnID*/1, /*OpIdx*/2, // b
37522 GIR_AddImm8, /*InsnID*/9, /*Imm*/17,
37523 GIR_ConstrainOperandRC, /*InsnID*/9, /*Op*/0, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
37524 GIR_ConstrainOperandRC, /*InsnID*/9, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
37525 GIR_ConstrainOperandRC, /*InsnID*/9, /*Op*/2, GIMT_Encode2(ARM::SPRRegClassID),
37526 GIR_BuildMI, /*InsnID*/8, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
37527 GIR_AddTempRegister, /*InsnID*/8, /*TempRegID*/7, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37528 GIR_ConstrainSelectedInstOperands, /*InsnID*/8,
37529 GIR_BuildMI, /*InsnID*/7, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
37530 GIR_AddTempRegister, /*InsnID*/7, /*TempRegID*/6, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37531 GIR_AddSimpleTempRegister, /*InsnID*/7, /*TempRegID*/7,
37532 GIR_ConstrainSelectedInstOperands, /*InsnID*/7,
37533 GIR_BuildMI, /*InsnID*/6, /*Opcode*/GIMT_Encode2(TargetOpcode::INSERT_SUBREG),
37534 GIR_AddTempRegister, /*InsnID*/6, /*TempRegID*/5, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37535 GIR_AddSimpleTempRegister, /*InsnID*/6, /*TempRegID*/6,
37536 GIR_Copy, /*NewInsnID*/6, /*OldInsnID*/1, /*OpIdx*/1, // a
37537 GIR_AddImm8, /*InsnID*/6, /*Imm*/17,
37538 GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/0, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
37539 GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
37540 GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/2, GIMT_Encode2(ARM::SPRRegClassID),
37541 GIR_BuildMI, /*InsnID*/5, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
37542 GIR_AddTempRegister, /*InsnID*/5, /*TempRegID*/4, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37543 GIR_ConstrainSelectedInstOperands, /*InsnID*/5,
37544 GIR_BuildMI, /*InsnID*/4, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
37545 GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/3, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37546 GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/4,
37547 GIR_ConstrainSelectedInstOperands, /*InsnID*/4,
37548 GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::INSERT_SUBREG),
37549 GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37550 GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/3,
37551 GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/1, // acc
37552 GIR_AddImm8, /*InsnID*/3, /*Imm*/17,
37553 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/0, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
37554 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
37555 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/2, GIMT_Encode2(ARM::SPRRegClassID),
37556 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(ARM::VMLAfd),
37557 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37558 GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
37559 GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/5,
37560 GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/8,
37561 GIR_AddImm8, /*InsnID*/2, /*Imm*/14,
37562 GIR_AddRegister, /*InsnID*/2, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
37563 GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
37564 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
37565 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37566 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
37567 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
37568 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
37569 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
37570 GIR_AddTempSubRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(0), GIMT_Encode2(ARM::ssub_0),
37571 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::SPRRegClassID),
37572 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
37573 // GIR_Coverage, 2718,
37574 GIR_EraseRootFromParent_Done,
37575 // Label 1988: @102865
37576 GIM_Try, /*On fail goto*//*Label 1989*/ GIMT_Encode4(103185), // Rule ID 2720 //
37577 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasVFP4_UseFusedMAC_UseNEONForFP),
37578 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPR_VFP2RegClassID),
37579 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
37580 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
37581 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FMUL),
37582 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
37583 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
37584 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
37585 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
37586 GIM_CheckIsSafeToFold, /*NumInsns*/1,
37587 // (fadd:{ *:[f32] } SPR:{ *:[f32] }:$acc, (fmul:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b)) => (EXTRACT_SUBREG:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (VFMAfd:{ *:[f64] } (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$acc, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$b, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
37588 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v2s32,
37589 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s64,
37590 GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v2s32,
37591 GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_v2s32,
37592 GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_v2s32,
37593 GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_v2s32,
37594 GIR_MakeTempReg, /*TempRegID*/6, /*TypeID*/GILLT_v2s32,
37595 GIR_MakeTempReg, /*TempRegID*/7, /*TypeID*/GILLT_v2s32,
37596 GIR_MakeTempReg, /*TempRegID*/8, /*TypeID*/GILLT_v2s32,
37597 GIR_MakeTempReg, /*TempRegID*/9, /*TypeID*/GILLT_v2s32,
37598 GIR_MakeTempReg, /*TempRegID*/10, /*TypeID*/GILLT_v2s32,
37599 GIR_BuildMI, /*InsnID*/11, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
37600 GIR_AddTempRegister, /*InsnID*/11, /*TempRegID*/10, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37601 GIR_ConstrainSelectedInstOperands, /*InsnID*/11,
37602 GIR_BuildMI, /*InsnID*/10, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
37603 GIR_AddTempRegister, /*InsnID*/10, /*TempRegID*/9, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37604 GIR_AddSimpleTempRegister, /*InsnID*/10, /*TempRegID*/10,
37605 GIR_ConstrainSelectedInstOperands, /*InsnID*/10,
37606 GIR_BuildMI, /*InsnID*/9, /*Opcode*/GIMT_Encode2(TargetOpcode::INSERT_SUBREG),
37607 GIR_AddTempRegister, /*InsnID*/9, /*TempRegID*/8, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37608 GIR_AddSimpleTempRegister, /*InsnID*/9, /*TempRegID*/9,
37609 GIR_Copy, /*NewInsnID*/9, /*OldInsnID*/1, /*OpIdx*/2, // b
37610 GIR_AddImm8, /*InsnID*/9, /*Imm*/17,
37611 GIR_ConstrainOperandRC, /*InsnID*/9, /*Op*/0, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
37612 GIR_ConstrainOperandRC, /*InsnID*/9, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
37613 GIR_ConstrainOperandRC, /*InsnID*/9, /*Op*/2, GIMT_Encode2(ARM::SPRRegClassID),
37614 GIR_BuildMI, /*InsnID*/8, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
37615 GIR_AddTempRegister, /*InsnID*/8, /*TempRegID*/7, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37616 GIR_ConstrainSelectedInstOperands, /*InsnID*/8,
37617 GIR_BuildMI, /*InsnID*/7, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
37618 GIR_AddTempRegister, /*InsnID*/7, /*TempRegID*/6, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37619 GIR_AddSimpleTempRegister, /*InsnID*/7, /*TempRegID*/7,
37620 GIR_ConstrainSelectedInstOperands, /*InsnID*/7,
37621 GIR_BuildMI, /*InsnID*/6, /*Opcode*/GIMT_Encode2(TargetOpcode::INSERT_SUBREG),
37622 GIR_AddTempRegister, /*InsnID*/6, /*TempRegID*/5, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37623 GIR_AddSimpleTempRegister, /*InsnID*/6, /*TempRegID*/6,
37624 GIR_Copy, /*NewInsnID*/6, /*OldInsnID*/1, /*OpIdx*/1, // a
37625 GIR_AddImm8, /*InsnID*/6, /*Imm*/17,
37626 GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/0, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
37627 GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
37628 GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/2, GIMT_Encode2(ARM::SPRRegClassID),
37629 GIR_BuildMI, /*InsnID*/5, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
37630 GIR_AddTempRegister, /*InsnID*/5, /*TempRegID*/4, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37631 GIR_ConstrainSelectedInstOperands, /*InsnID*/5,
37632 GIR_BuildMI, /*InsnID*/4, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
37633 GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/3, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37634 GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/4,
37635 GIR_ConstrainSelectedInstOperands, /*InsnID*/4,
37636 GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::INSERT_SUBREG),
37637 GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37638 GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/3,
37639 GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/1, // acc
37640 GIR_AddImm8, /*InsnID*/3, /*Imm*/17,
37641 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/0, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
37642 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
37643 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/2, GIMT_Encode2(ARM::SPRRegClassID),
37644 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(ARM::VFMAfd),
37645 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37646 GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
37647 GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/5,
37648 GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/8,
37649 GIR_AddImm8, /*InsnID*/2, /*Imm*/14,
37650 GIR_AddRegister, /*InsnID*/2, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
37651 GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
37652 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
37653 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37654 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
37655 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
37656 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
37657 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
37658 GIR_AddTempSubRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(0), GIMT_Encode2(ARM::ssub_0),
37659 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::SPRRegClassID),
37660 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
37661 // GIR_Coverage, 2720,
37662 GIR_EraseRootFromParent_Done,
37663 // Label 1989: @103185
37664 GIM_Try, /*On fail goto*//*Label 1990*/ GIMT_Encode4(103225), // Rule ID 630 //
37665 GIM_CheckFeatures, GIMT_Encode2(GIFBS_DontUseNEONForFP_HasVFP2),
37666 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
37667 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
37668 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
37669 // (fadd:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm) => (VADDS:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
37670 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDS),
37671 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
37672 GIR_RootToRootCopy, /*OpIdx*/1, // Sn
37673 GIR_RootToRootCopy, /*OpIdx*/2, // Sm
37674 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
37675 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
37676 GIR_RootConstrainSelectedInstOperands,
37677 // GIR_Coverage, 630,
37678 GIR_EraseRootFromParent_Done,
37679 // Label 1990: @103225
37680 GIM_Try, /*On fail goto*//*Label 1991*/ GIMT_Encode4(103450), // Rule ID 2715 //
37681 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_UseNEONForFP),
37682 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPR_VFP2RegClassID),
37683 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
37684 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
37685 // (fadd:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b) => (EXTRACT_SUBREG:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (VADDfd:{ *:[f64] } (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$b, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
37686 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v2s32,
37687 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s64,
37688 GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v2s32,
37689 GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_v2s32,
37690 GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_v2s32,
37691 GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_v2s32,
37692 GIR_MakeTempReg, /*TempRegID*/6, /*TypeID*/GILLT_v2s32,
37693 GIR_MakeTempReg, /*TempRegID*/7, /*TypeID*/GILLT_v2s32,
37694 GIR_BuildMI, /*InsnID*/8, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
37695 GIR_AddTempRegister, /*InsnID*/8, /*TempRegID*/7, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37696 GIR_ConstrainSelectedInstOperands, /*InsnID*/8,
37697 GIR_BuildMI, /*InsnID*/7, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
37698 GIR_AddTempRegister, /*InsnID*/7, /*TempRegID*/6, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37699 GIR_AddSimpleTempRegister, /*InsnID*/7, /*TempRegID*/7,
37700 GIR_ConstrainSelectedInstOperands, /*InsnID*/7,
37701 GIR_BuildMI, /*InsnID*/6, /*Opcode*/GIMT_Encode2(TargetOpcode::INSERT_SUBREG),
37702 GIR_AddTempRegister, /*InsnID*/6, /*TempRegID*/5, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37703 GIR_AddSimpleTempRegister, /*InsnID*/6, /*TempRegID*/6,
37704 GIR_Copy, /*NewInsnID*/6, /*OldInsnID*/0, /*OpIdx*/2, // b
37705 GIR_AddImm8, /*InsnID*/6, /*Imm*/17,
37706 GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/0, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
37707 GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
37708 GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/2, GIMT_Encode2(ARM::SPRRegClassID),
37709 GIR_BuildMI, /*InsnID*/5, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
37710 GIR_AddTempRegister, /*InsnID*/5, /*TempRegID*/4, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37711 GIR_ConstrainSelectedInstOperands, /*InsnID*/5,
37712 GIR_BuildMI, /*InsnID*/4, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
37713 GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/3, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37714 GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/4,
37715 GIR_ConstrainSelectedInstOperands, /*InsnID*/4,
37716 GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::INSERT_SUBREG),
37717 GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37718 GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/3,
37719 GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/1, // a
37720 GIR_AddImm8, /*InsnID*/3, /*Imm*/17,
37721 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/0, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
37722 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
37723 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/2, GIMT_Encode2(ARM::SPRRegClassID),
37724 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(ARM::VADDfd),
37725 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37726 GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
37727 GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/5,
37728 GIR_AddImm8, /*InsnID*/2, /*Imm*/14,
37729 GIR_AddRegister, /*InsnID*/2, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
37730 GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
37731 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
37732 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
37733 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
37734 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
37735 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
37736 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
37737 GIR_AddTempSubRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(0), GIMT_Encode2(ARM::ssub_0),
37738 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::SPRRegClassID),
37739 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
37740 // GIR_Coverage, 2715,
37741 GIR_EraseRootFromParent_Done,
37742 // Label 1991: @103450
37743 GIM_Reject,
37744 // Label 1985: @103451
37745 GIM_Reject,
37746 // Label 1978: @103452
37747 GIM_Try, /*On fail goto*//*Label 1992*/ GIMT_Encode4(103498), // Rule ID 629 //
37748 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasVFP2),
37749 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
37750 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
37751 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
37752 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
37753 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
37754 // (fadd:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm) => (VADDD:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
37755 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDD),
37756 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Dd]
37757 GIR_RootToRootCopy, /*OpIdx*/1, // Dn
37758 GIR_RootToRootCopy, /*OpIdx*/2, // Dm
37759 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
37760 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
37761 GIR_RootConstrainSelectedInstOperands,
37762 // GIR_Coverage, 629,
37763 GIR_EraseRootFromParent_Done,
37764 // Label 1992: @103498
37765 GIM_Reject,
37766 // Label 1979: @103499
37767 GIM_Try, /*On fail goto*//*Label 1993*/ GIMT_Encode4(103545), // Rule ID 781 //
37768 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
37769 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
37770 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
37771 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
37772 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
37773 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
37774 // (fadd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) => (VADDfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
37775 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDfd),
37776 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
37777 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
37778 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
37779 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
37780 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
37781 GIR_RootConstrainSelectedInstOperands,
37782 // GIR_Coverage, 781,
37783 GIR_EraseRootFromParent_Done,
37784 // Label 1993: @103545
37785 GIM_Reject,
37786 // Label 1980: @103546
37787 GIM_Try, /*On fail goto*//*Label 1994*/ GIMT_Encode4(103730),
37788 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
37789 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
37790 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
37791 GIM_Try, /*On fail goto*//*Label 1995*/ GIMT_Encode4(103627), // Rule ID 5701 //
37792 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON_UseFusedMAC),
37793 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
37794 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FMUL),
37795 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
37796 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
37797 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
37798 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
37799 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
37800 GIM_CheckIsSafeToFold, /*NumInsns*/1,
37801 // (fadd:{ *:[v4f16] } (fmul:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm), DPR:{ *:[v4f16] }:$src1) => (VFMAhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
37802 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VFMAhd),
37803 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
37804 GIR_RootToRootCopy, /*OpIdx*/2, // src1
37805 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
37806 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
37807 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
37808 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
37809 GIR_RootConstrainSelectedInstOperands,
37810 // GIR_Coverage, 5701,
37811 GIR_EraseRootFromParent_Done,
37812 // Label 1995: @103627
37813 GIM_Try, /*On fail goto*//*Label 1996*/ GIMT_Encode4(103693), // Rule ID 962 //
37814 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON_UseFusedMAC),
37815 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
37816 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
37817 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FMUL),
37818 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
37819 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
37820 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
37821 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
37822 GIM_CheckIsSafeToFold, /*NumInsns*/1,
37823 // (fadd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, (fmul:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)) => (VFMAhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
37824 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VFMAhd),
37825 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
37826 GIR_RootToRootCopy, /*OpIdx*/1, // src1
37827 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
37828 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
37829 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
37830 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
37831 GIR_RootConstrainSelectedInstOperands,
37832 // GIR_Coverage, 962,
37833 GIR_EraseRootFromParent_Done,
37834 // Label 1996: @103693
37835 GIM_Try, /*On fail goto*//*Label 1997*/ GIMT_Encode4(103729), // Rule ID 783 //
37836 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
37837 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
37838 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
37839 // (fadd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) => (VADDhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
37840 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDhd),
37841 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
37842 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
37843 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
37844 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
37845 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
37846 GIR_RootConstrainSelectedInstOperands,
37847 // GIR_Coverage, 783,
37848 GIR_EraseRootFromParent_Done,
37849 // Label 1997: @103729
37850 GIM_Reject,
37851 // Label 1994: @103730
37852 GIM_Reject,
37853 // Label 1981: @103731
37854 GIM_Try, /*On fail goto*//*Label 1998*/ GIMT_Encode4(103842),
37855 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
37856 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
37857 GIM_Try, /*On fail goto*//*Label 1999*/ GIMT_Encode4(103782), // Rule ID 782 //
37858 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
37859 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
37860 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
37861 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
37862 // (fadd:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) => (VADDfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
37863 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDfq),
37864 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
37865 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
37866 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
37867 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
37868 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
37869 GIR_RootConstrainSelectedInstOperands,
37870 // GIR_Coverage, 782,
37871 GIR_EraseRootFromParent_Done,
37872 // Label 1999: @103782
37873 GIM_Try, /*On fail goto*//*Label 2000*/ GIMT_Encode4(103841), // Rule ID 4131 //
37874 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
37875 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
37876 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
37877 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
37878 // (fadd:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qm, MQPR:{ *:[v4f32] }:$Qn) => (MVE_VADDf32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qm, MQPR:{ *:[v4f32] }:$Qn)
37879 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
37880 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
37881 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
37882 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VADDf32),
37883 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
37884 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
37885 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
37886 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
37887 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
37888 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
37889 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
37890 GIR_RootConstrainSelectedInstOperands,
37891 // GIR_Coverage, 4131,
37892 GIR_EraseRootFromParent_Done,
37893 // Label 2000: @103841
37894 GIM_Reject,
37895 // Label 1998: @103842
37896 GIM_Reject,
37897 // Label 1982: @103843
37898 GIM_Try, /*On fail goto*//*Label 2001*/ GIMT_Encode4(104094),
37899 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
37900 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
37901 GIM_Try, /*On fail goto*//*Label 2002*/ GIMT_Encode4(103924), // Rule ID 5702 //
37902 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON_UseFusedMAC),
37903 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
37904 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
37905 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FMUL),
37906 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s16,
37907 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s16,
37908 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
37909 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
37910 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
37911 GIM_CheckIsSafeToFold, /*NumInsns*/1,
37912 // (fadd:{ *:[v8f16] } (fmul:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm), QPR:{ *:[v8f16] }:$src1) => (VFMAhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
37913 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VFMAhq),
37914 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
37915 GIR_RootToRootCopy, /*OpIdx*/2, // src1
37916 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
37917 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
37918 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
37919 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
37920 GIR_RootConstrainSelectedInstOperands,
37921 // GIR_Coverage, 5702,
37922 GIR_EraseRootFromParent_Done,
37923 // Label 2002: @103924
37924 GIM_Try, /*On fail goto*//*Label 2003*/ GIMT_Encode4(103994), // Rule ID 963 //
37925 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON_UseFusedMAC),
37926 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
37927 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
37928 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
37929 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FMUL),
37930 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s16,
37931 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s16,
37932 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
37933 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
37934 GIM_CheckIsSafeToFold, /*NumInsns*/1,
37935 // (fadd:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, (fmul:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)) => (VFMAhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
37936 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VFMAhq),
37937 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
37938 GIR_RootToRootCopy, /*OpIdx*/1, // src1
37939 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
37940 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
37941 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
37942 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
37943 GIR_RootConstrainSelectedInstOperands,
37944 // GIR_Coverage, 963,
37945 GIR_EraseRootFromParent_Done,
37946 // Label 2003: @103994
37947 GIM_Try, /*On fail goto*//*Label 2004*/ GIMT_Encode4(104034), // Rule ID 784 //
37948 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
37949 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
37950 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
37951 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
37952 // (fadd:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) => (VADDhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
37953 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VADDhq),
37954 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
37955 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
37956 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
37957 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
37958 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
37959 GIR_RootConstrainSelectedInstOperands,
37960 // GIR_Coverage, 784,
37961 GIR_EraseRootFromParent_Done,
37962 // Label 2004: @104034
37963 GIM_Try, /*On fail goto*//*Label 2005*/ GIMT_Encode4(104093), // Rule ID 4135 //
37964 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
37965 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
37966 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
37967 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
37968 // (fadd:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qm, MQPR:{ *:[v8f16] }:$Qn) => (MVE_VADDf16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qm, MQPR:{ *:[v8f16] }:$Qn)
37969 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
37970 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
37971 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
37972 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VADDf16),
37973 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
37974 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
37975 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
37976 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
37977 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
37978 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
37979 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
37980 GIR_RootConstrainSelectedInstOperands,
37981 // GIR_Coverage, 4135,
37982 GIR_EraseRootFromParent_Done,
37983 // Label 2005: @104093
37984 GIM_Reject,
37985 // Label 2001: @104094
37986 GIM_Reject,
37987 // Label 1983: @104095
37988 GIM_Reject,
37989 // Label 32: @104096
37990 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(0), GIMT_Encode2(13), /*)*//*default:*//*Label 2013*/ GIMT_Encode4(105759),
37991 /*GILLT_s16*//*Label 2006*/ GIMT_Encode4(104159),
37992 /*GILLT_s32*//*Label 2007*/ GIMT_Encode4(104206),
37993 /*GILLT_s64*//*Label 2008*/ GIMT_Encode4(105124), GIMT_Encode4(0),
37994 /*GILLT_v2s32*//*Label 2009*/ GIMT_Encode4(105171), GIMT_Encode4(0), GIMT_Encode4(0),
37995 /*GILLT_v4s16*//*Label 2010*/ GIMT_Encode4(105218),
37996 /*GILLT_v4s32*//*Label 2011*/ GIMT_Encode4(105395), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
37997 /*GILLT_v8s16*//*Label 2012*/ GIMT_Encode4(105507),
37998 // Label 2006: @104159
37999 GIM_Try, /*On fail goto*//*Label 2014*/ GIMT_Encode4(104205), // Rule ID 634 //
38000 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16),
38001 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s16,
38002 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s16,
38003 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
38004 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
38005 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
38006 // (fsub:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm) => (VSUBH:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
38007 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSUBH),
38008 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
38009 GIR_RootToRootCopy, /*OpIdx*/1, // Sn
38010 GIR_RootToRootCopy, /*OpIdx*/2, // Sm
38011 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
38012 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
38013 GIR_RootConstrainSelectedInstOperands,
38014 // GIR_Coverage, 634,
38015 GIR_EraseRootFromParent_Done,
38016 // Label 2014: @104205
38017 GIM_Reject,
38018 // Label 2007: @104206
38019 GIM_Try, /*On fail goto*//*Label 2015*/ GIMT_Encode4(105123),
38020 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
38021 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
38022 GIM_Try, /*On fail goto*//*Label 2016*/ GIMT_Encode4(104537), // Rule ID 2719 //
38023 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_UseFPVMLx_UseNEONForFP),
38024 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPR_VFP2RegClassID),
38025 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
38026 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
38027 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FMUL),
38028 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
38029 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
38030 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
38031 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
38032 GIM_CheckIsSafeToFold, /*NumInsns*/1,
38033 // (fsub:{ *:[f32] } SPR:{ *:[f32] }:$acc, (fmul:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b)) => (EXTRACT_SUBREG:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (VMLSfd:{ *:[f64] } (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$acc, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$b, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
38034 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v2s32,
38035 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s64,
38036 GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v2s32,
38037 GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_v2s32,
38038 GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_v2s32,
38039 GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_v2s32,
38040 GIR_MakeTempReg, /*TempRegID*/6, /*TypeID*/GILLT_v2s32,
38041 GIR_MakeTempReg, /*TempRegID*/7, /*TypeID*/GILLT_v2s32,
38042 GIR_MakeTempReg, /*TempRegID*/8, /*TypeID*/GILLT_v2s32,
38043 GIR_MakeTempReg, /*TempRegID*/9, /*TypeID*/GILLT_v2s32,
38044 GIR_MakeTempReg, /*TempRegID*/10, /*TypeID*/GILLT_v2s32,
38045 GIR_BuildMI, /*InsnID*/11, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
38046 GIR_AddTempRegister, /*InsnID*/11, /*TempRegID*/10, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
38047 GIR_ConstrainSelectedInstOperands, /*InsnID*/11,
38048 GIR_BuildMI, /*InsnID*/10, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
38049 GIR_AddTempRegister, /*InsnID*/10, /*TempRegID*/9, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
38050 GIR_AddSimpleTempRegister, /*InsnID*/10, /*TempRegID*/10,
38051 GIR_ConstrainSelectedInstOperands, /*InsnID*/10,
38052 GIR_BuildMI, /*InsnID*/9, /*Opcode*/GIMT_Encode2(TargetOpcode::INSERT_SUBREG),
38053 GIR_AddTempRegister, /*InsnID*/9, /*TempRegID*/8, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
38054 GIR_AddSimpleTempRegister, /*InsnID*/9, /*TempRegID*/9,
38055 GIR_Copy, /*NewInsnID*/9, /*OldInsnID*/1, /*OpIdx*/2, // b
38056 GIR_AddImm8, /*InsnID*/9, /*Imm*/17,
38057 GIR_ConstrainOperandRC, /*InsnID*/9, /*Op*/0, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
38058 GIR_ConstrainOperandRC, /*InsnID*/9, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
38059 GIR_ConstrainOperandRC, /*InsnID*/9, /*Op*/2, GIMT_Encode2(ARM::SPRRegClassID),
38060 GIR_BuildMI, /*InsnID*/8, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
38061 GIR_AddTempRegister, /*InsnID*/8, /*TempRegID*/7, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
38062 GIR_ConstrainSelectedInstOperands, /*InsnID*/8,
38063 GIR_BuildMI, /*InsnID*/7, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
38064 GIR_AddTempRegister, /*InsnID*/7, /*TempRegID*/6, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
38065 GIR_AddSimpleTempRegister, /*InsnID*/7, /*TempRegID*/7,
38066 GIR_ConstrainSelectedInstOperands, /*InsnID*/7,
38067 GIR_BuildMI, /*InsnID*/6, /*Opcode*/GIMT_Encode2(TargetOpcode::INSERT_SUBREG),
38068 GIR_AddTempRegister, /*InsnID*/6, /*TempRegID*/5, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
38069 GIR_AddSimpleTempRegister, /*InsnID*/6, /*TempRegID*/6,
38070 GIR_Copy, /*NewInsnID*/6, /*OldInsnID*/1, /*OpIdx*/1, // a
38071 GIR_AddImm8, /*InsnID*/6, /*Imm*/17,
38072 GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/0, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
38073 GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
38074 GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/2, GIMT_Encode2(ARM::SPRRegClassID),
38075 GIR_BuildMI, /*InsnID*/5, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
38076 GIR_AddTempRegister, /*InsnID*/5, /*TempRegID*/4, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
38077 GIR_ConstrainSelectedInstOperands, /*InsnID*/5,
38078 GIR_BuildMI, /*InsnID*/4, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
38079 GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/3, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
38080 GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/4,
38081 GIR_ConstrainSelectedInstOperands, /*InsnID*/4,
38082 GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::INSERT_SUBREG),
38083 GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
38084 GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/3,
38085 GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/1, // acc
38086 GIR_AddImm8, /*InsnID*/3, /*Imm*/17,
38087 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/0, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
38088 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
38089 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/2, GIMT_Encode2(ARM::SPRRegClassID),
38090 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(ARM::VMLSfd),
38091 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
38092 GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
38093 GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/5,
38094 GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/8,
38095 GIR_AddImm8, /*InsnID*/2, /*Imm*/14,
38096 GIR_AddRegister, /*InsnID*/2, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
38097 GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
38098 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
38099 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
38100 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
38101 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
38102 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
38103 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
38104 GIR_AddTempSubRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(0), GIMT_Encode2(ARM::ssub_0),
38105 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::SPRRegClassID),
38106 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
38107 // GIR_Coverage, 2719,
38108 GIR_EraseRootFromParent_Done,
38109 // Label 2016: @104537
38110 GIM_Try, /*On fail goto*//*Label 2017*/ GIMT_Encode4(104857), // Rule ID 2721 //
38111 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasVFP4_UseFusedMAC_UseNEONForFP),
38112 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPR_VFP2RegClassID),
38113 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
38114 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
38115 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FMUL),
38116 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
38117 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
38118 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
38119 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
38120 GIM_CheckIsSafeToFold, /*NumInsns*/1,
38121 // (fsub:{ *:[f32] } SPR:{ *:[f32] }:$acc, (fmul:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b)) => (EXTRACT_SUBREG:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (VFMSfd:{ *:[f64] } (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$acc, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$b, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
38122 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v2s32,
38123 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s64,
38124 GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v2s32,
38125 GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_v2s32,
38126 GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_v2s32,
38127 GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_v2s32,
38128 GIR_MakeTempReg, /*TempRegID*/6, /*TypeID*/GILLT_v2s32,
38129 GIR_MakeTempReg, /*TempRegID*/7, /*TypeID*/GILLT_v2s32,
38130 GIR_MakeTempReg, /*TempRegID*/8, /*TypeID*/GILLT_v2s32,
38131 GIR_MakeTempReg, /*TempRegID*/9, /*TypeID*/GILLT_v2s32,
38132 GIR_MakeTempReg, /*TempRegID*/10, /*TypeID*/GILLT_v2s32,
38133 GIR_BuildMI, /*InsnID*/11, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
38134 GIR_AddTempRegister, /*InsnID*/11, /*TempRegID*/10, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
38135 GIR_ConstrainSelectedInstOperands, /*InsnID*/11,
38136 GIR_BuildMI, /*InsnID*/10, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
38137 GIR_AddTempRegister, /*InsnID*/10, /*TempRegID*/9, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
38138 GIR_AddSimpleTempRegister, /*InsnID*/10, /*TempRegID*/10,
38139 GIR_ConstrainSelectedInstOperands, /*InsnID*/10,
38140 GIR_BuildMI, /*InsnID*/9, /*Opcode*/GIMT_Encode2(TargetOpcode::INSERT_SUBREG),
38141 GIR_AddTempRegister, /*InsnID*/9, /*TempRegID*/8, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
38142 GIR_AddSimpleTempRegister, /*InsnID*/9, /*TempRegID*/9,
38143 GIR_Copy, /*NewInsnID*/9, /*OldInsnID*/1, /*OpIdx*/2, // b
38144 GIR_AddImm8, /*InsnID*/9, /*Imm*/17,
38145 GIR_ConstrainOperandRC, /*InsnID*/9, /*Op*/0, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
38146 GIR_ConstrainOperandRC, /*InsnID*/9, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
38147 GIR_ConstrainOperandRC, /*InsnID*/9, /*Op*/2, GIMT_Encode2(ARM::SPRRegClassID),
38148 GIR_BuildMI, /*InsnID*/8, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
38149 GIR_AddTempRegister, /*InsnID*/8, /*TempRegID*/7, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
38150 GIR_ConstrainSelectedInstOperands, /*InsnID*/8,
38151 GIR_BuildMI, /*InsnID*/7, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
38152 GIR_AddTempRegister, /*InsnID*/7, /*TempRegID*/6, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
38153 GIR_AddSimpleTempRegister, /*InsnID*/7, /*TempRegID*/7,
38154 GIR_ConstrainSelectedInstOperands, /*InsnID*/7,
38155 GIR_BuildMI, /*InsnID*/6, /*Opcode*/GIMT_Encode2(TargetOpcode::INSERT_SUBREG),
38156 GIR_AddTempRegister, /*InsnID*/6, /*TempRegID*/5, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
38157 GIR_AddSimpleTempRegister, /*InsnID*/6, /*TempRegID*/6,
38158 GIR_Copy, /*NewInsnID*/6, /*OldInsnID*/1, /*OpIdx*/1, // a
38159 GIR_AddImm8, /*InsnID*/6, /*Imm*/17,
38160 GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/0, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
38161 GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
38162 GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/2, GIMT_Encode2(ARM::SPRRegClassID),
38163 GIR_BuildMI, /*InsnID*/5, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
38164 GIR_AddTempRegister, /*InsnID*/5, /*TempRegID*/4, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
38165 GIR_ConstrainSelectedInstOperands, /*InsnID*/5,
38166 GIR_BuildMI, /*InsnID*/4, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
38167 GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/3, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
38168 GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/4,
38169 GIR_ConstrainSelectedInstOperands, /*InsnID*/4,
38170 GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::INSERT_SUBREG),
38171 GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
38172 GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/3,
38173 GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/1, // acc
38174 GIR_AddImm8, /*InsnID*/3, /*Imm*/17,
38175 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/0, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
38176 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
38177 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/2, GIMT_Encode2(ARM::SPRRegClassID),
38178 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(ARM::VFMSfd),
38179 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
38180 GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
38181 GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/5,
38182 GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/8,
38183 GIR_AddImm8, /*InsnID*/2, /*Imm*/14,
38184 GIR_AddRegister, /*InsnID*/2, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
38185 GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
38186 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
38187 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
38188 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
38189 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
38190 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
38191 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
38192 GIR_AddTempSubRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(0), GIMT_Encode2(ARM::ssub_0),
38193 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::SPRRegClassID),
38194 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
38195 // GIR_Coverage, 2721,
38196 GIR_EraseRootFromParent_Done,
38197 // Label 2017: @104857
38198 GIM_Try, /*On fail goto*//*Label 2018*/ GIMT_Encode4(104897), // Rule ID 633 //
38199 GIM_CheckFeatures, GIMT_Encode2(GIFBS_DontUseNEONForFP_HasVFP2),
38200 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
38201 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
38202 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
38203 // (fsub:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm) => (VSUBS:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
38204 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSUBS),
38205 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
38206 GIR_RootToRootCopy, /*OpIdx*/1, // Sn
38207 GIR_RootToRootCopy, /*OpIdx*/2, // Sm
38208 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
38209 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
38210 GIR_RootConstrainSelectedInstOperands,
38211 // GIR_Coverage, 633,
38212 GIR_EraseRootFromParent_Done,
38213 // Label 2018: @104897
38214 GIM_Try, /*On fail goto*//*Label 2019*/ GIMT_Encode4(105122), // Rule ID 2716 //
38215 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_UseNEONForFP),
38216 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPR_VFP2RegClassID),
38217 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
38218 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
38219 // (fsub:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b) => (EXTRACT_SUBREG:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (VSUBfd:{ *:[f64] } (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$b, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
38220 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v2s32,
38221 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s64,
38222 GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v2s32,
38223 GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_v2s32,
38224 GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_v2s32,
38225 GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_v2s32,
38226 GIR_MakeTempReg, /*TempRegID*/6, /*TypeID*/GILLT_v2s32,
38227 GIR_MakeTempReg, /*TempRegID*/7, /*TypeID*/GILLT_v2s32,
38228 GIR_BuildMI, /*InsnID*/8, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
38229 GIR_AddTempRegister, /*InsnID*/8, /*TempRegID*/7, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
38230 GIR_ConstrainSelectedInstOperands, /*InsnID*/8,
38231 GIR_BuildMI, /*InsnID*/7, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
38232 GIR_AddTempRegister, /*InsnID*/7, /*TempRegID*/6, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
38233 GIR_AddSimpleTempRegister, /*InsnID*/7, /*TempRegID*/7,
38234 GIR_ConstrainSelectedInstOperands, /*InsnID*/7,
38235 GIR_BuildMI, /*InsnID*/6, /*Opcode*/GIMT_Encode2(TargetOpcode::INSERT_SUBREG),
38236 GIR_AddTempRegister, /*InsnID*/6, /*TempRegID*/5, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
38237 GIR_AddSimpleTempRegister, /*InsnID*/6, /*TempRegID*/6,
38238 GIR_Copy, /*NewInsnID*/6, /*OldInsnID*/0, /*OpIdx*/2, // b
38239 GIR_AddImm8, /*InsnID*/6, /*Imm*/17,
38240 GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/0, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
38241 GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
38242 GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/2, GIMT_Encode2(ARM::SPRRegClassID),
38243 GIR_BuildMI, /*InsnID*/5, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
38244 GIR_AddTempRegister, /*InsnID*/5, /*TempRegID*/4, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
38245 GIR_ConstrainSelectedInstOperands, /*InsnID*/5,
38246 GIR_BuildMI, /*InsnID*/4, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
38247 GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/3, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
38248 GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/4,
38249 GIR_ConstrainSelectedInstOperands, /*InsnID*/4,
38250 GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::INSERT_SUBREG),
38251 GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
38252 GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/3,
38253 GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/1, // a
38254 GIR_AddImm8, /*InsnID*/3, /*Imm*/17,
38255 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/0, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
38256 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
38257 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/2, GIMT_Encode2(ARM::SPRRegClassID),
38258 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(ARM::VSUBfd),
38259 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
38260 GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
38261 GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/5,
38262 GIR_AddImm8, /*InsnID*/2, /*Imm*/14,
38263 GIR_AddRegister, /*InsnID*/2, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
38264 GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
38265 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
38266 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
38267 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
38268 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
38269 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
38270 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
38271 GIR_AddTempSubRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(0), GIMT_Encode2(ARM::ssub_0),
38272 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::SPRRegClassID),
38273 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
38274 // GIR_Coverage, 2716,
38275 GIR_EraseRootFromParent_Done,
38276 // Label 2019: @105122
38277 GIM_Reject,
38278 // Label 2015: @105123
38279 GIM_Reject,
38280 // Label 2008: @105124
38281 GIM_Try, /*On fail goto*//*Label 2020*/ GIMT_Encode4(105170), // Rule ID 632 //
38282 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasVFP2),
38283 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
38284 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
38285 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
38286 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
38287 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
38288 // (fsub:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm) => (VSUBD:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
38289 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSUBD),
38290 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Dd]
38291 GIR_RootToRootCopy, /*OpIdx*/1, // Dn
38292 GIR_RootToRootCopy, /*OpIdx*/2, // Dm
38293 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
38294 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
38295 GIR_RootConstrainSelectedInstOperands,
38296 // GIR_Coverage, 632,
38297 GIR_EraseRootFromParent_Done,
38298 // Label 2020: @105170
38299 GIM_Reject,
38300 // Label 2009: @105171
38301 GIM_Try, /*On fail goto*//*Label 2021*/ GIMT_Encode4(105217), // Rule ID 985 //
38302 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
38303 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
38304 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
38305 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
38306 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
38307 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
38308 // (fsub:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) => (VSUBfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
38309 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSUBfd),
38310 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
38311 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
38312 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
38313 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
38314 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
38315 GIR_RootConstrainSelectedInstOperands,
38316 // GIR_Coverage, 985,
38317 GIR_EraseRootFromParent_Done,
38318 // Label 2021: @105217
38319 GIM_Reject,
38320 // Label 2010: @105218
38321 GIM_Try, /*On fail goto*//*Label 2022*/ GIMT_Encode4(105394),
38322 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
38323 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
38324 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
38325 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
38326 GIM_Try, /*On fail goto*//*Label 2023*/ GIMT_Encode4(105299), // Rule ID 940 //
38327 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON_UseFPVMLx),
38328 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
38329 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FMUL),
38330 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
38331 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
38332 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
38333 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
38334 GIM_CheckIsSafeToFold, /*NumInsns*/1,
38335 // (fsub:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, (fmul:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)) => (VMLShd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
38336 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMLShd),
38337 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
38338 GIR_RootToRootCopy, /*OpIdx*/1, // src1
38339 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
38340 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
38341 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
38342 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
38343 GIR_RootConstrainSelectedInstOperands,
38344 // GIR_Coverage, 940,
38345 GIR_EraseRootFromParent_Done,
38346 // Label 2023: @105299
38347 GIM_Try, /*On fail goto*//*Label 2024*/ GIMT_Encode4(105361), // Rule ID 966 //
38348 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON_UseFusedMAC),
38349 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
38350 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FMUL),
38351 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
38352 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
38353 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
38354 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
38355 GIM_CheckIsSafeToFold, /*NumInsns*/1,
38356 // (fsub:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, (fmul:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)) => (VFMShd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
38357 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VFMShd),
38358 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
38359 GIR_RootToRootCopy, /*OpIdx*/1, // src1
38360 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
38361 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
38362 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
38363 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
38364 GIR_RootConstrainSelectedInstOperands,
38365 // GIR_Coverage, 966,
38366 GIR_EraseRootFromParent_Done,
38367 // Label 2024: @105361
38368 GIM_Try, /*On fail goto*//*Label 2025*/ GIMT_Encode4(105393), // Rule ID 987 //
38369 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
38370 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
38371 // (fsub:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) => (VSUBhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
38372 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSUBhd),
38373 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
38374 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
38375 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
38376 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
38377 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
38378 GIR_RootConstrainSelectedInstOperands,
38379 // GIR_Coverage, 987,
38380 GIR_EraseRootFromParent_Done,
38381 // Label 2025: @105393
38382 GIM_Reject,
38383 // Label 2022: @105394
38384 GIM_Reject,
38385 // Label 2011: @105395
38386 GIM_Try, /*On fail goto*//*Label 2026*/ GIMT_Encode4(105506),
38387 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
38388 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
38389 GIM_Try, /*On fail goto*//*Label 2027*/ GIMT_Encode4(105446), // Rule ID 986 //
38390 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
38391 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
38392 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
38393 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
38394 // (fsub:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) => (VSUBfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
38395 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSUBfq),
38396 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
38397 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
38398 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
38399 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
38400 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
38401 GIR_RootConstrainSelectedInstOperands,
38402 // GIR_Coverage, 986,
38403 GIR_EraseRootFromParent_Done,
38404 // Label 2027: @105446
38405 GIM_Try, /*On fail goto*//*Label 2028*/ GIMT_Encode4(105505), // Rule ID 4139 //
38406 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
38407 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
38408 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
38409 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
38410 // (fsub:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qm, MQPR:{ *:[v4f32] }:$Qn) => (MVE_VSUBf32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qm, MQPR:{ *:[v4f32] }:$Qn)
38411 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
38412 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
38413 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
38414 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSUBf32),
38415 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
38416 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
38417 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
38418 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
38419 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
38420 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
38421 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
38422 GIR_RootConstrainSelectedInstOperands,
38423 // GIR_Coverage, 4139,
38424 GIR_EraseRootFromParent_Done,
38425 // Label 2028: @105505
38426 GIM_Reject,
38427 // Label 2026: @105506
38428 GIM_Reject,
38429 // Label 2012: @105507
38430 GIM_Try, /*On fail goto*//*Label 2029*/ GIMT_Encode4(105758),
38431 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
38432 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
38433 GIM_Try, /*On fail goto*//*Label 2030*/ GIMT_Encode4(105588), // Rule ID 941 //
38434 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON_UseFPVMLx),
38435 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
38436 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
38437 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
38438 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FMUL),
38439 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s16,
38440 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s16,
38441 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
38442 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
38443 GIM_CheckIsSafeToFold, /*NumInsns*/1,
38444 // (fsub:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, (fmul:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)) => (VMLShq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
38445 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMLShq),
38446 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
38447 GIR_RootToRootCopy, /*OpIdx*/1, // src1
38448 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
38449 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
38450 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
38451 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
38452 GIR_RootConstrainSelectedInstOperands,
38453 // GIR_Coverage, 941,
38454 GIR_EraseRootFromParent_Done,
38455 // Label 2030: @105588
38456 GIM_Try, /*On fail goto*//*Label 2031*/ GIMT_Encode4(105658), // Rule ID 967 //
38457 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON_UseFusedMAC),
38458 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
38459 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
38460 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
38461 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FMUL),
38462 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s16,
38463 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s16,
38464 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
38465 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
38466 GIM_CheckIsSafeToFold, /*NumInsns*/1,
38467 // (fsub:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, (fmul:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)) => (VFMShq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
38468 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VFMShq),
38469 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
38470 GIR_RootToRootCopy, /*OpIdx*/1, // src1
38471 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
38472 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
38473 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
38474 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
38475 GIR_RootConstrainSelectedInstOperands,
38476 // GIR_Coverage, 967,
38477 GIR_EraseRootFromParent_Done,
38478 // Label 2031: @105658
38479 GIM_Try, /*On fail goto*//*Label 2032*/ GIMT_Encode4(105698), // Rule ID 988 //
38480 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
38481 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
38482 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
38483 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
38484 // (fsub:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) => (VSUBhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
38485 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSUBhq),
38486 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
38487 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
38488 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
38489 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
38490 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
38491 GIR_RootConstrainSelectedInstOperands,
38492 // GIR_Coverage, 988,
38493 GIR_EraseRootFromParent_Done,
38494 // Label 2032: @105698
38495 GIM_Try, /*On fail goto*//*Label 2033*/ GIMT_Encode4(105757), // Rule ID 4143 //
38496 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
38497 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
38498 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
38499 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
38500 // (fsub:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qm, MQPR:{ *:[v8f16] }:$Qn) => (MVE_VSUBf16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qm, MQPR:{ *:[v8f16] }:$Qn)
38501 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
38502 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
38503 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
38504 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VSUBf16),
38505 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
38506 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
38507 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
38508 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
38509 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
38510 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
38511 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
38512 GIR_RootConstrainSelectedInstOperands,
38513 // GIR_Coverage, 4143,
38514 GIR_EraseRootFromParent_Done,
38515 // Label 2033: @105757
38516 GIM_Reject,
38517 // Label 2029: @105758
38518 GIM_Reject,
38519 // Label 2013: @105759
38520 GIM_Reject,
38521 // Label 33: @105760
38522 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(0), GIMT_Encode2(13), /*)*//*default:*//*Label 2041*/ GIMT_Encode4(106739),
38523 /*GILLT_s16*//*Label 2034*/ GIMT_Encode4(105823),
38524 /*GILLT_s32*//*Label 2035*/ GIMT_Encode4(105870),
38525 /*GILLT_s64*//*Label 2036*/ GIMT_Encode4(106262), GIMT_Encode4(0),
38526 /*GILLT_v2s32*//*Label 2037*/ GIMT_Encode4(106421), GIMT_Encode4(0), GIMT_Encode4(0),
38527 /*GILLT_v4s16*//*Label 2038*/ GIMT_Encode4(106468),
38528 /*GILLT_v4s32*//*Label 2039*/ GIMT_Encode4(106515), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
38529 /*GILLT_v8s16*//*Label 2040*/ GIMT_Encode4(106627),
38530 // Label 2034: @105823
38531 GIM_Try, /*On fail goto*//*Label 2042*/ GIMT_Encode4(105869), // Rule ID 640 //
38532 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16),
38533 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s16,
38534 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s16,
38535 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
38536 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
38537 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
38538 // (fmul:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm) => (VMULH:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
38539 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMULH),
38540 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
38541 GIR_RootToRootCopy, /*OpIdx*/1, // Sn
38542 GIR_RootToRootCopy, /*OpIdx*/2, // Sm
38543 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
38544 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
38545 GIR_RootConstrainSelectedInstOperands,
38546 // GIR_Coverage, 640,
38547 GIR_EraseRootFromParent_Done,
38548 // Label 2042: @105869
38549 GIM_Reject,
38550 // Label 2035: @105870
38551 GIM_Try, /*On fail goto*//*Label 2043*/ GIMT_Encode4(106261),
38552 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
38553 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
38554 GIM_Try, /*On fail goto*//*Label 2044*/ GIMT_Encode4(105938), // Rule ID 2298 //
38555 GIM_CheckFeatures, GIMT_Encode2(GIFBS_NoHonorSignDependentRounding),
38556 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
38557 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
38558 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
38559 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
38560 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
38561 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
38562 GIM_CheckIsSafeToFold, /*NumInsns*/1,
38563 // (fmul:{ *:[f32] } (fneg:{ *:[f32] } SPR:{ *:[f32] }:$a), SPR:{ *:[f32] }:$b) => (VNMULS:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b)
38564 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VNMULS),
38565 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
38566 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // a
38567 GIR_RootToRootCopy, /*OpIdx*/2, // b
38568 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
38569 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
38570 GIR_RootConstrainSelectedInstOperands,
38571 // GIR_Coverage, 2298,
38572 GIR_EraseRootFromParent_Done,
38573 // Label 2044: @105938
38574 GIM_Try, /*On fail goto*//*Label 2045*/ GIMT_Encode4(105995), // Rule ID 5828 //
38575 GIM_CheckFeatures, GIMT_Encode2(GIFBS_NoHonorSignDependentRounding),
38576 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
38577 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
38578 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
38579 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
38580 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
38581 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
38582 GIM_CheckIsSafeToFold, /*NumInsns*/1,
38583 // (fmul:{ *:[f32] } SPR:{ *:[f32] }:$b, (fneg:{ *:[f32] } SPR:{ *:[f32] }:$a)) => (VNMULS:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b)
38584 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VNMULS),
38585 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
38586 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // a
38587 GIR_RootToRootCopy, /*OpIdx*/1, // b
38588 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
38589 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
38590 GIR_RootConstrainSelectedInstOperands,
38591 // GIR_Coverage, 5828,
38592 GIR_EraseRootFromParent_Done,
38593 // Label 2045: @105995
38594 GIM_Try, /*On fail goto*//*Label 2046*/ GIMT_Encode4(106035), // Rule ID 639 //
38595 GIM_CheckFeatures, GIMT_Encode2(GIFBS_DontUseNEONForFP_HasVFP2),
38596 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
38597 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
38598 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
38599 // (fmul:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm) => (VMULS:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
38600 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMULS),
38601 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
38602 GIR_RootToRootCopy, /*OpIdx*/1, // Sn
38603 GIR_RootToRootCopy, /*OpIdx*/2, // Sm
38604 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
38605 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
38606 GIR_RootConstrainSelectedInstOperands,
38607 // GIR_Coverage, 639,
38608 GIR_EraseRootFromParent_Done,
38609 // Label 2046: @106035
38610 GIM_Try, /*On fail goto*//*Label 2047*/ GIMT_Encode4(106260), // Rule ID 2717 //
38611 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_UseNEONForFP),
38612 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPR_VFP2RegClassID),
38613 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
38614 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
38615 // (fmul:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b) => (EXTRACT_SUBREG:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (VMULfd:{ *:[f64] } (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$b, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
38616 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v2s32,
38617 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s64,
38618 GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v2s32,
38619 GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_v2s32,
38620 GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_v2s32,
38621 GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_v2s32,
38622 GIR_MakeTempReg, /*TempRegID*/6, /*TypeID*/GILLT_v2s32,
38623 GIR_MakeTempReg, /*TempRegID*/7, /*TypeID*/GILLT_v2s32,
38624 GIR_BuildMI, /*InsnID*/8, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
38625 GIR_AddTempRegister, /*InsnID*/8, /*TempRegID*/7, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
38626 GIR_ConstrainSelectedInstOperands, /*InsnID*/8,
38627 GIR_BuildMI, /*InsnID*/7, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
38628 GIR_AddTempRegister, /*InsnID*/7, /*TempRegID*/6, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
38629 GIR_AddSimpleTempRegister, /*InsnID*/7, /*TempRegID*/7,
38630 GIR_ConstrainSelectedInstOperands, /*InsnID*/7,
38631 GIR_BuildMI, /*InsnID*/6, /*Opcode*/GIMT_Encode2(TargetOpcode::INSERT_SUBREG),
38632 GIR_AddTempRegister, /*InsnID*/6, /*TempRegID*/5, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
38633 GIR_AddSimpleTempRegister, /*InsnID*/6, /*TempRegID*/6,
38634 GIR_Copy, /*NewInsnID*/6, /*OldInsnID*/0, /*OpIdx*/2, // b
38635 GIR_AddImm8, /*InsnID*/6, /*Imm*/17,
38636 GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/0, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
38637 GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
38638 GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/2, GIMT_Encode2(ARM::SPRRegClassID),
38639 GIR_BuildMI, /*InsnID*/5, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
38640 GIR_AddTempRegister, /*InsnID*/5, /*TempRegID*/4, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
38641 GIR_ConstrainSelectedInstOperands, /*InsnID*/5,
38642 GIR_BuildMI, /*InsnID*/4, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
38643 GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/3, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
38644 GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/4,
38645 GIR_ConstrainSelectedInstOperands, /*InsnID*/4,
38646 GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::INSERT_SUBREG),
38647 GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
38648 GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/3,
38649 GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/1, // a
38650 GIR_AddImm8, /*InsnID*/3, /*Imm*/17,
38651 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/0, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
38652 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
38653 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/2, GIMT_Encode2(ARM::SPRRegClassID),
38654 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(ARM::VMULfd),
38655 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
38656 GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
38657 GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/5,
38658 GIR_AddImm8, /*InsnID*/2, /*Imm*/14,
38659 GIR_AddRegister, /*InsnID*/2, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
38660 GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
38661 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
38662 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
38663 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
38664 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
38665 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
38666 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
38667 GIR_AddTempSubRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(0), GIMT_Encode2(ARM::ssub_0),
38668 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::SPRRegClassID),
38669 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
38670 // GIR_Coverage, 2717,
38671 GIR_EraseRootFromParent_Done,
38672 // Label 2047: @106260
38673 GIM_Reject,
38674 // Label 2043: @106261
38675 GIM_Reject,
38676 // Label 2036: @106262
38677 GIM_Try, /*On fail goto*//*Label 2048*/ GIMT_Encode4(106420),
38678 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
38679 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
38680 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
38681 GIM_Try, /*On fail goto*//*Label 2049*/ GIMT_Encode4(106330), // Rule ID 2297 //
38682 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_NoHonorSignDependentRounding),
38683 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
38684 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
38685 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
38686 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
38687 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
38688 GIM_CheckIsSafeToFold, /*NumInsns*/1,
38689 // (fmul:{ *:[f64] } (fneg:{ *:[f64] } DPR:{ *:[f64] }:$a), DPR:{ *:[f64] }:$b) => (VNMULD:{ *:[f64] } DPR:{ *:[f64] }:$a, DPR:{ *:[f64] }:$b)
38690 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VNMULD),
38691 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Dd]
38692 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // a
38693 GIR_RootToRootCopy, /*OpIdx*/2, // b
38694 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
38695 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
38696 GIR_RootConstrainSelectedInstOperands,
38697 // GIR_Coverage, 2297,
38698 GIR_EraseRootFromParent_Done,
38699 // Label 2049: @106330
38700 GIM_Try, /*On fail goto*//*Label 2050*/ GIMT_Encode4(106383), // Rule ID 5827 //
38701 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_NoHonorSignDependentRounding),
38702 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
38703 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
38704 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
38705 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
38706 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
38707 GIM_CheckIsSafeToFold, /*NumInsns*/1,
38708 // (fmul:{ *:[f64] } DPR:{ *:[f64] }:$b, (fneg:{ *:[f64] } DPR:{ *:[f64] }:$a)) => (VNMULD:{ *:[f64] } DPR:{ *:[f64] }:$a, DPR:{ *:[f64] }:$b)
38709 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VNMULD),
38710 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Dd]
38711 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // a
38712 GIR_RootToRootCopy, /*OpIdx*/1, // b
38713 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
38714 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
38715 GIR_RootConstrainSelectedInstOperands,
38716 // GIR_Coverage, 5827,
38717 GIR_EraseRootFromParent_Done,
38718 // Label 2050: @106383
38719 GIM_Try, /*On fail goto*//*Label 2051*/ GIMT_Encode4(106419), // Rule ID 638 //
38720 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasVFP2),
38721 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
38722 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
38723 // (fmul:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm) => (VMULD:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
38724 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMULD),
38725 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Dd]
38726 GIR_RootToRootCopy, /*OpIdx*/1, // Dn
38727 GIR_RootToRootCopy, /*OpIdx*/2, // Dm
38728 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
38729 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
38730 GIR_RootConstrainSelectedInstOperands,
38731 // GIR_Coverage, 638,
38732 GIR_EraseRootFromParent_Done,
38733 // Label 2051: @106419
38734 GIM_Reject,
38735 // Label 2048: @106420
38736 GIM_Reject,
38737 // Label 2037: @106421
38738 GIM_Try, /*On fail goto*//*Label 2052*/ GIMT_Encode4(106467), // Rule ID 860 //
38739 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
38740 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
38741 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
38742 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
38743 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
38744 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
38745 // (fmul:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) => (VMULfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
38746 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMULfd),
38747 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
38748 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
38749 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
38750 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
38751 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
38752 GIR_RootConstrainSelectedInstOperands,
38753 // GIR_Coverage, 860,
38754 GIR_EraseRootFromParent_Done,
38755 // Label 2052: @106467
38756 GIM_Reject,
38757 // Label 2038: @106468
38758 GIM_Try, /*On fail goto*//*Label 2053*/ GIMT_Encode4(106514), // Rule ID 862 //
38759 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
38760 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
38761 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
38762 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
38763 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
38764 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
38765 // (fmul:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) => (VMULhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
38766 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMULhd),
38767 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
38768 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
38769 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
38770 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
38771 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
38772 GIR_RootConstrainSelectedInstOperands,
38773 // GIR_Coverage, 862,
38774 GIR_EraseRootFromParent_Done,
38775 // Label 2053: @106514
38776 GIM_Reject,
38777 // Label 2039: @106515
38778 GIM_Try, /*On fail goto*//*Label 2054*/ GIMT_Encode4(106626),
38779 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
38780 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
38781 GIM_Try, /*On fail goto*//*Label 2055*/ GIMT_Encode4(106566), // Rule ID 861 //
38782 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
38783 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
38784 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
38785 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
38786 // (fmul:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) => (VMULfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
38787 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMULfq),
38788 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
38789 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
38790 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
38791 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
38792 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
38793 GIR_RootConstrainSelectedInstOperands,
38794 // GIR_Coverage, 861,
38795 GIR_EraseRootFromParent_Done,
38796 // Label 2055: @106566
38797 GIM_Try, /*On fail goto*//*Label 2056*/ GIMT_Encode4(106625), // Rule ID 4103 //
38798 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
38799 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
38800 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
38801 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
38802 // (fmul:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qm, MQPR:{ *:[v4f32] }:$Qn) => (MVE_VMULf32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qm, MQPR:{ *:[v4f32] }:$Qn)
38803 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
38804 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
38805 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
38806 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMULf32),
38807 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
38808 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
38809 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
38810 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
38811 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
38812 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
38813 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
38814 GIR_RootConstrainSelectedInstOperands,
38815 // GIR_Coverage, 4103,
38816 GIR_EraseRootFromParent_Done,
38817 // Label 2056: @106625
38818 GIM_Reject,
38819 // Label 2054: @106626
38820 GIM_Reject,
38821 // Label 2040: @106627
38822 GIM_Try, /*On fail goto*//*Label 2057*/ GIMT_Encode4(106738),
38823 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
38824 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
38825 GIM_Try, /*On fail goto*//*Label 2058*/ GIMT_Encode4(106678), // Rule ID 863 //
38826 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
38827 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
38828 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
38829 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
38830 // (fmul:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) => (VMULhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
38831 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMULhq),
38832 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
38833 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
38834 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
38835 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
38836 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
38837 GIR_RootConstrainSelectedInstOperands,
38838 // GIR_Coverage, 863,
38839 GIR_EraseRootFromParent_Done,
38840 // Label 2058: @106678
38841 GIM_Try, /*On fail goto*//*Label 2059*/ GIMT_Encode4(106737), // Rule ID 4107 //
38842 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
38843 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
38844 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
38845 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
38846 // (fmul:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qm, MQPR:{ *:[v8f16] }:$Qn) => (MVE_VMULf16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qm, MQPR:{ *:[v8f16] }:$Qn)
38847 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
38848 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
38849 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
38850 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMULf16),
38851 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
38852 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
38853 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
38854 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
38855 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
38856 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
38857 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
38858 GIR_RootConstrainSelectedInstOperands,
38859 // GIR_Coverage, 4107,
38860 GIR_EraseRootFromParent_Done,
38861 // Label 2059: @106737
38862 GIM_Reject,
38863 // Label 2057: @106738
38864 GIM_Reject,
38865 // Label 2041: @106739
38866 GIM_Reject,
38867 // Label 34: @106740
38868 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(0), GIMT_Encode2(13), /*)*//*default:*//*Label 2067*/ GIMT_Encode4(108554),
38869 /*GILLT_s16*//*Label 2060*/ GIMT_Encode4(106803),
38870 /*GILLT_s32*//*Label 2061*/ GIMT_Encode4(107190),
38871 /*GILLT_s64*//*Label 2062*/ GIMT_Encode4(107577), GIMT_Encode4(0),
38872 /*GILLT_v2s32*//*Label 2063*/ GIMT_Encode4(107964), GIMT_Encode4(0), GIMT_Encode4(0),
38873 /*GILLT_v4s16*//*Label 2064*/ GIMT_Encode4(108144),
38874 /*GILLT_v4s32*//*Label 2065*/ GIMT_Encode4(108200), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
38875 /*GILLT_v8s16*//*Label 2066*/ GIMT_Encode4(108440),
38876 // Label 2060: @106803
38877 GIM_Try, /*On fail goto*//*Label 2068*/ GIMT_Encode4(107189),
38878 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s16,
38879 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s16,
38880 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s16,
38881 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
38882 GIM_Try, /*On fail goto*//*Label 2069*/ GIMT_Encode4(106895), // Rule ID 2404 //
38883 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16),
38884 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
38885 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
38886 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s16,
38887 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
38888 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
38889 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/3, // MIs[2]
38890 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FNEG),
38891 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s16,
38892 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
38893 GIM_CheckIsSafeToFold, /*NumInsns*/2,
38894 // (fma:{ *:[f16] } (fneg:{ *:[f16] } HPR:{ *:[f16] }:$Sn), HPR:{ *:[f16] }:$Sm, (fneg:{ *:[f16] } HPR:{ *:[f16] }:$Sdin)) => (VFNMAH:{ *:[f16] } HPR:{ *:[f16] }:$Sdin, HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
38895 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VFNMAH),
38896 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
38897 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Sdin
38898 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Sn
38899 GIR_RootToRootCopy, /*OpIdx*/2, // Sm
38900 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
38901 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
38902 GIR_RootConstrainSelectedInstOperands,
38903 // GIR_Coverage, 2404,
38904 GIR_EraseRootFromParent_Done,
38905 // Label 2069: @106895
38906 GIM_Try, /*On fail goto*//*Label 2070*/ GIMT_Encode4(106969), // Rule ID 5836 //
38907 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16),
38908 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
38909 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
38910 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
38911 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s16,
38912 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
38913 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/3, // MIs[2]
38914 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FNEG),
38915 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s16,
38916 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
38917 GIM_CheckIsSafeToFold, /*NumInsns*/2,
38918 // (fma:{ *:[f16] } HPR:{ *:[f16] }:$Sm, (fneg:{ *:[f16] } HPR:{ *:[f16] }:$Sn), (fneg:{ *:[f16] } HPR:{ *:[f16] }:$Sdin)) => (VFNMAH:{ *:[f16] } HPR:{ *:[f16] }:$Sdin, HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
38919 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VFNMAH),
38920 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
38921 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Sdin
38922 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Sn
38923 GIR_RootToRootCopy, /*OpIdx*/1, // Sm
38924 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
38925 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
38926 GIR_RootConstrainSelectedInstOperands,
38927 // GIR_Coverage, 5836,
38928 GIR_EraseRootFromParent_Done,
38929 // Label 2070: @106969
38930 GIM_Try, /*On fail goto*//*Label 2071*/ GIMT_Encode4(107028), // Rule ID 2396 //
38931 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16),
38932 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
38933 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
38934 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s16,
38935 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
38936 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
38937 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
38938 GIM_CheckIsSafeToFold, /*NumInsns*/1,
38939 // (fma:{ *:[f16] } (fneg:{ *:[f16] } HPR:{ *:[f16] }:$Sn), HPR:{ *:[f16] }:$Sm, HPR:{ *:[f16] }:$Sdin) => (VFMSH:{ *:[f16] } HPR:{ *:[f16] }:$Sdin, HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
38940 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VFMSH),
38941 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
38942 GIR_RootToRootCopy, /*OpIdx*/3, // Sdin
38943 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Sn
38944 GIR_RootToRootCopy, /*OpIdx*/2, // Sm
38945 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
38946 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
38947 GIR_RootConstrainSelectedInstOperands,
38948 // GIR_Coverage, 2396,
38949 GIR_EraseRootFromParent_Done,
38950 // Label 2071: @107028
38951 GIM_Try, /*On fail goto*//*Label 2072*/ GIMT_Encode4(107087), // Rule ID 5833 //
38952 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16),
38953 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
38954 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
38955 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
38956 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s16,
38957 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
38958 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
38959 GIM_CheckIsSafeToFold, /*NumInsns*/1,
38960 // (fma:{ *:[f16] } HPR:{ *:[f16] }:$Sm, (fneg:{ *:[f16] } HPR:{ *:[f16] }:$Sn), HPR:{ *:[f16] }:$Sdin) => (VFMSH:{ *:[f16] } HPR:{ *:[f16] }:$Sdin, HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
38961 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VFMSH),
38962 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
38963 GIR_RootToRootCopy, /*OpIdx*/3, // Sdin
38964 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Sn
38965 GIR_RootToRootCopy, /*OpIdx*/1, // Sm
38966 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
38967 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
38968 GIR_RootConstrainSelectedInstOperands,
38969 // GIR_Coverage, 5833,
38970 GIR_EraseRootFromParent_Done,
38971 // Label 2072: @107087
38972 GIM_Try, /*On fail goto*//*Label 2073*/ GIMT_Encode4(107146), // Rule ID 2409 //
38973 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16),
38974 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
38975 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
38976 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
38977 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
38978 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s16,
38979 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
38980 GIM_CheckIsSafeToFold, /*NumInsns*/1,
38981 // (fma:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm, (fneg:{ *:[f16] } HPR:{ *:[f16] }:$Sdin)) => (VFNMSH:{ *:[f16] } HPR:{ *:[f16] }:$Sdin, HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
38982 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VFNMSH),
38983 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
38984 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Sdin
38985 GIR_RootToRootCopy, /*OpIdx*/1, // Sn
38986 GIR_RootToRootCopy, /*OpIdx*/2, // Sm
38987 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
38988 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
38989 GIR_RootConstrainSelectedInstOperands,
38990 // GIR_Coverage, 2409,
38991 GIR_EraseRootFromParent_Done,
38992 // Label 2073: @107146
38993 GIM_Try, /*On fail goto*//*Label 2074*/ GIMT_Encode4(107188), // Rule ID 2390 //
38994 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16),
38995 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
38996 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
38997 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
38998 // (fma:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm, HPR:{ *:[f16] }:$Sdin) => (VFMAH:{ *:[f16] } HPR:{ *:[f16] }:$Sdin, HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
38999 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VFMAH),
39000 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
39001 GIR_RootToRootCopy, /*OpIdx*/3, // Sdin
39002 GIR_RootToRootCopy, /*OpIdx*/1, // Sn
39003 GIR_RootToRootCopy, /*OpIdx*/2, // Sm
39004 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
39005 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39006 GIR_RootConstrainSelectedInstOperands,
39007 // GIR_Coverage, 2390,
39008 GIR_EraseRootFromParent_Done,
39009 // Label 2074: @107188
39010 GIM_Reject,
39011 // Label 2068: @107189
39012 GIM_Reject,
39013 // Label 2061: @107190
39014 GIM_Try, /*On fail goto*//*Label 2075*/ GIMT_Encode4(107576),
39015 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
39016 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
39017 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
39018 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
39019 GIM_Try, /*On fail goto*//*Label 2076*/ GIMT_Encode4(107282), // Rule ID 2403 //
39020 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasVFP4),
39021 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
39022 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
39023 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
39024 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
39025 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
39026 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/3, // MIs[2]
39027 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FNEG),
39028 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
39029 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
39030 GIM_CheckIsSafeToFold, /*NumInsns*/2,
39031 // (fma:{ *:[f32] } (fneg:{ *:[f32] } SPR:{ *:[f32] }:$Sn), SPR:{ *:[f32] }:$Sm, (fneg:{ *:[f32] } SPR:{ *:[f32] }:$Sdin)) => (VFNMAS:{ *:[f32] } SPR:{ *:[f32] }:$Sdin, SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
39032 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VFNMAS),
39033 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
39034 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Sdin
39035 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Sn
39036 GIR_RootToRootCopy, /*OpIdx*/2, // Sm
39037 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
39038 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39039 GIR_RootConstrainSelectedInstOperands,
39040 // GIR_Coverage, 2403,
39041 GIR_EraseRootFromParent_Done,
39042 // Label 2076: @107282
39043 GIM_Try, /*On fail goto*//*Label 2077*/ GIMT_Encode4(107356), // Rule ID 5835 //
39044 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasVFP4),
39045 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
39046 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
39047 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
39048 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
39049 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
39050 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/3, // MIs[2]
39051 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FNEG),
39052 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
39053 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
39054 GIM_CheckIsSafeToFold, /*NumInsns*/2,
39055 // (fma:{ *:[f32] } SPR:{ *:[f32] }:$Sm, (fneg:{ *:[f32] } SPR:{ *:[f32] }:$Sn), (fneg:{ *:[f32] } SPR:{ *:[f32] }:$Sdin)) => (VFNMAS:{ *:[f32] } SPR:{ *:[f32] }:$Sdin, SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
39056 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VFNMAS),
39057 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
39058 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Sdin
39059 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Sn
39060 GIR_RootToRootCopy, /*OpIdx*/1, // Sm
39061 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
39062 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39063 GIR_RootConstrainSelectedInstOperands,
39064 // GIR_Coverage, 5835,
39065 GIR_EraseRootFromParent_Done,
39066 // Label 2077: @107356
39067 GIM_Try, /*On fail goto*//*Label 2078*/ GIMT_Encode4(107415), // Rule ID 2395 //
39068 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasVFP4),
39069 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
39070 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
39071 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
39072 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
39073 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
39074 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
39075 GIM_CheckIsSafeToFold, /*NumInsns*/1,
39076 // (fma:{ *:[f32] } (fneg:{ *:[f32] } SPR:{ *:[f32] }:$Sn), SPR:{ *:[f32] }:$Sm, SPR:{ *:[f32] }:$Sdin) => (VFMSS:{ *:[f32] } SPR:{ *:[f32] }:$Sdin, SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
39077 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VFMSS),
39078 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
39079 GIR_RootToRootCopy, /*OpIdx*/3, // Sdin
39080 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Sn
39081 GIR_RootToRootCopy, /*OpIdx*/2, // Sm
39082 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
39083 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39084 GIR_RootConstrainSelectedInstOperands,
39085 // GIR_Coverage, 2395,
39086 GIR_EraseRootFromParent_Done,
39087 // Label 2078: @107415
39088 GIM_Try, /*On fail goto*//*Label 2079*/ GIMT_Encode4(107474), // Rule ID 5832 //
39089 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasVFP4),
39090 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
39091 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
39092 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
39093 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
39094 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
39095 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
39096 GIM_CheckIsSafeToFold, /*NumInsns*/1,
39097 // (fma:{ *:[f32] } SPR:{ *:[f32] }:$Sm, (fneg:{ *:[f32] } SPR:{ *:[f32] }:$Sn), SPR:{ *:[f32] }:$Sdin) => (VFMSS:{ *:[f32] } SPR:{ *:[f32] }:$Sdin, SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
39098 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VFMSS),
39099 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
39100 GIR_RootToRootCopy, /*OpIdx*/3, // Sdin
39101 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Sn
39102 GIR_RootToRootCopy, /*OpIdx*/1, // Sm
39103 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
39104 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39105 GIR_RootConstrainSelectedInstOperands,
39106 // GIR_Coverage, 5832,
39107 GIR_EraseRootFromParent_Done,
39108 // Label 2079: @107474
39109 GIM_Try, /*On fail goto*//*Label 2080*/ GIMT_Encode4(107533), // Rule ID 2408 //
39110 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasVFP4),
39111 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
39112 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
39113 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
39114 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
39115 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
39116 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
39117 GIM_CheckIsSafeToFold, /*NumInsns*/1,
39118 // (fma:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm, (fneg:{ *:[f32] } SPR:{ *:[f32] }:$Sdin)) => (VFNMSS:{ *:[f32] } SPR:{ *:[f32] }:$Sdin, SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
39119 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VFNMSS),
39120 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
39121 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Sdin
39122 GIR_RootToRootCopy, /*OpIdx*/1, // Sn
39123 GIR_RootToRootCopy, /*OpIdx*/2, // Sm
39124 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
39125 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39126 GIR_RootConstrainSelectedInstOperands,
39127 // GIR_Coverage, 2408,
39128 GIR_EraseRootFromParent_Done,
39129 // Label 2080: @107533
39130 GIM_Try, /*On fail goto*//*Label 2081*/ GIMT_Encode4(107575), // Rule ID 2389 //
39131 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasVFP4),
39132 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
39133 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
39134 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
39135 // (fma:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm, SPR:{ *:[f32] }:$Sdin) => (VFMAS:{ *:[f32] } SPR:{ *:[f32] }:$Sdin, SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
39136 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VFMAS),
39137 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
39138 GIR_RootToRootCopy, /*OpIdx*/3, // Sdin
39139 GIR_RootToRootCopy, /*OpIdx*/1, // Sn
39140 GIR_RootToRootCopy, /*OpIdx*/2, // Sm
39141 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
39142 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39143 GIR_RootConstrainSelectedInstOperands,
39144 // GIR_Coverage, 2389,
39145 GIR_EraseRootFromParent_Done,
39146 // Label 2081: @107575
39147 GIM_Reject,
39148 // Label 2075: @107576
39149 GIM_Reject,
39150 // Label 2062: @107577
39151 GIM_Try, /*On fail goto*//*Label 2082*/ GIMT_Encode4(107963),
39152 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
39153 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
39154 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s64,
39155 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39156 GIM_Try, /*On fail goto*//*Label 2083*/ GIMT_Encode4(107669), // Rule ID 2402 //
39157 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasVFP4),
39158 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
39159 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
39160 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
39161 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39162 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39163 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/3, // MIs[2]
39164 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FNEG),
39165 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s64,
39166 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39167 GIM_CheckIsSafeToFold, /*NumInsns*/2,
39168 // (fma:{ *:[f64] } (fneg:{ *:[f64] } DPR:{ *:[f64] }:$Dn), DPR:{ *:[f64] }:$Dm, (fneg:{ *:[f64] } DPR:{ *:[f64] }:$Ddin)) => (VFNMAD:{ *:[f64] } DPR:{ *:[f64] }:$Ddin, DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
39169 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VFNMAD),
39170 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Dd]
39171 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Ddin
39172 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Dn
39173 GIR_RootToRootCopy, /*OpIdx*/2, // Dm
39174 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
39175 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39176 GIR_RootConstrainSelectedInstOperands,
39177 // GIR_Coverage, 2402,
39178 GIR_EraseRootFromParent_Done,
39179 // Label 2083: @107669
39180 GIM_Try, /*On fail goto*//*Label 2084*/ GIMT_Encode4(107743), // Rule ID 5834 //
39181 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasVFP4),
39182 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39183 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
39184 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
39185 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
39186 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39187 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/3, // MIs[2]
39188 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FNEG),
39189 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s64,
39190 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39191 GIM_CheckIsSafeToFold, /*NumInsns*/2,
39192 // (fma:{ *:[f64] } DPR:{ *:[f64] }:$Dm, (fneg:{ *:[f64] } DPR:{ *:[f64] }:$Dn), (fneg:{ *:[f64] } DPR:{ *:[f64] }:$Ddin)) => (VFNMAD:{ *:[f64] } DPR:{ *:[f64] }:$Ddin, DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
39193 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VFNMAD),
39194 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Dd]
39195 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Ddin
39196 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Dn
39197 GIR_RootToRootCopy, /*OpIdx*/1, // Dm
39198 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
39199 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39200 GIR_RootConstrainSelectedInstOperands,
39201 // GIR_Coverage, 5834,
39202 GIR_EraseRootFromParent_Done,
39203 // Label 2084: @107743
39204 GIM_Try, /*On fail goto*//*Label 2085*/ GIMT_Encode4(107802), // Rule ID 2394 //
39205 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasVFP4),
39206 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
39207 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
39208 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
39209 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39210 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39211 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39212 GIM_CheckIsSafeToFold, /*NumInsns*/1,
39213 // (fma:{ *:[f64] } (fneg:{ *:[f64] } DPR:{ *:[f64] }:$Dn), DPR:{ *:[f64] }:$Dm, DPR:{ *:[f64] }:$Ddin) => (VFMSD:{ *:[f64] } DPR:{ *:[f64] }:$Ddin, DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
39214 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VFMSD),
39215 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Dd]
39216 GIR_RootToRootCopy, /*OpIdx*/3, // Ddin
39217 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Dn
39218 GIR_RootToRootCopy, /*OpIdx*/2, // Dm
39219 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
39220 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39221 GIR_RootConstrainSelectedInstOperands,
39222 // GIR_Coverage, 2394,
39223 GIR_EraseRootFromParent_Done,
39224 // Label 2085: @107802
39225 GIM_Try, /*On fail goto*//*Label 2086*/ GIMT_Encode4(107861), // Rule ID 5831 //
39226 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasVFP4),
39227 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39228 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
39229 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
39230 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
39231 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39232 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39233 GIM_CheckIsSafeToFold, /*NumInsns*/1,
39234 // (fma:{ *:[f64] } DPR:{ *:[f64] }:$Dm, (fneg:{ *:[f64] } DPR:{ *:[f64] }:$Dn), DPR:{ *:[f64] }:$Ddin) => (VFMSD:{ *:[f64] } DPR:{ *:[f64] }:$Ddin, DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
39235 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VFMSD),
39236 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Dd]
39237 GIR_RootToRootCopy, /*OpIdx*/3, // Ddin
39238 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Dn
39239 GIR_RootToRootCopy, /*OpIdx*/1, // Dm
39240 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
39241 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39242 GIR_RootConstrainSelectedInstOperands,
39243 // GIR_Coverage, 5831,
39244 GIR_EraseRootFromParent_Done,
39245 // Label 2086: @107861
39246 GIM_Try, /*On fail goto*//*Label 2087*/ GIMT_Encode4(107920), // Rule ID 2407 //
39247 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasVFP4),
39248 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39249 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39250 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
39251 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
39252 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
39253 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39254 GIM_CheckIsSafeToFold, /*NumInsns*/1,
39255 // (fma:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm, (fneg:{ *:[f64] } DPR:{ *:[f64] }:$Ddin)) => (VFNMSD:{ *:[f64] } DPR:{ *:[f64] }:$Ddin, DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
39256 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VFNMSD),
39257 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Dd]
39258 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Ddin
39259 GIR_RootToRootCopy, /*OpIdx*/1, // Dn
39260 GIR_RootToRootCopy, /*OpIdx*/2, // Dm
39261 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
39262 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39263 GIR_RootConstrainSelectedInstOperands,
39264 // GIR_Coverage, 2407,
39265 GIR_EraseRootFromParent_Done,
39266 // Label 2087: @107920
39267 GIM_Try, /*On fail goto*//*Label 2088*/ GIMT_Encode4(107962), // Rule ID 2388 //
39268 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasVFP4),
39269 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39270 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39271 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39272 // (fma:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm, DPR:{ *:[f64] }:$Ddin) => (VFMAD:{ *:[f64] } DPR:{ *:[f64] }:$Ddin, DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
39273 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VFMAD),
39274 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Dd]
39275 GIR_RootToRootCopy, /*OpIdx*/3, // Ddin
39276 GIR_RootToRootCopy, /*OpIdx*/1, // Dn
39277 GIR_RootToRootCopy, /*OpIdx*/2, // Dm
39278 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
39279 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39280 GIR_RootConstrainSelectedInstOperands,
39281 // GIR_Coverage, 2388,
39282 GIR_EraseRootFromParent_Done,
39283 // Label 2088: @107962
39284 GIM_Reject,
39285 // Label 2082: @107963
39286 GIM_Reject,
39287 // Label 2063: @107964
39288 GIM_Try, /*On fail goto*//*Label 2089*/ GIMT_Encode4(108143),
39289 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
39290 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
39291 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v2s32,
39292 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39293 GIM_Try, /*On fail goto*//*Label 2090*/ GIMT_Encode4(108041), // Rule ID 2500 //
39294 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasVFP4),
39295 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
39296 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
39297 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
39298 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39299 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39300 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39301 GIM_CheckIsSafeToFold, /*NumInsns*/1,
39302 // (fma:{ *:[v2f32] } (fneg:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn), DPR:{ *:[v2f32] }:$Vm, DPR:{ *:[v2f32] }:$src1) => (VFMSfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$src1, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
39303 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VFMSfd),
39304 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
39305 GIR_RootToRootCopy, /*OpIdx*/3, // src1
39306 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
39307 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
39308 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
39309 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39310 GIR_RootConstrainSelectedInstOperands,
39311 // GIR_Coverage, 2500,
39312 GIR_EraseRootFromParent_Done,
39313 // Label 2090: @108041
39314 GIM_Try, /*On fail goto*//*Label 2091*/ GIMT_Encode4(108100), // Rule ID 5874 //
39315 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasVFP4),
39316 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39317 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
39318 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
39319 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
39320 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39321 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39322 GIM_CheckIsSafeToFold, /*NumInsns*/1,
39323 // (fma:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm, (fneg:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn), DPR:{ *:[v2f32] }:$src1) => (VFMSfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$src1, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
39324 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VFMSfd),
39325 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
39326 GIR_RootToRootCopy, /*OpIdx*/3, // src1
39327 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
39328 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
39329 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
39330 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39331 GIR_RootConstrainSelectedInstOperands,
39332 // GIR_Coverage, 5874,
39333 GIR_EraseRootFromParent_Done,
39334 // Label 2091: @108100
39335 GIM_Try, /*On fail goto*//*Label 2092*/ GIMT_Encode4(108142), // Rule ID 2498 //
39336 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasVFP4),
39337 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39338 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39339 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39340 // (fma:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm, DPR:{ *:[v2f32] }:$src1) => (VFMAfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$src1, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
39341 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VFMAfd),
39342 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
39343 GIR_RootToRootCopy, /*OpIdx*/3, // src1
39344 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
39345 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
39346 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
39347 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39348 GIR_RootConstrainSelectedInstOperands,
39349 // GIR_Coverage, 2498,
39350 GIR_EraseRootFromParent_Done,
39351 // Label 2092: @108142
39352 GIM_Reject,
39353 // Label 2089: @108143
39354 GIM_Reject,
39355 // Label 2064: @108144
39356 GIM_Try, /*On fail goto*//*Label 2093*/ GIMT_Encode4(108199), // Rule ID 2496 //
39357 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
39358 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
39359 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
39360 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s16,
39361 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39362 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39363 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39364 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39365 // (fma:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm, DPR:{ *:[v4f16] }:$src1) => (VFMAhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
39366 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VFMAhd),
39367 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
39368 GIR_RootToRootCopy, /*OpIdx*/3, // src1
39369 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
39370 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
39371 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
39372 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39373 GIR_RootConstrainSelectedInstOperands,
39374 // GIR_Coverage, 2496,
39375 GIR_EraseRootFromParent_Done,
39376 // Label 2093: @108199
39377 GIM_Reject,
39378 // Label 2065: @108200
39379 GIM_Try, /*On fail goto*//*Label 2094*/ GIMT_Encode4(108439),
39380 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
39381 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
39382 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v4s32,
39383 GIM_Try, /*On fail goto*//*Label 2095*/ GIMT_Encode4(108277), // Rule ID 2501 //
39384 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasVFP4),
39385 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
39386 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
39387 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
39388 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s32,
39389 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
39390 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
39391 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
39392 GIM_CheckIsSafeToFold, /*NumInsns*/1,
39393 // (fma:{ *:[v4f32] } (fneg:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn), QPR:{ *:[v4f32] }:$Vm, QPR:{ *:[v4f32] }:$src1) => (VFMSfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
39394 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VFMSfq),
39395 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
39396 GIR_RootToRootCopy, /*OpIdx*/3, // src1
39397 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
39398 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
39399 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
39400 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39401 GIR_RootConstrainSelectedInstOperands,
39402 // GIR_Coverage, 2501,
39403 GIR_EraseRootFromParent_Done,
39404 // Label 2095: @108277
39405 GIM_Try, /*On fail goto*//*Label 2096*/ GIMT_Encode4(108340), // Rule ID 5875 //
39406 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasVFP4),
39407 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
39408 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
39409 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
39410 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
39411 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s32,
39412 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
39413 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
39414 GIM_CheckIsSafeToFold, /*NumInsns*/1,
39415 // (fma:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm, (fneg:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn), QPR:{ *:[v4f32] }:$src1) => (VFMSfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
39416 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VFMSfq),
39417 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
39418 GIR_RootToRootCopy, /*OpIdx*/3, // src1
39419 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
39420 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
39421 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
39422 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39423 GIR_RootConstrainSelectedInstOperands,
39424 // GIR_Coverage, 5875,
39425 GIR_EraseRootFromParent_Done,
39426 // Label 2096: @108340
39427 GIM_Try, /*On fail goto*//*Label 2097*/ GIMT_Encode4(108386), // Rule ID 2499 //
39428 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_HasVFP4),
39429 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
39430 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
39431 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
39432 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
39433 // (fma:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm, QPR:{ *:[v4f32] }:$src1) => (VFMAfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
39434 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VFMAfq),
39435 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
39436 GIR_RootToRootCopy, /*OpIdx*/3, // src1
39437 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
39438 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
39439 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
39440 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39441 GIR_RootConstrainSelectedInstOperands,
39442 // GIR_Coverage, 2499,
39443 GIR_EraseRootFromParent_Done,
39444 // Label 2097: @108386
39445 GIM_Try, /*On fail goto*//*Label 2098*/ GIMT_Encode4(108438), // Rule ID 4121 //
39446 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
39447 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
39448 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
39449 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
39450 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
39451 // (fma:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$m1, MQPR:{ *:[v4f32] }:$m2, MQPR:{ *:[v4f32] }:$add) => (MVE_VFMAf32:{ *:[v4f32] } ?:{ *:[v4f32] }:$add, ?:{ *:[v4f32] }:$m1, ?:{ *:[v4f32] }:$m2)
39452 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VFMAf32),
39453 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
39454 GIR_RootToRootCopy, /*OpIdx*/3, // add
39455 GIR_RootToRootCopy, /*OpIdx*/1, // m1
39456 GIR_RootToRootCopy, /*OpIdx*/2, // m2
39457 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
39458 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39459 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39460 GIR_RootConstrainSelectedInstOperands,
39461 // GIR_Coverage, 4121,
39462 GIR_EraseRootFromParent_Done,
39463 // Label 2098: @108438
39464 GIM_Reject,
39465 // Label 2094: @108439
39466 GIM_Reject,
39467 // Label 2066: @108440
39468 GIM_Try, /*On fail goto*//*Label 2099*/ GIMT_Encode4(108553),
39469 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
39470 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
39471 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_v8s16,
39472 GIM_Try, /*On fail goto*//*Label 2100*/ GIMT_Encode4(108500), // Rule ID 2497 //
39473 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
39474 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
39475 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
39476 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
39477 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
39478 // (fma:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm, QPR:{ *:[v8f16] }:$src1) => (VFMAhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
39479 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VFMAhq),
39480 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
39481 GIR_RootToRootCopy, /*OpIdx*/3, // src1
39482 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
39483 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
39484 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
39485 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39486 GIR_RootConstrainSelectedInstOperands,
39487 // GIR_Coverage, 2497,
39488 GIR_EraseRootFromParent_Done,
39489 // Label 2100: @108500
39490 GIM_Try, /*On fail goto*//*Label 2101*/ GIMT_Encode4(108552), // Rule ID 4124 //
39491 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
39492 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
39493 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
39494 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
39495 GIM_RootCheckRegBankForClass, /*Op*/3, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
39496 // (fma:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$m1, MQPR:{ *:[v8f16] }:$m2, MQPR:{ *:[v8f16] }:$add) => (MVE_VFMAf16:{ *:[v8f16] } ?:{ *:[v8f16] }:$add, ?:{ *:[v8f16] }:$m1, ?:{ *:[v8f16] }:$m2)
39497 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VFMAf16),
39498 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
39499 GIR_RootToRootCopy, /*OpIdx*/3, // add
39500 GIR_RootToRootCopy, /*OpIdx*/1, // m1
39501 GIR_RootToRootCopy, /*OpIdx*/2, // m2
39502 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
39503 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39504 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39505 GIR_RootConstrainSelectedInstOperands,
39506 // GIR_Coverage, 4124,
39507 GIR_EraseRootFromParent_Done,
39508 // Label 2101: @108552
39509 GIM_Reject,
39510 // Label 2099: @108553
39511 GIM_Reject,
39512 // Label 2067: @108554
39513 GIM_Reject,
39514 // Label 35: @108555
39515 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(0), GIMT_Encode2(3), /*)*//*default:*//*Label 2105*/ GIMT_Encode4(108719),
39516 /*GILLT_s16*//*Label 2102*/ GIMT_Encode4(108578),
39517 /*GILLT_s32*//*Label 2103*/ GIMT_Encode4(108625),
39518 /*GILLT_s64*//*Label 2104*/ GIMT_Encode4(108672),
39519 // Label 2102: @108578
39520 GIM_Try, /*On fail goto*//*Label 2106*/ GIMT_Encode4(108624), // Rule ID 637 //
39521 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16),
39522 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s16,
39523 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s16,
39524 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
39525 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
39526 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
39527 // (fdiv:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm) => (VDIVH:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
39528 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VDIVH),
39529 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
39530 GIR_RootToRootCopy, /*OpIdx*/1, // Sn
39531 GIR_RootToRootCopy, /*OpIdx*/2, // Sm
39532 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
39533 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39534 GIR_RootConstrainSelectedInstOperands,
39535 // GIR_Coverage, 637,
39536 GIR_EraseRootFromParent_Done,
39537 // Label 2106: @108624
39538 GIM_Reject,
39539 // Label 2103: @108625
39540 GIM_Try, /*On fail goto*//*Label 2107*/ GIMT_Encode4(108671), // Rule ID 636 //
39541 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasVFP2),
39542 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
39543 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
39544 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
39545 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
39546 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
39547 // (fdiv:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm) => (VDIVS:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
39548 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VDIVS),
39549 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
39550 GIR_RootToRootCopy, /*OpIdx*/1, // Sn
39551 GIR_RootToRootCopy, /*OpIdx*/2, // Sm
39552 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
39553 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39554 GIR_RootConstrainSelectedInstOperands,
39555 // GIR_Coverage, 636,
39556 GIR_EraseRootFromParent_Done,
39557 // Label 2107: @108671
39558 GIM_Reject,
39559 // Label 2104: @108672
39560 GIM_Try, /*On fail goto*//*Label 2108*/ GIMT_Encode4(108718), // Rule ID 635 //
39561 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasVFP2),
39562 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
39563 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
39564 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39565 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39566 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39567 // (fdiv:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm) => (VDIVD:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
39568 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VDIVD),
39569 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Dd]
39570 GIR_RootToRootCopy, /*OpIdx*/1, // Dn
39571 GIR_RootToRootCopy, /*OpIdx*/2, // Dm
39572 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
39573 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39574 GIR_RootConstrainSelectedInstOperands,
39575 // GIR_Coverage, 635,
39576 GIR_EraseRootFromParent_Done,
39577 // Label 2108: @108718
39578 GIM_Reject,
39579 // Label 2105: @108719
39580 GIM_Reject,
39581 // Label 36: @108720
39582 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(0), GIMT_Encode2(13), /*)*//*default:*//*Label 2116*/ GIMT_Encode4(110260),
39583 /*GILLT_s16*//*Label 2109*/ GIMT_Encode4(108783),
39584 /*GILLT_s32*//*Label 2110*/ GIMT_Encode4(109130),
39585 /*GILLT_s64*//*Label 2111*/ GIMT_Encode4(109643), GIMT_Encode4(0),
39586 /*GILLT_v2s32*//*Label 2112*/ GIMT_Encode4(109990), GIMT_Encode4(0), GIMT_Encode4(0),
39587 /*GILLT_v4s16*//*Label 2113*/ GIMT_Encode4(110028),
39588 /*GILLT_v4s32*//*Label 2114*/ GIMT_Encode4(110066), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
39589 /*GILLT_v8s16*//*Label 2115*/ GIMT_Encode4(110163),
39590 // Label 2109: @108783
39591 GIM_Try, /*On fail goto*//*Label 2117*/ GIMT_Encode4(109129),
39592 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s16,
39593 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
39594 GIM_Try, /*On fail goto*//*Label 2118*/ GIMT_Encode4(108880), // Rule ID 2412 //
39595 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16),
39596 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
39597 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FMA),
39598 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s16,
39599 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s16,
39600 GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_s16,
39601 GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
39602 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FNEG),
39603 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s16,
39604 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
39605 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
39606 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
39607 GIM_CheckIsSafeToFold, /*NumInsns*/2,
39608 // (fneg:{ *:[f16] } (fma:{ *:[f16] } (fneg:{ *:[f16] } HPR:{ *:[f16] }:$Sn), HPR:{ *:[f16] }:$Sm, HPR:{ *:[f16] }:$Sdin)) => (VFNMSH:{ *:[f16] } HPR:{ *:[f16] }:$Sdin, HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
39609 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VFNMSH),
39610 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
39611 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Sdin
39612 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Sn
39613 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Sm
39614 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
39615 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39616 GIR_RootConstrainSelectedInstOperands,
39617 // GIR_Coverage, 2412,
39618 GIR_EraseRootFromParent_Done,
39619 // Label 2118: @108880
39620 GIM_Try, /*On fail goto*//*Label 2119*/ GIMT_Encode4(108965), // Rule ID 5839 //
39621 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16),
39622 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
39623 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FMA),
39624 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s16,
39625 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s16,
39626 GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_s16,
39627 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
39628 GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
39629 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FNEG),
39630 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s16,
39631 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
39632 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
39633 GIM_CheckIsSafeToFold, /*NumInsns*/2,
39634 // (fneg:{ *:[f16] } (fma:{ *:[f16] } HPR:{ *:[f16] }:$Sm, (fneg:{ *:[f16] } HPR:{ *:[f16] }:$Sn), HPR:{ *:[f16] }:$Sdin)) => (VFNMSH:{ *:[f16] } HPR:{ *:[f16] }:$Sdin, HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
39635 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VFNMSH),
39636 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
39637 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Sdin
39638 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Sn
39639 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Sm
39640 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
39641 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39642 GIR_RootConstrainSelectedInstOperands,
39643 // GIR_Coverage, 5839,
39644 GIR_EraseRootFromParent_Done,
39645 // Label 2119: @108965
39646 GIM_Try, /*On fail goto*//*Label 2120*/ GIMT_Encode4(109038), // Rule ID 2401 //
39647 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16),
39648 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
39649 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FMA),
39650 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s16,
39651 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s16,
39652 GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_s16,
39653 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
39654 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
39655 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
39656 GIM_CheckIsSafeToFold, /*NumInsns*/1,
39657 // (fneg:{ *:[f16] } (fma:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm, HPR:{ *:[f16] }:$Sdin)) => (VFNMAH:{ *:[f16] } HPR:{ *:[f16] }:$Sdin, HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
39658 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VFNMAH),
39659 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
39660 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Sdin
39661 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Sn
39662 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Sm
39663 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
39664 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39665 GIR_RootConstrainSelectedInstOperands,
39666 // GIR_Coverage, 2401,
39667 GIR_EraseRootFromParent_Done,
39668 // Label 2120: @109038
39669 GIM_Try, /*On fail goto*//*Label 2121*/ GIMT_Encode4(109098), // Rule ID 643 //
39670 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16),
39671 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
39672 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FMUL),
39673 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s16,
39674 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s16,
39675 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
39676 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
39677 GIM_CheckIsSafeToFold, /*NumInsns*/1,
39678 // (fneg:{ *:[f16] } (fmul:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)) => (VNMULH:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
39679 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VNMULH),
39680 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
39681 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Sn
39682 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Sm
39683 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
39684 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39685 GIR_RootConstrainSelectedInstOperands,
39686 // GIR_Coverage, 643,
39687 GIR_EraseRootFromParent_Done,
39688 // Label 2121: @109098
39689 GIM_Try, /*On fail goto*//*Label 2122*/ GIMT_Encode4(109128), // Rule ID 681 //
39690 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16),
39691 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
39692 // (fneg:{ *:[f16] } HPR:{ *:[f16] }:$Sm) => (VNEGH:{ *:[f16] } HPR:{ *:[f16] }:$Sm)
39693 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VNEGH),
39694 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
39695 GIR_RootToRootCopy, /*OpIdx*/1, // Sm
39696 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
39697 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39698 GIR_RootConstrainSelectedInstOperands,
39699 // GIR_Coverage, 681,
39700 GIR_EraseRootFromParent_Done,
39701 // Label 2122: @109128
39702 GIM_Reject,
39703 // Label 2117: @109129
39704 GIM_Reject,
39705 // Label 2110: @109130
39706 GIM_Try, /*On fail goto*//*Label 2123*/ GIMT_Encode4(109642),
39707 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
39708 GIM_Try, /*On fail goto*//*Label 2124*/ GIMT_Encode4(109227), // Rule ID 2411 //
39709 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasVFP4),
39710 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
39711 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
39712 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FMA),
39713 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
39714 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
39715 GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_s32,
39716 GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
39717 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FNEG),
39718 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
39719 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
39720 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
39721 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
39722 GIM_CheckIsSafeToFold, /*NumInsns*/2,
39723 // (fneg:{ *:[f32] } (fma:{ *:[f32] } (fneg:{ *:[f32] } SPR:{ *:[f32] }:$Sn), SPR:{ *:[f32] }:$Sm, SPR:{ *:[f32] }:$Sdin)) => (VFNMSS:{ *:[f32] } SPR:{ *:[f32] }:$Sdin, SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
39724 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VFNMSS),
39725 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
39726 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Sdin
39727 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Sn
39728 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Sm
39729 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
39730 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39731 GIR_RootConstrainSelectedInstOperands,
39732 // GIR_Coverage, 2411,
39733 GIR_EraseRootFromParent_Done,
39734 // Label 2124: @109227
39735 GIM_Try, /*On fail goto*//*Label 2125*/ GIMT_Encode4(109316), // Rule ID 5838 //
39736 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasVFP4),
39737 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
39738 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
39739 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FMA),
39740 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
39741 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
39742 GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_s32,
39743 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
39744 GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
39745 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FNEG),
39746 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
39747 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
39748 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
39749 GIM_CheckIsSafeToFold, /*NumInsns*/2,
39750 // (fneg:{ *:[f32] } (fma:{ *:[f32] } SPR:{ *:[f32] }:$Sm, (fneg:{ *:[f32] } SPR:{ *:[f32] }:$Sn), SPR:{ *:[f32] }:$Sdin)) => (VFNMSS:{ *:[f32] } SPR:{ *:[f32] }:$Sdin, SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
39751 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VFNMSS),
39752 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
39753 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Sdin
39754 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Sn
39755 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Sm
39756 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
39757 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39758 GIR_RootConstrainSelectedInstOperands,
39759 // GIR_Coverage, 5838,
39760 GIR_EraseRootFromParent_Done,
39761 // Label 2125: @109316
39762 GIM_Try, /*On fail goto*//*Label 2126*/ GIMT_Encode4(109393), // Rule ID 2400 //
39763 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasVFP4),
39764 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
39765 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
39766 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FMA),
39767 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
39768 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
39769 GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_s32,
39770 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
39771 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
39772 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
39773 GIM_CheckIsSafeToFold, /*NumInsns*/1,
39774 // (fneg:{ *:[f32] } (fma:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm, SPR:{ *:[f32] }:$Sdin)) => (VFNMAS:{ *:[f32] } SPR:{ *:[f32] }:$Sdin, SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
39775 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VFNMAS),
39776 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
39777 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Sdin
39778 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Sn
39779 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Sm
39780 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
39781 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39782 GIR_RootConstrainSelectedInstOperands,
39783 // GIR_Coverage, 2400,
39784 GIR_EraseRootFromParent_Done,
39785 // Label 2126: @109393
39786 GIM_Try, /*On fail goto*//*Label 2127*/ GIMT_Encode4(109457), // Rule ID 642 //
39787 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasVFP2),
39788 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
39789 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
39790 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FMUL),
39791 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
39792 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
39793 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
39794 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
39795 GIM_CheckIsSafeToFold, /*NumInsns*/1,
39796 // (fneg:{ *:[f32] } (fmul:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)) => (VNMULS:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
39797 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VNMULS),
39798 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
39799 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Sn
39800 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Sm
39801 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
39802 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39803 GIR_RootConstrainSelectedInstOperands,
39804 // GIR_Coverage, 642,
39805 GIR_EraseRootFromParent_Done,
39806 // Label 2127: @109457
39807 GIM_Try, /*On fail goto*//*Label 2128*/ GIMT_Encode4(109491), // Rule ID 680 //
39808 GIM_CheckFeatures, GIMT_Encode2(GIFBS_DontUseNEONForFP_HasVFP2),
39809 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
39810 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
39811 // (fneg:{ *:[f32] } SPR:{ *:[f32] }:$Sm) => (VNEGS:{ *:[f32] } SPR:{ *:[f32] }:$Sm)
39812 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VNEGS),
39813 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
39814 GIR_RootToRootCopy, /*OpIdx*/1, // Sm
39815 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
39816 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39817 GIR_RootConstrainSelectedInstOperands,
39818 // GIR_Coverage, 680,
39819 GIR_EraseRootFromParent_Done,
39820 // Label 2128: @109491
39821 GIM_Try, /*On fail goto*//*Label 2129*/ GIMT_Encode4(109641), // Rule ID 2723 //
39822 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_UseNEONForFP),
39823 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPR_VFP2RegClassID),
39824 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
39825 // (fneg:{ *:[f32] } SPR:{ *:[f32] }:$a) => (EXTRACT_SUBREG:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (VNEGfd:{ *:[f64] } (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
39826 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v2s32,
39827 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s64,
39828 GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v2s32,
39829 GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_v2s32,
39830 GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_v2s32,
39831 GIR_BuildMI, /*InsnID*/5, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
39832 GIR_AddTempRegister, /*InsnID*/5, /*TempRegID*/4, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
39833 GIR_ConstrainSelectedInstOperands, /*InsnID*/5,
39834 GIR_BuildMI, /*InsnID*/4, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
39835 GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/3, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
39836 GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/4,
39837 GIR_ConstrainSelectedInstOperands, /*InsnID*/4,
39838 GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::INSERT_SUBREG),
39839 GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
39840 GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/3,
39841 GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/1, // a
39842 GIR_AddImm8, /*InsnID*/3, /*Imm*/17,
39843 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/0, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
39844 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
39845 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/2, GIMT_Encode2(ARM::SPRRegClassID),
39846 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(ARM::VNEGfd),
39847 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
39848 GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
39849 GIR_AddImm8, /*InsnID*/2, /*Imm*/14,
39850 GIR_AddRegister, /*InsnID*/2, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39851 GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
39852 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
39853 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
39854 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
39855 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
39856 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
39857 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
39858 GIR_AddTempSubRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(0), GIMT_Encode2(ARM::ssub_0),
39859 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::SPRRegClassID),
39860 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
39861 // GIR_Coverage, 2723,
39862 GIR_EraseRootFromParent_Done,
39863 // Label 2129: @109641
39864 GIM_Reject,
39865 // Label 2123: @109642
39866 GIM_Reject,
39867 // Label 2111: @109643
39868 GIM_Try, /*On fail goto*//*Label 2130*/ GIMT_Encode4(109989),
39869 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
39870 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39871 GIM_Try, /*On fail goto*//*Label 2131*/ GIMT_Encode4(109740), // Rule ID 2410 //
39872 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasVFP4),
39873 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
39874 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FMA),
39875 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
39876 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
39877 GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_s64,
39878 GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
39879 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FNEG),
39880 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s64,
39881 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39882 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39883 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39884 GIM_CheckIsSafeToFold, /*NumInsns*/2,
39885 // (fneg:{ *:[f64] } (fma:{ *:[f64] } (fneg:{ *:[f64] } DPR:{ *:[f64] }:$Dn), DPR:{ *:[f64] }:$Dm, DPR:{ *:[f64] }:$Ddin)) => (VFNMSD:{ *:[f64] } DPR:{ *:[f64] }:$Ddin, DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
39886 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VFNMSD),
39887 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Dd]
39888 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Ddin
39889 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Dn
39890 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Dm
39891 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
39892 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39893 GIR_RootConstrainSelectedInstOperands,
39894 // GIR_Coverage, 2410,
39895 GIR_EraseRootFromParent_Done,
39896 // Label 2131: @109740
39897 GIM_Try, /*On fail goto*//*Label 2132*/ GIMT_Encode4(109825), // Rule ID 5837 //
39898 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasVFP4),
39899 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
39900 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FMA),
39901 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
39902 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
39903 GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_s64,
39904 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39905 GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
39906 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FNEG),
39907 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s64,
39908 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39909 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39910 GIM_CheckIsSafeToFold, /*NumInsns*/2,
39911 // (fneg:{ *:[f64] } (fma:{ *:[f64] } DPR:{ *:[f64] }:$Dm, (fneg:{ *:[f64] } DPR:{ *:[f64] }:$Dn), DPR:{ *:[f64] }:$Ddin)) => (VFNMSD:{ *:[f64] } DPR:{ *:[f64] }:$Ddin, DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
39912 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VFNMSD),
39913 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Dd]
39914 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Ddin
39915 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Dn
39916 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Dm
39917 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
39918 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39919 GIR_RootConstrainSelectedInstOperands,
39920 // GIR_Coverage, 5837,
39921 GIR_EraseRootFromParent_Done,
39922 // Label 2132: @109825
39923 GIM_Try, /*On fail goto*//*Label 2133*/ GIMT_Encode4(109898), // Rule ID 2399 //
39924 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasVFP4),
39925 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
39926 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FMA),
39927 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
39928 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
39929 GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_s64,
39930 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39931 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39932 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39933 GIM_CheckIsSafeToFold, /*NumInsns*/1,
39934 // (fneg:{ *:[f64] } (fma:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm, DPR:{ *:[f64] }:$Ddin)) => (VFNMAD:{ *:[f64] } DPR:{ *:[f64] }:$Ddin, DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
39935 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VFNMAD),
39936 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Dd]
39937 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Ddin
39938 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Dn
39939 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Dm
39940 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
39941 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39942 GIR_RootConstrainSelectedInstOperands,
39943 // GIR_Coverage, 2399,
39944 GIR_EraseRootFromParent_Done,
39945 // Label 2133: @109898
39946 GIM_Try, /*On fail goto*//*Label 2134*/ GIMT_Encode4(109958), // Rule ID 641 //
39947 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasVFP2),
39948 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
39949 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FMUL),
39950 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
39951 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
39952 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39953 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39954 GIM_CheckIsSafeToFold, /*NumInsns*/1,
39955 // (fneg:{ *:[f64] } (fmul:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)) => (VNMULD:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
39956 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VNMULD),
39957 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Dd]
39958 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Dn
39959 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Dm
39960 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
39961 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39962 GIR_RootConstrainSelectedInstOperands,
39963 // GIR_Coverage, 641,
39964 GIR_EraseRootFromParent_Done,
39965 // Label 2134: @109958
39966 GIM_Try, /*On fail goto*//*Label 2135*/ GIMT_Encode4(109988), // Rule ID 679 //
39967 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasVFP2),
39968 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39969 // (fneg:{ *:[f64] } DPR:{ *:[f64] }:$Dm) => (VNEGD:{ *:[f64] } DPR:{ *:[f64] }:$Dm)
39970 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VNEGD),
39971 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Dd]
39972 GIR_RootToRootCopy, /*OpIdx*/1, // Dm
39973 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
39974 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39975 GIR_RootConstrainSelectedInstOperands,
39976 // GIR_Coverage, 679,
39977 GIR_EraseRootFromParent_Done,
39978 // Label 2135: @109988
39979 GIM_Reject,
39980 // Label 2130: @109989
39981 GIM_Reject,
39982 // Label 2112: @109990
39983 GIM_Try, /*On fail goto*//*Label 2136*/ GIMT_Encode4(110027), // Rule ID 1549 //
39984 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
39985 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
39986 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39987 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
39988 // (fneg:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm) => (VNEGfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
39989 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VNEGfd),
39990 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
39991 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
39992 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
39993 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
39994 GIR_RootConstrainSelectedInstOperands,
39995 // GIR_Coverage, 1549,
39996 GIR_EraseRootFromParent_Done,
39997 // Label 2136: @110027
39998 GIM_Reject,
39999 // Label 2113: @110028
40000 GIM_Try, /*On fail goto*//*Label 2137*/ GIMT_Encode4(110065), // Rule ID 1551 //
40001 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
40002 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
40003 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
40004 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
40005 // (fneg:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm) => (VNEGhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
40006 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VNEGhd),
40007 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
40008 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
40009 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
40010 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
40011 GIR_RootConstrainSelectedInstOperands,
40012 // GIR_Coverage, 1551,
40013 GIR_EraseRootFromParent_Done,
40014 // Label 2137: @110065
40015 GIM_Reject,
40016 // Label 2114: @110066
40017 GIM_Try, /*On fail goto*//*Label 2138*/ GIMT_Encode4(110162),
40018 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
40019 GIM_Try, /*On fail goto*//*Label 2139*/ GIMT_Encode4(110108), // Rule ID 1550 //
40020 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
40021 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
40022 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
40023 // (fneg:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm) => (VNEGf32q:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
40024 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VNEGf32q),
40025 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
40026 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
40027 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
40028 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
40029 GIR_RootConstrainSelectedInstOperands,
40030 // GIR_Coverage, 1550,
40031 GIR_EraseRootFromParent_Done,
40032 // Label 2139: @110108
40033 GIM_Try, /*On fail goto*//*Label 2140*/ GIMT_Encode4(110161), // Rule ID 4231 //
40034 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
40035 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
40036 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
40037 // (fneg:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$v) => (MVE_VNEGf32:{ *:[v4f32] } ?:{ *:[v4f32] }:$v)
40038 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
40039 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
40040 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
40041 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VNEGf32),
40042 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
40043 GIR_RootToRootCopy, /*OpIdx*/1, // v
40044 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
40045 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
40046 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
40047 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
40048 GIR_RootConstrainSelectedInstOperands,
40049 // GIR_Coverage, 4231,
40050 GIR_EraseRootFromParent_Done,
40051 // Label 2140: @110161
40052 GIM_Reject,
40053 // Label 2138: @110162
40054 GIM_Reject,
40055 // Label 2115: @110163
40056 GIM_Try, /*On fail goto*//*Label 2141*/ GIMT_Encode4(110259),
40057 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
40058 GIM_Try, /*On fail goto*//*Label 2142*/ GIMT_Encode4(110205), // Rule ID 1552 //
40059 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
40060 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
40061 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
40062 // (fneg:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm) => (VNEGhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
40063 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VNEGhq),
40064 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
40065 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
40066 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
40067 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
40068 GIR_RootConstrainSelectedInstOperands,
40069 // GIR_Coverage, 1552,
40070 GIR_EraseRootFromParent_Done,
40071 // Label 2142: @110205
40072 GIM_Try, /*On fail goto*//*Label 2143*/ GIMT_Encode4(110258), // Rule ID 4229 //
40073 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
40074 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
40075 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
40076 // (fneg:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$v) => (MVE_VNEGf16:{ *:[v8f16] } ?:{ *:[v8f16] }:$v)
40077 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
40078 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
40079 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
40080 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VNEGf16),
40081 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
40082 GIR_RootToRootCopy, /*OpIdx*/1, // v
40083 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
40084 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
40085 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
40086 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
40087 GIR_RootConstrainSelectedInstOperands,
40088 // GIR_Coverage, 4229,
40089 GIR_EraseRootFromParent_Done,
40090 // Label 2143: @110258
40091 GIM_Reject,
40092 // Label 2141: @110259
40093 GIM_Reject,
40094 // Label 2116: @110260
40095 GIM_Reject,
40096 // Label 37: @110261
40097 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(1), GIMT_Encode2(9), /*)*//*default:*//*Label 2147*/ GIMT_Encode4(110490),
40098 /*GILLT_s32*//*Label 2144*/ GIMT_Encode4(110304),
40099 /*GILLT_s64*//*Label 2145*/ GIMT_Encode4(110361), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
40100 /*GILLT_v4s32*//*Label 2146*/ GIMT_Encode4(110455),
40101 // Label 2144: @110304
40102 GIM_Try, /*On fail goto*//*Label 2148*/ GIMT_Encode4(110360), // Rule ID 2299 //
40103 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFP16),
40104 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s16,
40105 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
40106 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
40107 // (fpextend:{ *:[f32] } HPR:{ *:[f16] }:$Sm) => (VCVTBHS:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[f32] } HPR:{ *:[f16] }:$Sm, SPR:{ *:[i32] }))
40108 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
40109 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
40110 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
40111 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // Sm
40112 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
40113 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTBHS),
40114 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
40115 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
40116 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
40117 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
40118 GIR_RootConstrainSelectedInstOperands,
40119 // GIR_Coverage, 2299,
40120 GIR_EraseRootFromParent_Done,
40121 // Label 2148: @110360
40122 GIM_Reject,
40123 // Label 2145: @110361
40124 GIM_Try, /*On fail goto*//*Label 2149*/ GIMT_Encode4(110398), // Rule ID 677 //
40125 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasVFP2),
40126 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
40127 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
40128 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
40129 // (fpextend:{ *:[f64] } SPR:{ *:[f32] }:$Sm) => (VCVTDS:{ *:[f64] } SPR:{ *:[f32] }:$Sm)
40130 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTDS),
40131 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Dd]
40132 GIR_RootToRootCopy, /*OpIdx*/1, // Sm
40133 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
40134 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
40135 GIR_RootConstrainSelectedInstOperands,
40136 // GIR_Coverage, 677,
40137 GIR_EraseRootFromParent_Done,
40138 // Label 2149: @110398
40139 GIM_Try, /*On fail goto*//*Label 2150*/ GIMT_Encode4(110454), // Rule ID 2309 //
40140 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasFPARMv8),
40141 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s16,
40142 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
40143 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
40144 // (fpextend:{ *:[f64] } HPR:{ *:[f16] }:$Sm) => (VCVTBHD:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f32] } HPR:{ *:[f16] }:$Sm, SPR:{ *:[i32] }))
40145 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
40146 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
40147 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
40148 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // Sm
40149 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
40150 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTBHD),
40151 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Dd]
40152 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
40153 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
40154 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
40155 GIR_RootConstrainSelectedInstOperands,
40156 // GIR_Coverage, 2309,
40157 GIR_EraseRootFromParent_Done,
40158 // Label 2150: @110454
40159 GIM_Reject,
40160 // Label 2146: @110455
40161 GIM_Try, /*On fail goto*//*Label 2151*/ GIMT_Encode4(110489), // Rule ID 2681 //
40162 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
40163 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
40164 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
40165 // (fpextend:{ *:[v4f32] } DPR:{ *:[v4f16] }:$src) => (VCVTh2f:{ *:[v4f32] } DPR:{ *:[v4f16] }:$src)
40166 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTh2f),
40167 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
40168 GIR_RootToRootCopy, /*OpIdx*/1, // src
40169 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
40170 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
40171 GIR_RootConstrainSelectedInstOperands,
40172 // GIR_Coverage, 2681,
40173 GIR_EraseRootFromParent_Done,
40174 // Label 2151: @110489
40175 GIM_Reject,
40176 // Label 2147: @110490
40177 GIM_Reject,
40178 // Label 38: @110491
40179 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(0), GIMT_Encode2(8), /*)*//*default:*//*Label 2155*/ GIMT_Encode4(110762),
40180 /*GILLT_s16*//*Label 2152*/ GIMT_Encode4(110534),
40181 /*GILLT_s32*//*Label 2153*/ GIMT_Encode4(110689), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
40182 /*GILLT_v4s16*//*Label 2154*/ GIMT_Encode4(110727),
40183 // Label 2152: @110534
40184 GIM_Try, /*On fail goto*//*Label 2156*/ GIMT_Encode4(110611), // Rule ID 2301 //
40185 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFP16),
40186 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
40187 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
40188 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
40189 // (fpround:{ *:[f16] } SPR:{ *:[f32] }:$Sm) => (COPY_TO_REGCLASS:{ *:[f16] } (VCVTBSH:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), SPR:{ *:[f32] }:$Sm), HPR:{ *:[i32] })
40190 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
40191 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
40192 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
40193 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
40194 GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
40195 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::VCVTBSH),
40196 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
40197 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
40198 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // Sm
40199 GIR_AddImm8, /*InsnID*/1, /*Imm*/14,
40200 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
40201 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
40202 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
40203 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
40204 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
40205 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::HPRRegClassID),
40206 // GIR_Coverage, 2301,
40207 GIR_EraseRootFromParent_Done,
40208 // Label 2156: @110611
40209 GIM_Try, /*On fail goto*//*Label 2157*/ GIMT_Encode4(110688), // Rule ID 2311 //
40210 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasFPARMv8),
40211 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
40212 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
40213 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
40214 // (fpround:{ *:[f16] } DPR:{ *:[f64] }:$Dm) => (COPY_TO_REGCLASS:{ *:[f16] } (VCVTBDH:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), DPR:{ *:[f64] }:$Dm), HPR:{ *:[i32] })
40215 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
40216 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
40217 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
40218 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
40219 GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
40220 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::VCVTBDH),
40221 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
40222 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
40223 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // Dm
40224 GIR_AddImm8, /*InsnID*/1, /*Imm*/14,
40225 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
40226 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
40227 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
40228 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
40229 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
40230 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::HPRRegClassID),
40231 // GIR_Coverage, 2311,
40232 GIR_EraseRootFromParent_Done,
40233 // Label 2157: @110688
40234 GIM_Reject,
40235 // Label 2153: @110689
40236 GIM_Try, /*On fail goto*//*Label 2158*/ GIMT_Encode4(110726), // Rule ID 678 //
40237 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasVFP2),
40238 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
40239 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
40240 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
40241 // (fpround:{ *:[f32] } DPR:{ *:[f64] }:$Dm) => (VCVTSD:{ *:[f32] } DPR:{ *:[f64] }:$Dm)
40242 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTSD),
40243 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
40244 GIR_RootToRootCopy, /*OpIdx*/1, // Dm
40245 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
40246 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
40247 GIR_RootConstrainSelectedInstOperands,
40248 // GIR_Coverage, 678,
40249 GIR_EraseRootFromParent_Done,
40250 // Label 2158: @110726
40251 GIM_Reject,
40252 // Label 2154: @110727
40253 GIM_Try, /*On fail goto*//*Label 2159*/ GIMT_Encode4(110761), // Rule ID 2680 //
40254 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
40255 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
40256 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
40257 // (fpround:{ *:[v4f16] } QPR:{ *:[v4f32] }:$src) => (VCVTf2h:{ *:[v4f16] } QPR:{ *:[v4f32] }:$src)
40258 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTf2h),
40259 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
40260 GIR_RootToRootCopy, /*OpIdx*/1, // src
40261 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
40262 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
40263 GIR_RootConstrainSelectedInstOperands,
40264 // GIR_Coverage, 2680,
40265 GIR_EraseRootFromParent_Done,
40266 // Label 2159: @110761
40267 GIM_Reject,
40268 // Label 2155: @110762
40269 GIM_Reject,
40270 // Label 39: @110763
40271 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(1), GIMT_Encode2(13), /*)*//*default:*//*Label 2167*/ GIMT_Encode4(112092),
40272 /*GILLT_s32*//*Label 2160*/ GIMT_Encode4(110822), GIMT_Encode4(0), GIMT_Encode4(0),
40273 /*GILLT_v2s32*//*Label 2161*/ GIMT_Encode4(111716), GIMT_Encode4(0),
40274 /*GILLT_v4s1*//*Label 2162*/ GIMT_Encode4(111754),
40275 /*GILLT_v4s16*//*Label 2163*/ GIMT_Encode4(111807),
40276 /*GILLT_v4s32*//*Label 2164*/ GIMT_Encode4(111845), GIMT_Encode4(0),
40277 /*GILLT_v8s1*//*Label 2165*/ GIMT_Encode4(111942), GIMT_Encode4(0),
40278 /*GILLT_v8s16*//*Label 2166*/ GIMT_Encode4(111995),
40279 // Label 2160: @110822
40280 GIM_Try, /*On fail goto*//*Label 2168*/ GIMT_Encode4(110888), // Rule ID 2319 //
40281 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16),
40282 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s16,
40283 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
40284 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
40285 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCEIL),
40286 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s16,
40287 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
40288 GIM_CheckIsSafeToFold, /*NumInsns*/1,
40289 // (fp_to_sint:{ *:[i32] } (fceil:{ *:[f16] } HPR:{ *:[f16] }:$a)) => (COPY_TO_REGCLASS:{ *:[i32] } (VCVTPSH:{ *:[f32] } HPR:{ *:[f16] }:$a), GPR:{ *:[i32] })
40290 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
40291 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::VCVTPSH),
40292 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
40293 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
40294 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
40295 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
40296 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
40297 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
40298 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::GPRRegClassID),
40299 // GIR_Coverage, 2319,
40300 GIR_EraseRootFromParent_Done,
40301 // Label 2168: @110888
40302 GIM_Try, /*On fail goto*//*Label 2169*/ GIMT_Encode4(110954), // Rule ID 2321 //
40303 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFPARMv8),
40304 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
40305 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
40306 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
40307 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCEIL),
40308 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
40309 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
40310 GIM_CheckIsSafeToFold, /*NumInsns*/1,
40311 // (fp_to_sint:{ *:[i32] } (fceil:{ *:[f32] } SPR:{ *:[f32] }:$a)) => (COPY_TO_REGCLASS:{ *:[i32] } (VCVTPSS:{ *:[f32] } SPR:{ *:[f32] }:$a), GPR:{ *:[i32] })
40312 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
40313 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::VCVTPSS),
40314 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
40315 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
40316 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
40317 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
40318 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
40319 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
40320 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::GPRRegClassID),
40321 // GIR_Coverage, 2321,
40322 GIR_EraseRootFromParent_Done,
40323 // Label 2169: @110954
40324 GIM_Try, /*On fail goto*//*Label 2170*/ GIMT_Encode4(111020), // Rule ID 2323 //
40325 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasFPARMv8),
40326 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
40327 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
40328 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
40329 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCEIL),
40330 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
40331 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
40332 GIM_CheckIsSafeToFold, /*NumInsns*/1,
40333 // (fp_to_sint:{ *:[i32] } (fceil:{ *:[f64] } DPR:{ *:[f64] }:$a)) => (COPY_TO_REGCLASS:{ *:[i32] } (VCVTPSD:{ *:[f32] } DPR:{ *:[f64] }:$a), GPR:{ *:[i32] })
40334 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
40335 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::VCVTPSD),
40336 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
40337 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
40338 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
40339 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
40340 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
40341 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
40342 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::GPRRegClassID),
40343 // GIR_Coverage, 2323,
40344 GIR_EraseRootFromParent_Done,
40345 // Label 2170: @111020
40346 GIM_Try, /*On fail goto*//*Label 2171*/ GIMT_Encode4(111086), // Rule ID 2325 //
40347 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16),
40348 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s16,
40349 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
40350 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
40351 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FFLOOR),
40352 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s16,
40353 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
40354 GIM_CheckIsSafeToFold, /*NumInsns*/1,
40355 // (fp_to_sint:{ *:[i32] } (ffloor:{ *:[f16] } HPR:{ *:[f16] }:$a)) => (COPY_TO_REGCLASS:{ *:[i32] } (VCVTMSH:{ *:[f32] } HPR:{ *:[f16] }:$a), GPR:{ *:[i32] })
40356 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
40357 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::VCVTMSH),
40358 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
40359 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
40360 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
40361 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
40362 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
40363 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
40364 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::GPRRegClassID),
40365 // GIR_Coverage, 2325,
40366 GIR_EraseRootFromParent_Done,
40367 // Label 2171: @111086
40368 GIM_Try, /*On fail goto*//*Label 2172*/ GIMT_Encode4(111152), // Rule ID 2327 //
40369 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFPARMv8),
40370 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
40371 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
40372 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
40373 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FFLOOR),
40374 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
40375 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
40376 GIM_CheckIsSafeToFold, /*NumInsns*/1,
40377 // (fp_to_sint:{ *:[i32] } (ffloor:{ *:[f32] } SPR:{ *:[f32] }:$a)) => (COPY_TO_REGCLASS:{ *:[i32] } (VCVTMSS:{ *:[f32] } SPR:{ *:[f32] }:$a), GPR:{ *:[i32] })
40378 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
40379 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::VCVTMSS),
40380 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
40381 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
40382 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
40383 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
40384 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
40385 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
40386 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::GPRRegClassID),
40387 // GIR_Coverage, 2327,
40388 GIR_EraseRootFromParent_Done,
40389 // Label 2172: @111152
40390 GIM_Try, /*On fail goto*//*Label 2173*/ GIMT_Encode4(111218), // Rule ID 2329 //
40391 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasFPARMv8),
40392 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
40393 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
40394 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
40395 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FFLOOR),
40396 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
40397 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
40398 GIM_CheckIsSafeToFold, /*NumInsns*/1,
40399 // (fp_to_sint:{ *:[i32] } (ffloor:{ *:[f64] } DPR:{ *:[f64] }:$a)) => (COPY_TO_REGCLASS:{ *:[i32] } (VCVTMSD:{ *:[f32] } DPR:{ *:[f64] }:$a), GPR:{ *:[i32] })
40400 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
40401 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::VCVTMSD),
40402 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
40403 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
40404 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
40405 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
40406 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
40407 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
40408 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::GPRRegClassID),
40409 // GIR_Coverage, 2329,
40410 GIR_EraseRootFromParent_Done,
40411 // Label 2173: @111218
40412 GIM_Try, /*On fail goto*//*Label 2174*/ GIMT_Encode4(111284), // Rule ID 2313 //
40413 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16),
40414 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s16,
40415 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
40416 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
40417 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTRINSIC_ROUND),
40418 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s16,
40419 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
40420 GIM_CheckIsSafeToFold, /*NumInsns*/1,
40421 // (fp_to_sint:{ *:[i32] } (fround:{ *:[f16] } HPR:{ *:[f16] }:$a)) => (COPY_TO_REGCLASS:{ *:[i32] } (VCVTASH:{ *:[f32] } HPR:{ *:[f16] }:$a), GPR:{ *:[i32] })
40422 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
40423 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::VCVTASH),
40424 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
40425 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
40426 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
40427 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
40428 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
40429 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
40430 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::GPRRegClassID),
40431 // GIR_Coverage, 2313,
40432 GIR_EraseRootFromParent_Done,
40433 // Label 2174: @111284
40434 GIM_Try, /*On fail goto*//*Label 2175*/ GIMT_Encode4(111350), // Rule ID 2315 //
40435 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFPARMv8),
40436 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
40437 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
40438 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
40439 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTRINSIC_ROUND),
40440 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
40441 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
40442 GIM_CheckIsSafeToFold, /*NumInsns*/1,
40443 // (fp_to_sint:{ *:[i32] } (fround:{ *:[f32] } SPR:{ *:[f32] }:$a)) => (COPY_TO_REGCLASS:{ *:[i32] } (VCVTASS:{ *:[f32] } SPR:{ *:[f32] }:$a), GPR:{ *:[i32] })
40444 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
40445 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::VCVTASS),
40446 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
40447 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
40448 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
40449 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
40450 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
40451 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
40452 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::GPRRegClassID),
40453 // GIR_Coverage, 2315,
40454 GIR_EraseRootFromParent_Done,
40455 // Label 2175: @111350
40456 GIM_Try, /*On fail goto*//*Label 2176*/ GIMT_Encode4(111416), // Rule ID 2317 //
40457 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasFPARMv8),
40458 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
40459 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
40460 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
40461 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTRINSIC_ROUND),
40462 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
40463 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
40464 GIM_CheckIsSafeToFold, /*NumInsns*/1,
40465 // (fp_to_sint:{ *:[i32] } (fround:{ *:[f64] } DPR:{ *:[f64] }:$a)) => (COPY_TO_REGCLASS:{ *:[i32] } (VCVTASD:{ *:[f32] } DPR:{ *:[f64] }:$a), GPR:{ *:[i32] })
40466 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
40467 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::VCVTASD),
40468 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
40469 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
40470 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
40471 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
40472 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
40473 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
40474 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::GPRRegClassID),
40475 // GIR_Coverage, 2317,
40476 GIR_EraseRootFromParent_Done,
40477 // Label 2176: @111416
40478 GIM_Try, /*On fail goto*//*Label 2177*/ GIMT_Encode4(111476), // Rule ID 2350 //
40479 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasVFP2),
40480 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
40481 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
40482 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
40483 // (fp_to_sint:{ *:[i32] } DPR:{ *:[f64] }:$a) => (COPY_TO_REGCLASS:{ *:[i32] } (VTOSIZD:{ *:[f32] } DPR:{ *:[f64] }:$a), GPR:{ *:[i32] })
40484 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
40485 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::VTOSIZD),
40486 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
40487 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // a
40488 GIR_AddImm8, /*InsnID*/1, /*Imm*/14,
40489 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
40490 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
40491 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
40492 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
40493 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
40494 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::GPRRegClassID),
40495 // GIR_Coverage, 2350,
40496 GIR_EraseRootFromParent_Done,
40497 // Label 2177: @111476
40498 GIM_Try, /*On fail goto*//*Label 2178*/ GIMT_Encode4(111536), // Rule ID 2354 //
40499 GIM_CheckFeatures, GIMT_Encode2(GIFBS_DontUseNEONForFP_HasVFP2),
40500 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
40501 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
40502 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
40503 // (fp_to_sint:{ *:[i32] } SPR:{ *:[f32] }:$a) => (COPY_TO_REGCLASS:{ *:[i32] } (VTOSIZS:{ *:[f32] } SPR:{ *:[f32] }:$a), GPR:{ *:[i32] })
40504 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
40505 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::VTOSIZS),
40506 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
40507 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // a
40508 GIR_AddImm8, /*InsnID*/1, /*Imm*/14,
40509 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
40510 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
40511 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
40512 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
40513 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
40514 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::GPRRegClassID),
40515 // GIR_Coverage, 2354,
40516 GIR_EraseRootFromParent_Done,
40517 // Label 2178: @111536
40518 GIM_Try, /*On fail goto*//*Label 2179*/ GIMT_Encode4(111596), // Rule ID 2358 //
40519 GIM_CheckFeatures, GIMT_Encode2(GIFBS_DontUseNEONForFP_HasVFP2),
40520 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s16,
40521 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
40522 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
40523 // (fp_to_sint:{ *:[i32] } HPR:{ *:[f16] }:$a) => (COPY_TO_REGCLASS:{ *:[i32] } (VTOSIZH:{ *:[f32] } HPR:{ *:[f16] }:$a), GPR:{ *:[i32] })
40524 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
40525 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::VTOSIZH),
40526 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
40527 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // a
40528 GIR_AddImm8, /*InsnID*/1, /*Imm*/14,
40529 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
40530 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
40531 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
40532 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
40533 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
40534 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::GPRRegClassID),
40535 // GIR_Coverage, 2358,
40536 GIR_EraseRootFromParent_Done,
40537 // Label 2179: @111596
40538 GIM_Try, /*On fail goto*//*Label 2180*/ GIMT_Encode4(111715), // Rule ID 2728 //
40539 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_UseNEONForFP),
40540 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
40541 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
40542 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
40543 // (fp_to_sint:{ *:[i32] } SPR:{ *:[f32] }:$a) => (EXTRACT_SUBREG:{ *:[i32] } (VCVTf2sd:{ *:[v2f32] } (INSERT_SUBREG:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] })), ssub_0:{ *:[i32] })
40544 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v2s32,
40545 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v2s32,
40546 GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v2s32,
40547 GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
40548 GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
40549 GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
40550 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::INSERT_SUBREG),
40551 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
40552 GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
40553 GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // a
40554 GIR_AddImm8, /*InsnID*/2, /*Imm*/17,
40555 GIR_ConstrainOperandRC, /*InsnID*/2, /*Op*/0, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
40556 GIR_ConstrainOperandRC, /*InsnID*/2, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
40557 GIR_ConstrainOperandRC, /*InsnID*/2, /*Op*/2, GIMT_Encode2(ARM::SPRRegClassID),
40558 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::VCVTf2sd),
40559 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
40560 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
40561 GIR_AddImm8, /*InsnID*/1, /*Imm*/14,
40562 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
40563 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
40564 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
40565 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
40566 GIR_AddTempSubRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(0), GIMT_Encode2(ARM::ssub_0),
40567 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::SPRRegClassID),
40568 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
40569 // GIR_Coverage, 2728,
40570 GIR_EraseRootFromParent_Done,
40571 // Label 2180: @111715
40572 GIM_Reject,
40573 // Label 2161: @111716
40574 GIM_Try, /*On fail goto*//*Label 2181*/ GIMT_Encode4(111753), // Rule ID 1623 //
40575 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
40576 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
40577 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
40578 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
40579 // (fp_to_sint:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm) => (VCVTf2sd:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
40580 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTf2sd),
40581 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
40582 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
40583 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
40584 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
40585 GIR_RootConstrainSelectedInstOperands,
40586 // GIR_Coverage, 1623,
40587 GIR_EraseRootFromParent_Done,
40588 // Label 2181: @111753
40589 GIM_Reject,
40590 // Label 2162: @111754
40591 GIM_Try, /*On fail goto*//*Label 2182*/ GIMT_Encode4(111806), // Rule ID 5222 //
40592 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
40593 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
40594 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::VCCRRegClassID),
40595 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
40596 // (fp_to_sint:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1) => (MVE_VCMPf32r:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, ZR:{ *:[i32] }, 1:{ *:[i32] })
40597 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCMPf32r),
40598 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[P0]
40599 GIR_RootToRootCopy, /*OpIdx*/1, // v1
40600 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::ZR), /*AddRegisterRegFlags*/GIMT_Encode2(0),
40601 GIR_AddImm8, /*InsnID*/0, /*Imm*/1,
40602 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
40603 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
40604 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
40605 GIR_RootConstrainSelectedInstOperands,
40606 // GIR_Coverage, 5222,
40607 GIR_EraseRootFromParent_Done,
40608 // Label 2182: @111806
40609 GIM_Reject,
40610 // Label 2163: @111807
40611 GIM_Try, /*On fail goto*//*Label 2183*/ GIMT_Encode4(111844), // Rule ID 1631 //
40612 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
40613 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
40614 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
40615 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
40616 // (fp_to_sint:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm) => (VCVTh2sd:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
40617 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTh2sd),
40618 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
40619 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
40620 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
40621 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
40622 GIR_RootConstrainSelectedInstOperands,
40623 // GIR_Coverage, 1631,
40624 GIR_EraseRootFromParent_Done,
40625 // Label 2183: @111844
40626 GIM_Reject,
40627 // Label 2164: @111845
40628 GIM_Try, /*On fail goto*//*Label 2184*/ GIMT_Encode4(111941),
40629 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
40630 GIM_Try, /*On fail goto*//*Label 2185*/ GIMT_Encode4(111887), // Rule ID 1627 //
40631 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
40632 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
40633 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
40634 // (fp_to_sint:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm) => (VCVTf2sq:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
40635 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTf2sq),
40636 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
40637 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
40638 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
40639 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
40640 GIR_RootConstrainSelectedInstOperands,
40641 // GIR_Coverage, 1627,
40642 GIR_EraseRootFromParent_Done,
40643 // Label 2185: @111887
40644 GIM_Try, /*On fail goto*//*Label 2186*/ GIMT_Encode4(111940), // Rule ID 4209 //
40645 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
40646 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
40647 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
40648 // (fp_to_sint:{ *:[v4i32] } MQPR:{ *:[v4f32] }:$src) => (MVE_VCVTs32f32z:{ *:[v4i32] } MQPR:{ *:[v4f32] }:$src)
40649 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
40650 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
40651 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
40652 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCVTs32f32z),
40653 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
40654 GIR_RootToRootCopy, /*OpIdx*/1, // src
40655 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
40656 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
40657 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
40658 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
40659 GIR_RootConstrainSelectedInstOperands,
40660 // GIR_Coverage, 4209,
40661 GIR_EraseRootFromParent_Done,
40662 // Label 2186: @111940
40663 GIM_Reject,
40664 // Label 2184: @111941
40665 GIM_Reject,
40666 // Label 2165: @111942
40667 GIM_Try, /*On fail goto*//*Label 2187*/ GIMT_Encode4(111994), // Rule ID 5223 //
40668 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
40669 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
40670 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::VCCRRegClassID),
40671 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
40672 // (fp_to_sint:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1) => (MVE_VCMPf16r:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, ZR:{ *:[i32] }, 1:{ *:[i32] })
40673 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCMPf16r),
40674 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[P0]
40675 GIR_RootToRootCopy, /*OpIdx*/1, // v1
40676 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::ZR), /*AddRegisterRegFlags*/GIMT_Encode2(0),
40677 GIR_AddImm8, /*InsnID*/0, /*Imm*/1,
40678 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
40679 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
40680 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
40681 GIR_RootConstrainSelectedInstOperands,
40682 // GIR_Coverage, 5223,
40683 GIR_EraseRootFromParent_Done,
40684 // Label 2187: @111994
40685 GIM_Reject,
40686 // Label 2166: @111995
40687 GIM_Try, /*On fail goto*//*Label 2188*/ GIMT_Encode4(112091),
40688 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
40689 GIM_Try, /*On fail goto*//*Label 2189*/ GIMT_Encode4(112037), // Rule ID 1635 //
40690 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
40691 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
40692 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
40693 // (fp_to_sint:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm) => (VCVTh2sq:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
40694 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTh2sq),
40695 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
40696 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
40697 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
40698 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
40699 GIR_RootConstrainSelectedInstOperands,
40700 // GIR_Coverage, 1635,
40701 GIR_EraseRootFromParent_Done,
40702 // Label 2189: @112037
40703 GIM_Try, /*On fail goto*//*Label 2190*/ GIMT_Encode4(112090), // Rule ID 4205 //
40704 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
40705 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
40706 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
40707 // (fp_to_sint:{ *:[v8i16] } MQPR:{ *:[v8f16] }:$src) => (MVE_VCVTs16f16z:{ *:[v8i16] } MQPR:{ *:[v8f16] }:$src)
40708 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
40709 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
40710 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
40711 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCVTs16f16z),
40712 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
40713 GIR_RootToRootCopy, /*OpIdx*/1, // src
40714 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
40715 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
40716 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
40717 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
40718 GIR_RootConstrainSelectedInstOperands,
40719 // GIR_Coverage, 4205,
40720 GIR_EraseRootFromParent_Done,
40721 // Label 2190: @112090
40722 GIM_Reject,
40723 // Label 2188: @112091
40724 GIM_Reject,
40725 // Label 2167: @112092
40726 GIM_Reject,
40727 // Label 40: @112093
40728 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(1), GIMT_Encode2(13), /*)*//*default:*//*Label 2198*/ GIMT_Encode4(113422),
40729 /*GILLT_s32*//*Label 2191*/ GIMT_Encode4(112152), GIMT_Encode4(0), GIMT_Encode4(0),
40730 /*GILLT_v2s32*//*Label 2192*/ GIMT_Encode4(113046), GIMT_Encode4(0),
40731 /*GILLT_v4s1*//*Label 2193*/ GIMT_Encode4(113084),
40732 /*GILLT_v4s16*//*Label 2194*/ GIMT_Encode4(113137),
40733 /*GILLT_v4s32*//*Label 2195*/ GIMT_Encode4(113175), GIMT_Encode4(0),
40734 /*GILLT_v8s1*//*Label 2196*/ GIMT_Encode4(113272), GIMT_Encode4(0),
40735 /*GILLT_v8s16*//*Label 2197*/ GIMT_Encode4(113325),
40736 // Label 2191: @112152
40737 GIM_Try, /*On fail goto*//*Label 2199*/ GIMT_Encode4(112218), // Rule ID 2320 //
40738 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16),
40739 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s16,
40740 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
40741 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
40742 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCEIL),
40743 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s16,
40744 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
40745 GIM_CheckIsSafeToFold, /*NumInsns*/1,
40746 // (fp_to_uint:{ *:[i32] } (fceil:{ *:[f16] } HPR:{ *:[f16] }:$a)) => (COPY_TO_REGCLASS:{ *:[i32] } (VCVTPUH:{ *:[f32] } HPR:{ *:[f16] }:$a), GPR:{ *:[i32] })
40747 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
40748 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::VCVTPUH),
40749 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
40750 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
40751 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
40752 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
40753 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
40754 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
40755 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::GPRRegClassID),
40756 // GIR_Coverage, 2320,
40757 GIR_EraseRootFromParent_Done,
40758 // Label 2199: @112218
40759 GIM_Try, /*On fail goto*//*Label 2200*/ GIMT_Encode4(112284), // Rule ID 2322 //
40760 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFPARMv8),
40761 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
40762 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
40763 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
40764 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCEIL),
40765 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
40766 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
40767 GIM_CheckIsSafeToFold, /*NumInsns*/1,
40768 // (fp_to_uint:{ *:[i32] } (fceil:{ *:[f32] } SPR:{ *:[f32] }:$a)) => (COPY_TO_REGCLASS:{ *:[i32] } (VCVTPUS:{ *:[f32] } SPR:{ *:[f32] }:$a), GPR:{ *:[i32] })
40769 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
40770 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::VCVTPUS),
40771 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
40772 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
40773 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
40774 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
40775 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
40776 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
40777 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::GPRRegClassID),
40778 // GIR_Coverage, 2322,
40779 GIR_EraseRootFromParent_Done,
40780 // Label 2200: @112284
40781 GIM_Try, /*On fail goto*//*Label 2201*/ GIMT_Encode4(112350), // Rule ID 2324 //
40782 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasFPARMv8),
40783 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
40784 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
40785 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
40786 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCEIL),
40787 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
40788 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
40789 GIM_CheckIsSafeToFold, /*NumInsns*/1,
40790 // (fp_to_uint:{ *:[i32] } (fceil:{ *:[f64] } DPR:{ *:[f64] }:$a)) => (COPY_TO_REGCLASS:{ *:[i32] } (VCVTPUD:{ *:[f32] } DPR:{ *:[f64] }:$a), GPR:{ *:[i32] })
40791 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
40792 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::VCVTPUD),
40793 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
40794 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
40795 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
40796 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
40797 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
40798 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
40799 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::GPRRegClassID),
40800 // GIR_Coverage, 2324,
40801 GIR_EraseRootFromParent_Done,
40802 // Label 2201: @112350
40803 GIM_Try, /*On fail goto*//*Label 2202*/ GIMT_Encode4(112416), // Rule ID 2326 //
40804 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16),
40805 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s16,
40806 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
40807 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
40808 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FFLOOR),
40809 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s16,
40810 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
40811 GIM_CheckIsSafeToFold, /*NumInsns*/1,
40812 // (fp_to_uint:{ *:[i32] } (ffloor:{ *:[f16] } HPR:{ *:[f16] }:$a)) => (COPY_TO_REGCLASS:{ *:[i32] } (VCVTMUH:{ *:[f32] } HPR:{ *:[f16] }:$a), GPR:{ *:[i32] })
40813 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
40814 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::VCVTMUH),
40815 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
40816 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
40817 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
40818 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
40819 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
40820 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
40821 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::GPRRegClassID),
40822 // GIR_Coverage, 2326,
40823 GIR_EraseRootFromParent_Done,
40824 // Label 2202: @112416
40825 GIM_Try, /*On fail goto*//*Label 2203*/ GIMT_Encode4(112482), // Rule ID 2328 //
40826 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFPARMv8),
40827 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
40828 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
40829 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
40830 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FFLOOR),
40831 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
40832 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
40833 GIM_CheckIsSafeToFold, /*NumInsns*/1,
40834 // (fp_to_uint:{ *:[i32] } (ffloor:{ *:[f32] } SPR:{ *:[f32] }:$a)) => (COPY_TO_REGCLASS:{ *:[i32] } (VCVTMUS:{ *:[f32] } SPR:{ *:[f32] }:$a), GPR:{ *:[i32] })
40835 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
40836 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::VCVTMUS),
40837 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
40838 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
40839 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
40840 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
40841 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
40842 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
40843 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::GPRRegClassID),
40844 // GIR_Coverage, 2328,
40845 GIR_EraseRootFromParent_Done,
40846 // Label 2203: @112482
40847 GIM_Try, /*On fail goto*//*Label 2204*/ GIMT_Encode4(112548), // Rule ID 2330 //
40848 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasFPARMv8),
40849 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
40850 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
40851 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
40852 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FFLOOR),
40853 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
40854 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
40855 GIM_CheckIsSafeToFold, /*NumInsns*/1,
40856 // (fp_to_uint:{ *:[i32] } (ffloor:{ *:[f64] } DPR:{ *:[f64] }:$a)) => (COPY_TO_REGCLASS:{ *:[i32] } (VCVTMUD:{ *:[f32] } DPR:{ *:[f64] }:$a), GPR:{ *:[i32] })
40857 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
40858 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::VCVTMUD),
40859 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
40860 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
40861 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
40862 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
40863 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
40864 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
40865 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::GPRRegClassID),
40866 // GIR_Coverage, 2330,
40867 GIR_EraseRootFromParent_Done,
40868 // Label 2204: @112548
40869 GIM_Try, /*On fail goto*//*Label 2205*/ GIMT_Encode4(112614), // Rule ID 2314 //
40870 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16),
40871 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s16,
40872 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
40873 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
40874 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTRINSIC_ROUND),
40875 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s16,
40876 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
40877 GIM_CheckIsSafeToFold, /*NumInsns*/1,
40878 // (fp_to_uint:{ *:[i32] } (fround:{ *:[f16] } HPR:{ *:[f16] }:$a)) => (COPY_TO_REGCLASS:{ *:[i32] } (VCVTAUH:{ *:[f32] } HPR:{ *:[f16] }:$a), GPR:{ *:[i32] })
40879 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
40880 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::VCVTAUH),
40881 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
40882 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
40883 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
40884 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
40885 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
40886 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
40887 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::GPRRegClassID),
40888 // GIR_Coverage, 2314,
40889 GIR_EraseRootFromParent_Done,
40890 // Label 2205: @112614
40891 GIM_Try, /*On fail goto*//*Label 2206*/ GIMT_Encode4(112680), // Rule ID 2316 //
40892 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFPARMv8),
40893 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
40894 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
40895 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
40896 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTRINSIC_ROUND),
40897 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
40898 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
40899 GIM_CheckIsSafeToFold, /*NumInsns*/1,
40900 // (fp_to_uint:{ *:[i32] } (fround:{ *:[f32] } SPR:{ *:[f32] }:$a)) => (COPY_TO_REGCLASS:{ *:[i32] } (VCVTAUS:{ *:[f32] } SPR:{ *:[f32] }:$a), GPR:{ *:[i32] })
40901 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
40902 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::VCVTAUS),
40903 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
40904 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
40905 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
40906 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
40907 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
40908 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
40909 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::GPRRegClassID),
40910 // GIR_Coverage, 2316,
40911 GIR_EraseRootFromParent_Done,
40912 // Label 2206: @112680
40913 GIM_Try, /*On fail goto*//*Label 2207*/ GIMT_Encode4(112746), // Rule ID 2318 //
40914 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasFPARMv8),
40915 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
40916 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
40917 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
40918 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTRINSIC_ROUND),
40919 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
40920 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
40921 GIM_CheckIsSafeToFold, /*NumInsns*/1,
40922 // (fp_to_uint:{ *:[i32] } (fround:{ *:[f64] } DPR:{ *:[f64] }:$a)) => (COPY_TO_REGCLASS:{ *:[i32] } (VCVTAUD:{ *:[f32] } DPR:{ *:[f64] }:$a), GPR:{ *:[i32] })
40923 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
40924 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::VCVTAUD),
40925 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
40926 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
40927 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
40928 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
40929 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
40930 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
40931 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::GPRRegClassID),
40932 // GIR_Coverage, 2318,
40933 GIR_EraseRootFromParent_Done,
40934 // Label 2207: @112746
40935 GIM_Try, /*On fail goto*//*Label 2208*/ GIMT_Encode4(112806), // Rule ID 2360 //
40936 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasVFP2),
40937 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
40938 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
40939 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
40940 // (fp_to_uint:{ *:[i32] } DPR:{ *:[f64] }:$a) => (COPY_TO_REGCLASS:{ *:[i32] } (VTOUIZD:{ *:[f32] } DPR:{ *:[f64] }:$a), GPR:{ *:[i32] })
40941 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
40942 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::VTOUIZD),
40943 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
40944 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // a
40945 GIR_AddImm8, /*InsnID*/1, /*Imm*/14,
40946 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
40947 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
40948 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
40949 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
40950 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
40951 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::GPRRegClassID),
40952 // GIR_Coverage, 2360,
40953 GIR_EraseRootFromParent_Done,
40954 // Label 2208: @112806
40955 GIM_Try, /*On fail goto*//*Label 2209*/ GIMT_Encode4(112866), // Rule ID 2364 //
40956 GIM_CheckFeatures, GIMT_Encode2(GIFBS_DontUseNEONForFP_HasVFP2),
40957 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
40958 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
40959 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
40960 // (fp_to_uint:{ *:[i32] } SPR:{ *:[f32] }:$a) => (COPY_TO_REGCLASS:{ *:[i32] } (VTOUIZS:{ *:[f32] } SPR:{ *:[f32] }:$a), GPR:{ *:[i32] })
40961 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
40962 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::VTOUIZS),
40963 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
40964 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // a
40965 GIR_AddImm8, /*InsnID*/1, /*Imm*/14,
40966 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
40967 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
40968 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
40969 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
40970 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
40971 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::GPRRegClassID),
40972 // GIR_Coverage, 2364,
40973 GIR_EraseRootFromParent_Done,
40974 // Label 2209: @112866
40975 GIM_Try, /*On fail goto*//*Label 2210*/ GIMT_Encode4(112926), // Rule ID 2368 //
40976 GIM_CheckFeatures, GIMT_Encode2(GIFBS_DontUseNEONForFP_HasVFP2),
40977 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s16,
40978 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
40979 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
40980 // (fp_to_uint:{ *:[i32] } HPR:{ *:[f16] }:$a) => (COPY_TO_REGCLASS:{ *:[i32] } (VTOUIZH:{ *:[f32] } HPR:{ *:[f16] }:$a), GPR:{ *:[i32] })
40981 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
40982 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::VTOUIZH),
40983 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
40984 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // a
40985 GIR_AddImm8, /*InsnID*/1, /*Imm*/14,
40986 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
40987 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
40988 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
40989 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
40990 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
40991 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::GPRRegClassID),
40992 // GIR_Coverage, 2368,
40993 GIR_EraseRootFromParent_Done,
40994 // Label 2210: @112926
40995 GIM_Try, /*On fail goto*//*Label 2211*/ GIMT_Encode4(113045), // Rule ID 2729 //
40996 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_UseNEONForFP),
40997 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
40998 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
40999 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
41000 // (fp_to_uint:{ *:[i32] } SPR:{ *:[f32] }:$a) => (EXTRACT_SUBREG:{ *:[i32] } (VCVTf2ud:{ *:[v2f32] } (INSERT_SUBREG:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] })), ssub_0:{ *:[i32] })
41001 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v2s32,
41002 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v2s32,
41003 GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v2s32,
41004 GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
41005 GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
41006 GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
41007 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::INSERT_SUBREG),
41008 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
41009 GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
41010 GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // a
41011 GIR_AddImm8, /*InsnID*/2, /*Imm*/17,
41012 GIR_ConstrainOperandRC, /*InsnID*/2, /*Op*/0, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
41013 GIR_ConstrainOperandRC, /*InsnID*/2, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
41014 GIR_ConstrainOperandRC, /*InsnID*/2, /*Op*/2, GIMT_Encode2(ARM::SPRRegClassID),
41015 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::VCVTf2ud),
41016 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
41017 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
41018 GIR_AddImm8, /*InsnID*/1, /*Imm*/14,
41019 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41020 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
41021 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
41022 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
41023 GIR_AddTempSubRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(0), GIMT_Encode2(ARM::ssub_0),
41024 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::SPRRegClassID),
41025 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
41026 // GIR_Coverage, 2729,
41027 GIR_EraseRootFromParent_Done,
41028 // Label 2211: @113045
41029 GIM_Reject,
41030 // Label 2192: @113046
41031 GIM_Try, /*On fail goto*//*Label 2212*/ GIMT_Encode4(113083), // Rule ID 1624 //
41032 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
41033 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
41034 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
41035 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
41036 // (fp_to_uint:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm) => (VCVTf2ud:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
41037 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTf2ud),
41038 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
41039 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
41040 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
41041 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41042 GIR_RootConstrainSelectedInstOperands,
41043 // GIR_Coverage, 1624,
41044 GIR_EraseRootFromParent_Done,
41045 // Label 2212: @113083
41046 GIM_Reject,
41047 // Label 2193: @113084
41048 GIM_Try, /*On fail goto*//*Label 2213*/ GIMT_Encode4(113136), // Rule ID 5220 //
41049 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
41050 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
41051 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::VCCRRegClassID),
41052 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
41053 // (fp_to_uint:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1) => (MVE_VCMPf32r:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, ZR:{ *:[i32] }, 1:{ *:[i32] })
41054 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCMPf32r),
41055 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[P0]
41056 GIR_RootToRootCopy, /*OpIdx*/1, // v1
41057 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::ZR), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41058 GIR_AddImm8, /*InsnID*/0, /*Imm*/1,
41059 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
41060 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41061 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41062 GIR_RootConstrainSelectedInstOperands,
41063 // GIR_Coverage, 5220,
41064 GIR_EraseRootFromParent_Done,
41065 // Label 2213: @113136
41066 GIM_Reject,
41067 // Label 2194: @113137
41068 GIM_Try, /*On fail goto*//*Label 2214*/ GIMT_Encode4(113174), // Rule ID 1632 //
41069 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
41070 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
41071 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
41072 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
41073 // (fp_to_uint:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm) => (VCVTh2ud:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
41074 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTh2ud),
41075 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
41076 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
41077 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
41078 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41079 GIR_RootConstrainSelectedInstOperands,
41080 // GIR_Coverage, 1632,
41081 GIR_EraseRootFromParent_Done,
41082 // Label 2214: @113174
41083 GIM_Reject,
41084 // Label 2195: @113175
41085 GIM_Try, /*On fail goto*//*Label 2215*/ GIMT_Encode4(113271),
41086 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
41087 GIM_Try, /*On fail goto*//*Label 2216*/ GIMT_Encode4(113217), // Rule ID 1628 //
41088 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
41089 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
41090 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
41091 // (fp_to_uint:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm) => (VCVTf2uq:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
41092 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTf2uq),
41093 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
41094 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
41095 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
41096 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41097 GIR_RootConstrainSelectedInstOperands,
41098 // GIR_Coverage, 1628,
41099 GIR_EraseRootFromParent_Done,
41100 // Label 2216: @113217
41101 GIM_Try, /*On fail goto*//*Label 2217*/ GIMT_Encode4(113270), // Rule ID 4211 //
41102 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
41103 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
41104 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
41105 // (fp_to_uint:{ *:[v4i32] } MQPR:{ *:[v4f32] }:$src) => (MVE_VCVTu32f32z:{ *:[v4i32] } MQPR:{ *:[v4f32] }:$src)
41106 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
41107 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
41108 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
41109 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCVTu32f32z),
41110 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
41111 GIR_RootToRootCopy, /*OpIdx*/1, // src
41112 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
41113 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41114 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41115 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
41116 GIR_RootConstrainSelectedInstOperands,
41117 // GIR_Coverage, 4211,
41118 GIR_EraseRootFromParent_Done,
41119 // Label 2217: @113270
41120 GIM_Reject,
41121 // Label 2215: @113271
41122 GIM_Reject,
41123 // Label 2196: @113272
41124 GIM_Try, /*On fail goto*//*Label 2218*/ GIMT_Encode4(113324), // Rule ID 5221 //
41125 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
41126 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
41127 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::VCCRRegClassID),
41128 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
41129 // (fp_to_uint:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1) => (MVE_VCMPf16r:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, ZR:{ *:[i32] }, 1:{ *:[i32] })
41130 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCMPf16r),
41131 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[P0]
41132 GIR_RootToRootCopy, /*OpIdx*/1, // v1
41133 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::ZR), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41134 GIR_AddImm8, /*InsnID*/0, /*Imm*/1,
41135 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
41136 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41137 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41138 GIR_RootConstrainSelectedInstOperands,
41139 // GIR_Coverage, 5221,
41140 GIR_EraseRootFromParent_Done,
41141 // Label 2218: @113324
41142 GIM_Reject,
41143 // Label 2197: @113325
41144 GIM_Try, /*On fail goto*//*Label 2219*/ GIMT_Encode4(113421),
41145 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
41146 GIM_Try, /*On fail goto*//*Label 2220*/ GIMT_Encode4(113367), // Rule ID 1636 //
41147 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
41148 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
41149 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
41150 // (fp_to_uint:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm) => (VCVTh2uq:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
41151 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTh2uq),
41152 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
41153 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
41154 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
41155 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41156 GIR_RootConstrainSelectedInstOperands,
41157 // GIR_Coverage, 1636,
41158 GIR_EraseRootFromParent_Done,
41159 // Label 2220: @113367
41160 GIM_Try, /*On fail goto*//*Label 2221*/ GIMT_Encode4(113420), // Rule ID 4207 //
41161 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
41162 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
41163 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
41164 // (fp_to_uint:{ *:[v8i16] } MQPR:{ *:[v8f16] }:$src) => (MVE_VCVTu16f16z:{ *:[v8i16] } MQPR:{ *:[v8f16] }:$src)
41165 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
41166 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
41167 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
41168 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCVTu16f16z),
41169 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
41170 GIR_RootToRootCopy, /*OpIdx*/1, // src
41171 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
41172 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41173 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41174 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
41175 GIR_RootConstrainSelectedInstOperands,
41176 // GIR_Coverage, 4207,
41177 GIR_EraseRootFromParent_Done,
41178 // Label 2221: @113420
41179 GIM_Reject,
41180 // Label 2219: @113421
41181 GIM_Reject,
41182 // Label 2198: @113422
41183 GIM_Reject,
41184 // Label 41: @113423
41185 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(0), GIMT_Encode2(13), /*)*//*default:*//*Label 2229*/ GIMT_Encode4(114066),
41186 /*GILLT_s16*//*Label 2222*/ GIMT_Encode4(113486),
41187 /*GILLT_s32*//*Label 2223*/ GIMT_Encode4(113543),
41188 /*GILLT_s64*//*Label 2224*/ GIMT_Encode4(113739), GIMT_Encode4(0),
41189 /*GILLT_v2s32*//*Label 2225*/ GIMT_Encode4(113796), GIMT_Encode4(0), GIMT_Encode4(0),
41190 /*GILLT_v4s16*//*Label 2226*/ GIMT_Encode4(113834),
41191 /*GILLT_v4s32*//*Label 2227*/ GIMT_Encode4(113872), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
41192 /*GILLT_v8s16*//*Label 2228*/ GIMT_Encode4(113969),
41193 // Label 2222: @113486
41194 GIM_Try, /*On fail goto*//*Label 2230*/ GIMT_Encode4(113542), // Rule ID 2344 //
41195 GIM_CheckFeatures, GIMT_Encode2(GIFBS_DontUseNEONForFP_HasVFP2),
41196 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
41197 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
41198 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
41199 // (sint_to_fp:{ *:[f16] } GPR:{ *:[i32] }:$a) => (VSITOH:{ *:[f16] } (COPY_TO_REGCLASS:{ *:[f32] } GPR:{ *:[i32] }:$a, SPR:{ *:[i32] }))
41200 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
41201 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
41202 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
41203 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // a
41204 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
41205 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSITOH),
41206 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
41207 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
41208 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
41209 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41210 GIR_RootConstrainSelectedInstOperands,
41211 // GIR_Coverage, 2344,
41212 GIR_EraseRootFromParent_Done,
41213 // Label 2230: @113542
41214 GIM_Reject,
41215 // Label 2223: @113543
41216 GIM_Try, /*On fail goto*//*Label 2231*/ GIMT_Encode4(113738),
41217 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
41218 GIM_Try, /*On fail goto*//*Label 2232*/ GIMT_Encode4(113604), // Rule ID 2342 //
41219 GIM_CheckFeatures, GIMT_Encode2(GIFBS_DontUseNEONForFP_HasVFP2),
41220 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
41221 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
41222 // (sint_to_fp:{ *:[f32] } GPR:{ *:[i32] }:$a) => (VSITOS:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[f32] } GPR:{ *:[i32] }:$a, SPR:{ *:[i32] }))
41223 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
41224 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
41225 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
41226 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // a
41227 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
41228 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSITOS),
41229 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
41230 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
41231 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
41232 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41233 GIR_RootConstrainSelectedInstOperands,
41234 // GIR_Coverage, 2342,
41235 GIR_EraseRootFromParent_Done,
41236 // Label 2232: @113604
41237 GIM_Try, /*On fail goto*//*Label 2233*/ GIMT_Encode4(113737), // Rule ID 2730 //
41238 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_UseNEONForFP),
41239 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
41240 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
41241 // (sint_to_fp:{ *:[f32] } GPR:{ *:[i32] }:$a) => (EXTRACT_SUBREG:{ *:[f32] } (VCVTs2fd:{ *:[v2f32] } (INSERT_SUBREG:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), (COPY_TO_REGCLASS:{ *:[i32] } GPR:{ *:[i32] }:$a, SPR:{ *:[i32] }), ssub_0:{ *:[i32] })), ssub_0:{ *:[i32] })
41242 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v2s32,
41243 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v2s32,
41244 GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v2s32,
41245 GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_s32,
41246 GIR_BuildMI, /*InsnID*/4, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
41247 GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/3, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
41248 GIR_Copy, /*NewInsnID*/4, /*OldInsnID*/0, /*OpIdx*/1, // a
41249 GIR_ConstrainSelectedInstOperands, /*InsnID*/4,
41250 GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
41251 GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
41252 GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
41253 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::INSERT_SUBREG),
41254 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
41255 GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
41256 GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/3,
41257 GIR_AddImm8, /*InsnID*/2, /*Imm*/17,
41258 GIR_ConstrainOperandRC, /*InsnID*/2, /*Op*/0, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
41259 GIR_ConstrainOperandRC, /*InsnID*/2, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
41260 GIR_ConstrainOperandRC, /*InsnID*/2, /*Op*/2, GIMT_Encode2(ARM::SPRRegClassID),
41261 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::VCVTs2fd),
41262 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
41263 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
41264 GIR_AddImm8, /*InsnID*/1, /*Imm*/14,
41265 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41266 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
41267 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
41268 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
41269 GIR_AddTempSubRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(0), GIMT_Encode2(ARM::ssub_0),
41270 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::SPRRegClassID),
41271 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
41272 // GIR_Coverage, 2730,
41273 GIR_EraseRootFromParent_Done,
41274 // Label 2233: @113737
41275 GIM_Reject,
41276 // Label 2231: @113738
41277 GIM_Reject,
41278 // Label 2224: @113739
41279 GIM_Try, /*On fail goto*//*Label 2234*/ GIMT_Encode4(113795), // Rule ID 2340 //
41280 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasVFP2),
41281 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
41282 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
41283 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
41284 // (sint_to_fp:{ *:[f64] } GPR:{ *:[i32] }:$a) => (VSITOD:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f32] } GPR:{ *:[i32] }:$a, SPR:{ *:[i32] }))
41285 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
41286 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
41287 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
41288 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // a
41289 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
41290 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSITOD),
41291 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Dd]
41292 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
41293 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
41294 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41295 GIR_RootConstrainSelectedInstOperands,
41296 // GIR_Coverage, 2340,
41297 GIR_EraseRootFromParent_Done,
41298 // Label 2234: @113795
41299 GIM_Reject,
41300 // Label 2225: @113796
41301 GIM_Try, /*On fail goto*//*Label 2235*/ GIMT_Encode4(113833), // Rule ID 1625 //
41302 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
41303 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
41304 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
41305 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
41306 // (sint_to_fp:{ *:[v2f32] } DPR:{ *:[v2i32] }:$Vm) => (VCVTs2fd:{ *:[v2f32] } DPR:{ *:[v2i32] }:$Vm)
41307 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTs2fd),
41308 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
41309 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
41310 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
41311 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41312 GIR_RootConstrainSelectedInstOperands,
41313 // GIR_Coverage, 1625,
41314 GIR_EraseRootFromParent_Done,
41315 // Label 2235: @113833
41316 GIM_Reject,
41317 // Label 2226: @113834
41318 GIM_Try, /*On fail goto*//*Label 2236*/ GIMT_Encode4(113871), // Rule ID 1633 //
41319 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
41320 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
41321 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
41322 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
41323 // (sint_to_fp:{ *:[v4f16] } DPR:{ *:[v4i16] }:$Vm) => (VCVTs2hd:{ *:[v4f16] } DPR:{ *:[v4i16] }:$Vm)
41324 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTs2hd),
41325 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
41326 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
41327 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
41328 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41329 GIR_RootConstrainSelectedInstOperands,
41330 // GIR_Coverage, 1633,
41331 GIR_EraseRootFromParent_Done,
41332 // Label 2236: @113871
41333 GIM_Reject,
41334 // Label 2227: @113872
41335 GIM_Try, /*On fail goto*//*Label 2237*/ GIMT_Encode4(113968),
41336 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
41337 GIM_Try, /*On fail goto*//*Label 2238*/ GIMT_Encode4(113914), // Rule ID 1629 //
41338 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
41339 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
41340 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
41341 // (sint_to_fp:{ *:[v4f32] } QPR:{ *:[v4i32] }:$Vm) => (VCVTs2fq:{ *:[v4f32] } QPR:{ *:[v4i32] }:$Vm)
41342 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTs2fq),
41343 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
41344 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
41345 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
41346 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41347 GIR_RootConstrainSelectedInstOperands,
41348 // GIR_Coverage, 1629,
41349 GIR_EraseRootFromParent_Done,
41350 // Label 2238: @113914
41351 GIM_Try, /*On fail goto*//*Label 2239*/ GIMT_Encode4(113967), // Rule ID 4217 //
41352 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
41353 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
41354 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
41355 // (sint_to_fp:{ *:[v4f32] } MQPR:{ *:[v4i32] }:$src) => (MVE_VCVTf32s32n:{ *:[v4f32] } MQPR:{ *:[v4i32] }:$src)
41356 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
41357 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
41358 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
41359 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCVTf32s32n),
41360 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
41361 GIR_RootToRootCopy, /*OpIdx*/1, // src
41362 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
41363 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41364 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41365 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
41366 GIR_RootConstrainSelectedInstOperands,
41367 // GIR_Coverage, 4217,
41368 GIR_EraseRootFromParent_Done,
41369 // Label 2239: @113967
41370 GIM_Reject,
41371 // Label 2237: @113968
41372 GIM_Reject,
41373 // Label 2228: @113969
41374 GIM_Try, /*On fail goto*//*Label 2240*/ GIMT_Encode4(114065),
41375 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
41376 GIM_Try, /*On fail goto*//*Label 2241*/ GIMT_Encode4(114011), // Rule ID 1637 //
41377 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
41378 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
41379 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
41380 // (sint_to_fp:{ *:[v8f16] } QPR:{ *:[v8i16] }:$Vm) => (VCVTs2hq:{ *:[v8f16] } QPR:{ *:[v8i16] }:$Vm)
41381 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTs2hq),
41382 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
41383 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
41384 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
41385 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41386 GIR_RootConstrainSelectedInstOperands,
41387 // GIR_Coverage, 1637,
41388 GIR_EraseRootFromParent_Done,
41389 // Label 2241: @114011
41390 GIM_Try, /*On fail goto*//*Label 2242*/ GIMT_Encode4(114064), // Rule ID 4213 //
41391 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
41392 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
41393 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
41394 // (sint_to_fp:{ *:[v8f16] } MQPR:{ *:[v8i16] }:$src) => (MVE_VCVTf16s16n:{ *:[v8f16] } MQPR:{ *:[v8i16] }:$src)
41395 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
41396 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
41397 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
41398 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCVTf16s16n),
41399 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
41400 GIR_RootToRootCopy, /*OpIdx*/1, // src
41401 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
41402 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41403 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41404 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
41405 GIR_RootConstrainSelectedInstOperands,
41406 // GIR_Coverage, 4213,
41407 GIR_EraseRootFromParent_Done,
41408 // Label 2242: @114064
41409 GIM_Reject,
41410 // Label 2240: @114065
41411 GIM_Reject,
41412 // Label 2229: @114066
41413 GIM_Reject,
41414 // Label 42: @114067
41415 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(0), GIMT_Encode2(13), /*)*//*default:*//*Label 2250*/ GIMT_Encode4(114710),
41416 /*GILLT_s16*//*Label 2243*/ GIMT_Encode4(114130),
41417 /*GILLT_s32*//*Label 2244*/ GIMT_Encode4(114187),
41418 /*GILLT_s64*//*Label 2245*/ GIMT_Encode4(114383), GIMT_Encode4(0),
41419 /*GILLT_v2s32*//*Label 2246*/ GIMT_Encode4(114440), GIMT_Encode4(0), GIMT_Encode4(0),
41420 /*GILLT_v4s16*//*Label 2247*/ GIMT_Encode4(114478),
41421 /*GILLT_v4s32*//*Label 2248*/ GIMT_Encode4(114516), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
41422 /*GILLT_v8s16*//*Label 2249*/ GIMT_Encode4(114613),
41423 // Label 2243: @114130
41424 GIM_Try, /*On fail goto*//*Label 2251*/ GIMT_Encode4(114186), // Rule ID 2349 //
41425 GIM_CheckFeatures, GIMT_Encode2(GIFBS_DontUseNEONForFP_HasVFP2),
41426 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
41427 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
41428 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
41429 // (uint_to_fp:{ *:[f16] } GPR:{ *:[i32] }:$a) => (VUITOH:{ *:[f16] } (COPY_TO_REGCLASS:{ *:[f32] } GPR:{ *:[i32] }:$a, SPR:{ *:[i32] }))
41430 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
41431 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
41432 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
41433 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // a
41434 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
41435 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VUITOH),
41436 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
41437 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
41438 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
41439 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41440 GIR_RootConstrainSelectedInstOperands,
41441 // GIR_Coverage, 2349,
41442 GIR_EraseRootFromParent_Done,
41443 // Label 2251: @114186
41444 GIM_Reject,
41445 // Label 2244: @114187
41446 GIM_Try, /*On fail goto*//*Label 2252*/ GIMT_Encode4(114382),
41447 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
41448 GIM_Try, /*On fail goto*//*Label 2253*/ GIMT_Encode4(114248), // Rule ID 2347 //
41449 GIM_CheckFeatures, GIMT_Encode2(GIFBS_DontUseNEONForFP_HasVFP2),
41450 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
41451 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
41452 // (uint_to_fp:{ *:[f32] } GPR:{ *:[i32] }:$a) => (VUITOS:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[f32] } GPR:{ *:[i32] }:$a, SPR:{ *:[i32] }))
41453 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
41454 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
41455 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
41456 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // a
41457 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
41458 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VUITOS),
41459 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
41460 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
41461 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
41462 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41463 GIR_RootConstrainSelectedInstOperands,
41464 // GIR_Coverage, 2347,
41465 GIR_EraseRootFromParent_Done,
41466 // Label 2253: @114248
41467 GIM_Try, /*On fail goto*//*Label 2254*/ GIMT_Encode4(114381), // Rule ID 2731 //
41468 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_UseNEONForFP),
41469 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
41470 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
41471 // (uint_to_fp:{ *:[f32] } GPR:{ *:[i32] }:$a) => (EXTRACT_SUBREG:{ *:[f32] } (VCVTu2fd:{ *:[v2f32] } (INSERT_SUBREG:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), (COPY_TO_REGCLASS:{ *:[i32] } GPR:{ *:[i32] }:$a, SPR:{ *:[i32] }), ssub_0:{ *:[i32] })), ssub_0:{ *:[i32] })
41472 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v2s32,
41473 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v2s32,
41474 GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v2s32,
41475 GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_s32,
41476 GIR_BuildMI, /*InsnID*/4, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
41477 GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/3, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
41478 GIR_Copy, /*NewInsnID*/4, /*OldInsnID*/0, /*OpIdx*/1, // a
41479 GIR_ConstrainSelectedInstOperands, /*InsnID*/4,
41480 GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
41481 GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
41482 GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
41483 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::INSERT_SUBREG),
41484 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
41485 GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
41486 GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/3,
41487 GIR_AddImm8, /*InsnID*/2, /*Imm*/17,
41488 GIR_ConstrainOperandRC, /*InsnID*/2, /*Op*/0, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
41489 GIR_ConstrainOperandRC, /*InsnID*/2, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
41490 GIR_ConstrainOperandRC, /*InsnID*/2, /*Op*/2, GIMT_Encode2(ARM::SPRRegClassID),
41491 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::VCVTu2fd),
41492 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
41493 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
41494 GIR_AddImm8, /*InsnID*/1, /*Imm*/14,
41495 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41496 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
41497 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
41498 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
41499 GIR_AddTempSubRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(0), GIMT_Encode2(ARM::ssub_0),
41500 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::SPRRegClassID),
41501 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
41502 // GIR_Coverage, 2731,
41503 GIR_EraseRootFromParent_Done,
41504 // Label 2254: @114381
41505 GIM_Reject,
41506 // Label 2252: @114382
41507 GIM_Reject,
41508 // Label 2245: @114383
41509 GIM_Try, /*On fail goto*//*Label 2255*/ GIMT_Encode4(114439), // Rule ID 2345 //
41510 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasVFP2),
41511 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
41512 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
41513 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
41514 // (uint_to_fp:{ *:[f64] } GPR:{ *:[i32] }:$a) => (VUITOD:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f32] } GPR:{ *:[i32] }:$a, SPR:{ *:[i32] }))
41515 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
41516 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
41517 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
41518 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // a
41519 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
41520 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VUITOD),
41521 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Dd]
41522 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
41523 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
41524 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41525 GIR_RootConstrainSelectedInstOperands,
41526 // GIR_Coverage, 2345,
41527 GIR_EraseRootFromParent_Done,
41528 // Label 2255: @114439
41529 GIM_Reject,
41530 // Label 2246: @114440
41531 GIM_Try, /*On fail goto*//*Label 2256*/ GIMT_Encode4(114477), // Rule ID 1626 //
41532 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
41533 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
41534 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
41535 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
41536 // (uint_to_fp:{ *:[v2f32] } DPR:{ *:[v2i32] }:$Vm) => (VCVTu2fd:{ *:[v2f32] } DPR:{ *:[v2i32] }:$Vm)
41537 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTu2fd),
41538 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
41539 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
41540 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
41541 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41542 GIR_RootConstrainSelectedInstOperands,
41543 // GIR_Coverage, 1626,
41544 GIR_EraseRootFromParent_Done,
41545 // Label 2256: @114477
41546 GIM_Reject,
41547 // Label 2247: @114478
41548 GIM_Try, /*On fail goto*//*Label 2257*/ GIMT_Encode4(114515), // Rule ID 1634 //
41549 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
41550 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
41551 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
41552 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
41553 // (uint_to_fp:{ *:[v4f16] } DPR:{ *:[v4i16] }:$Vm) => (VCVTu2hd:{ *:[v4f16] } DPR:{ *:[v4i16] }:$Vm)
41554 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTu2hd),
41555 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
41556 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
41557 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
41558 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41559 GIR_RootConstrainSelectedInstOperands,
41560 // GIR_Coverage, 1634,
41561 GIR_EraseRootFromParent_Done,
41562 // Label 2257: @114515
41563 GIM_Reject,
41564 // Label 2248: @114516
41565 GIM_Try, /*On fail goto*//*Label 2258*/ GIMT_Encode4(114612),
41566 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
41567 GIM_Try, /*On fail goto*//*Label 2259*/ GIMT_Encode4(114558), // Rule ID 1630 //
41568 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
41569 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
41570 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
41571 // (uint_to_fp:{ *:[v4f32] } QPR:{ *:[v4i32] }:$Vm) => (VCVTu2fq:{ *:[v4f32] } QPR:{ *:[v4i32] }:$Vm)
41572 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTu2fq),
41573 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
41574 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
41575 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
41576 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41577 GIR_RootConstrainSelectedInstOperands,
41578 // GIR_Coverage, 1630,
41579 GIR_EraseRootFromParent_Done,
41580 // Label 2259: @114558
41581 GIM_Try, /*On fail goto*//*Label 2260*/ GIMT_Encode4(114611), // Rule ID 4219 //
41582 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
41583 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
41584 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
41585 // (uint_to_fp:{ *:[v4f32] } MQPR:{ *:[v4i32] }:$src) => (MVE_VCVTf32u32n:{ *:[v4f32] } MQPR:{ *:[v4i32] }:$src)
41586 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
41587 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
41588 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
41589 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCVTf32u32n),
41590 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
41591 GIR_RootToRootCopy, /*OpIdx*/1, // src
41592 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
41593 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41594 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41595 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
41596 GIR_RootConstrainSelectedInstOperands,
41597 // GIR_Coverage, 4219,
41598 GIR_EraseRootFromParent_Done,
41599 // Label 2260: @114611
41600 GIM_Reject,
41601 // Label 2258: @114612
41602 GIM_Reject,
41603 // Label 2249: @114613
41604 GIM_Try, /*On fail goto*//*Label 2261*/ GIMT_Encode4(114709),
41605 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
41606 GIM_Try, /*On fail goto*//*Label 2262*/ GIMT_Encode4(114655), // Rule ID 1638 //
41607 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
41608 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
41609 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
41610 // (uint_to_fp:{ *:[v8f16] } QPR:{ *:[v8i16] }:$Vm) => (VCVTu2hq:{ *:[v8f16] } QPR:{ *:[v8i16] }:$Vm)
41611 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCVTu2hq),
41612 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
41613 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
41614 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
41615 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41616 GIR_RootConstrainSelectedInstOperands,
41617 // GIR_Coverage, 1638,
41618 GIR_EraseRootFromParent_Done,
41619 // Label 2262: @114655
41620 GIM_Try, /*On fail goto*//*Label 2263*/ GIMT_Encode4(114708), // Rule ID 4215 //
41621 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
41622 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
41623 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
41624 // (uint_to_fp:{ *:[v8f16] } MQPR:{ *:[v8i16] }:$src) => (MVE_VCVTf16u16n:{ *:[v8f16] } MQPR:{ *:[v8i16] }:$src)
41625 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
41626 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
41627 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
41628 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCVTf16u16n),
41629 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
41630 GIR_RootToRootCopy, /*OpIdx*/1, // src
41631 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
41632 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41633 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41634 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
41635 GIR_RootConstrainSelectedInstOperands,
41636 // GIR_Coverage, 4215,
41637 GIR_EraseRootFromParent_Done,
41638 // Label 2263: @114708
41639 GIM_Reject,
41640 // Label 2261: @114709
41641 GIM_Reject,
41642 // Label 2250: @114710
41643 GIM_Reject,
41644 // Label 43: @114711
41645 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(0), GIMT_Encode2(13), /*)*//*default:*//*Label 2271*/ GIMT_Encode4(115480),
41646 /*GILLT_s16*//*Label 2264*/ GIMT_Encode4(114774),
41647 /*GILLT_s32*//*Label 2265*/ GIMT_Encode4(114812),
41648 /*GILLT_s64*//*Label 2266*/ GIMT_Encode4(115006), GIMT_Encode4(0),
41649 /*GILLT_v2s32*//*Label 2267*/ GIMT_Encode4(115044), GIMT_Encode4(0), GIMT_Encode4(0),
41650 /*GILLT_v4s16*//*Label 2268*/ GIMT_Encode4(115082),
41651 /*GILLT_v4s32*//*Label 2269*/ GIMT_Encode4(115120), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
41652 /*GILLT_v8s16*//*Label 2270*/ GIMT_Encode4(115300),
41653 // Label 2264: @114774
41654 GIM_Try, /*On fail goto*//*Label 2272*/ GIMT_Encode4(114811), // Rule ID 670 //
41655 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16),
41656 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s16,
41657 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
41658 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
41659 // (fabs:{ *:[f16] } HPR:{ *:[f16] }:$Sm) => (VABSH:{ *:[f16] } HPR:{ *:[f16] }:$Sm)
41660 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VABSH),
41661 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
41662 GIR_RootToRootCopy, /*OpIdx*/1, // Sm
41663 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
41664 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41665 GIR_RootConstrainSelectedInstOperands,
41666 // GIR_Coverage, 670,
41667 GIR_EraseRootFromParent_Done,
41668 // Label 2272: @114811
41669 GIM_Reject,
41670 // Label 2265: @114812
41671 GIM_Try, /*On fail goto*//*Label 2273*/ GIMT_Encode4(115005),
41672 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
41673 GIM_Try, /*On fail goto*//*Label 2274*/ GIMT_Encode4(114854), // Rule ID 669 //
41674 GIM_CheckFeatures, GIMT_Encode2(GIFBS_DontUseNEONForFP_HasVFP2),
41675 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
41676 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
41677 // (fabs:{ *:[f32] } SPR:{ *:[f32] }:$Sm) => (VABSS:{ *:[f32] } SPR:{ *:[f32] }:$Sm)
41678 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VABSS),
41679 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
41680 GIR_RootToRootCopy, /*OpIdx*/1, // Sm
41681 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
41682 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41683 GIR_RootConstrainSelectedInstOperands,
41684 // GIR_Coverage, 669,
41685 GIR_EraseRootFromParent_Done,
41686 // Label 2274: @114854
41687 GIM_Try, /*On fail goto*//*Label 2275*/ GIMT_Encode4(115004), // Rule ID 2722 //
41688 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_UseNEONForFP),
41689 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPR_VFP2RegClassID),
41690 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
41691 // (fabs:{ *:[f32] } SPR:{ *:[f32] }:$a) => (EXTRACT_SUBREG:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (VABSfd:{ *:[f64] } (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
41692 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v2s32,
41693 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s64,
41694 GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v2s32,
41695 GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_v2s32,
41696 GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_v2s32,
41697 GIR_BuildMI, /*InsnID*/5, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
41698 GIR_AddTempRegister, /*InsnID*/5, /*TempRegID*/4, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
41699 GIR_ConstrainSelectedInstOperands, /*InsnID*/5,
41700 GIR_BuildMI, /*InsnID*/4, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
41701 GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/3, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
41702 GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/4,
41703 GIR_ConstrainSelectedInstOperands, /*InsnID*/4,
41704 GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::INSERT_SUBREG),
41705 GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
41706 GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/3,
41707 GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/1, // a
41708 GIR_AddImm8, /*InsnID*/3, /*Imm*/17,
41709 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/0, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
41710 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
41711 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/2, GIMT_Encode2(ARM::SPRRegClassID),
41712 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(ARM::VABSfd),
41713 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
41714 GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
41715 GIR_AddImm8, /*InsnID*/2, /*Imm*/14,
41716 GIR_AddRegister, /*InsnID*/2, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41717 GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
41718 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
41719 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
41720 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
41721 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
41722 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
41723 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
41724 GIR_AddTempSubRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(0), GIMT_Encode2(ARM::ssub_0),
41725 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::SPRRegClassID),
41726 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
41727 // GIR_Coverage, 2722,
41728 GIR_EraseRootFromParent_Done,
41729 // Label 2275: @115004
41730 GIM_Reject,
41731 // Label 2273: @115005
41732 GIM_Reject,
41733 // Label 2266: @115006
41734 GIM_Try, /*On fail goto*//*Label 2276*/ GIMT_Encode4(115043), // Rule ID 668 //
41735 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasVFP2),
41736 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
41737 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
41738 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
41739 // (fabs:{ *:[f64] } DPR:{ *:[f64] }:$Dm) => (VABSD:{ *:[f64] } DPR:{ *:[f64] }:$Dm)
41740 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VABSD),
41741 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Dd]
41742 GIR_RootToRootCopy, /*OpIdx*/1, // Dm
41743 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
41744 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41745 GIR_RootConstrainSelectedInstOperands,
41746 // GIR_Coverage, 668,
41747 GIR_EraseRootFromParent_Done,
41748 // Label 2276: @115043
41749 GIM_Reject,
41750 // Label 2267: @115044
41751 GIM_Try, /*On fail goto*//*Label 2277*/ GIMT_Encode4(115081), // Rule ID 1533 //
41752 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
41753 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
41754 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
41755 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
41756 // (fabs:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm) => (VABSfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
41757 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VABSfd),
41758 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
41759 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
41760 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
41761 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41762 GIR_RootConstrainSelectedInstOperands,
41763 // GIR_Coverage, 1533,
41764 GIR_EraseRootFromParent_Done,
41765 // Label 2277: @115081
41766 GIM_Reject,
41767 // Label 2268: @115082
41768 GIM_Try, /*On fail goto*//*Label 2278*/ GIMT_Encode4(115119), // Rule ID 1535 //
41769 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
41770 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
41771 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
41772 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
41773 // (fabs:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm) => (VABShd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
41774 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VABShd),
41775 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
41776 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
41777 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
41778 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41779 GIR_RootConstrainSelectedInstOperands,
41780 // GIR_Coverage, 1535,
41781 GIR_EraseRootFromParent_Done,
41782 // Label 2278: @115119
41783 GIM_Reject,
41784 // Label 2269: @115120
41785 GIM_Try, /*On fail goto*//*Label 2279*/ GIMT_Encode4(115299),
41786 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
41787 GIM_Try, /*On fail goto*//*Label 2280*/ GIMT_Encode4(115211), // Rule ID 4156 //
41788 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
41789 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
41790 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
41791 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSUB),
41792 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s32,
41793 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s32,
41794 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
41795 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
41796 GIM_CheckIsSafeToFold, /*NumInsns*/1,
41797 // (fabs:{ *:[v4f32] } (fsub:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qm, MQPR:{ *:[v4f32] }:$Qn)) => (MVE_VABDf32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qm, MQPR:{ *:[v4f32] }:$Qn)
41798 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
41799 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
41800 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
41801 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VABDf32),
41802 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
41803 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Qm
41804 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Qn
41805 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
41806 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41807 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41808 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
41809 GIR_RootConstrainSelectedInstOperands,
41810 // GIR_Coverage, 4156,
41811 GIR_EraseRootFromParent_Done,
41812 // Label 2280: @115211
41813 GIM_Try, /*On fail goto*//*Label 2281*/ GIMT_Encode4(115245), // Rule ID 1534 //
41814 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
41815 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
41816 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
41817 // (fabs:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm) => (VABSfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
41818 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VABSfq),
41819 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
41820 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
41821 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
41822 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41823 GIR_RootConstrainSelectedInstOperands,
41824 // GIR_Coverage, 1534,
41825 GIR_EraseRootFromParent_Done,
41826 // Label 2281: @115245
41827 GIM_Try, /*On fail goto*//*Label 2282*/ GIMT_Encode4(115298), // Rule ID 4227 //
41828 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
41829 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
41830 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
41831 // (fabs:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$v) => (MVE_VABSf32:{ *:[v4f32] } ?:{ *:[v4f32] }:$v)
41832 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
41833 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
41834 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
41835 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VABSf32),
41836 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
41837 GIR_RootToRootCopy, /*OpIdx*/1, // v
41838 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
41839 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41840 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41841 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
41842 GIR_RootConstrainSelectedInstOperands,
41843 // GIR_Coverage, 4227,
41844 GIR_EraseRootFromParent_Done,
41845 // Label 2282: @115298
41846 GIM_Reject,
41847 // Label 2279: @115299
41848 GIM_Reject,
41849 // Label 2270: @115300
41850 GIM_Try, /*On fail goto*//*Label 2283*/ GIMT_Encode4(115479),
41851 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
41852 GIM_Try, /*On fail goto*//*Label 2284*/ GIMT_Encode4(115391), // Rule ID 4155 //
41853 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
41854 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
41855 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
41856 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSUB),
41857 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s16,
41858 GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s16,
41859 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
41860 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
41861 GIM_CheckIsSafeToFold, /*NumInsns*/1,
41862 // (fabs:{ *:[v8f16] } (fsub:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qm, MQPR:{ *:[v8f16] }:$Qn)) => (MVE_VABDf16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qm, MQPR:{ *:[v8f16] }:$Qn)
41863 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
41864 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
41865 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
41866 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VABDf16),
41867 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
41868 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Qm
41869 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Qn
41870 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
41871 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41872 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41873 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
41874 GIR_RootConstrainSelectedInstOperands,
41875 // GIR_Coverage, 4155,
41876 GIR_EraseRootFromParent_Done,
41877 // Label 2284: @115391
41878 GIM_Try, /*On fail goto*//*Label 2285*/ GIMT_Encode4(115425), // Rule ID 1536 //
41879 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
41880 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
41881 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
41882 // (fabs:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm) => (VABShq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
41883 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VABShq),
41884 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
41885 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
41886 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
41887 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41888 GIR_RootConstrainSelectedInstOperands,
41889 // GIR_Coverage, 1536,
41890 GIR_EraseRootFromParent_Done,
41891 // Label 2285: @115425
41892 GIM_Try, /*On fail goto*//*Label 2286*/ GIMT_Encode4(115478), // Rule ID 4225 //
41893 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
41894 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
41895 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
41896 // (fabs:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$v) => (MVE_VABSf16:{ *:[v8f16] } ?:{ *:[v8f16] }:$v)
41897 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
41898 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
41899 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
41900 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VABSf16),
41901 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
41902 GIR_RootToRootCopy, /*OpIdx*/1, // v
41903 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
41904 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41905 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
41906 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
41907 GIR_RootConstrainSelectedInstOperands,
41908 // GIR_Coverage, 4225,
41909 GIR_EraseRootFromParent_Done,
41910 // Label 2286: @115478
41911 GIM_Reject,
41912 // Label 2283: @115479
41913 GIM_Reject,
41914 // Label 2271: @115480
41915 GIM_Reject,
41916 // Label 44: @115481
41917 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(0), GIMT_Encode2(13), /*)*//*default:*//*Label 2294*/ GIMT_Encode4(116068),
41918 /*GILLT_s16*//*Label 2287*/ GIMT_Encode4(115544),
41919 /*GILLT_s32*//*Label 2288*/ GIMT_Encode4(115578),
41920 /*GILLT_s64*//*Label 2289*/ GIMT_Encode4(115612), GIMT_Encode4(0),
41921 /*GILLT_v2s32*//*Label 2290*/ GIMT_Encode4(115646), GIMT_Encode4(0), GIMT_Encode4(0),
41922 /*GILLT_v4s16*//*Label 2291*/ GIMT_Encode4(115680),
41923 /*GILLT_v4s32*//*Label 2292*/ GIMT_Encode4(115714), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
41924 /*GILLT_v8s16*//*Label 2293*/ GIMT_Encode4(115891),
41925 // Label 2287: @115544
41926 GIM_Try, /*On fail goto*//*Label 2295*/ GIMT_Encode4(115577), // Rule ID 659 //
41927 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16),
41928 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s16,
41929 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s16,
41930 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
41931 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
41932 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
41933 // (fminnum:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm) => (VFP_VMINNMH:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
41934 GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/GIMT_Encode2(ARM::VFP_VMINNMH),
41935 GIR_RootConstrainSelectedInstOperands,
41936 // GIR_Coverage, 659,
41937 GIR_Done,
41938 // Label 2295: @115577
41939 GIM_Reject,
41940 // Label 2288: @115578
41941 GIM_Try, /*On fail goto*//*Label 2296*/ GIMT_Encode4(115611), // Rule ID 660 //
41942 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFPARMv8),
41943 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
41944 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
41945 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
41946 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
41947 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
41948 // (fminnum:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm) => (VFP_VMINNMS:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
41949 GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/GIMT_Encode2(ARM::VFP_VMINNMS),
41950 GIR_RootConstrainSelectedInstOperands,
41951 // GIR_Coverage, 660,
41952 GIR_Done,
41953 // Label 2296: @115611
41954 GIM_Reject,
41955 // Label 2289: @115612
41956 GIM_Try, /*On fail goto*//*Label 2297*/ GIMT_Encode4(115645), // Rule ID 661 //
41957 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasFPARMv8),
41958 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
41959 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
41960 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
41961 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
41962 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
41963 // (fminnum:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm) => (VFP_VMINNMD:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
41964 GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/GIMT_Encode2(ARM::VFP_VMINNMD),
41965 GIR_RootConstrainSelectedInstOperands,
41966 // GIR_Coverage, 661,
41967 GIR_Done,
41968 // Label 2297: @115645
41969 GIM_Reject,
41970 // Label 2290: @115646
41971 GIM_Try, /*On fail goto*//*Label 2298*/ GIMT_Encode4(115679), // Rule ID 1252 //
41972 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFPARMv8_HasNEON),
41973 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
41974 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
41975 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
41976 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
41977 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
41978 // (fminnum:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) => (NEON_VMINNMNDf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
41979 GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/GIMT_Encode2(ARM::NEON_VMINNMNDf),
41980 GIR_RootConstrainSelectedInstOperands,
41981 // GIR_Coverage, 1252,
41982 GIR_Done,
41983 // Label 2298: @115679
41984 GIM_Reject,
41985 // Label 2291: @115680
41986 GIM_Try, /*On fail goto*//*Label 2299*/ GIMT_Encode4(115713), // Rule ID 1254 //
41987 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFPARMv8_HasFullFP16_HasNEON),
41988 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
41989 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
41990 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
41991 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
41992 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
41993 // (fminnum:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) => (NEON_VMINNMNDh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
41994 GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/GIMT_Encode2(ARM::NEON_VMINNMNDh),
41995 GIR_RootConstrainSelectedInstOperands,
41996 // GIR_Coverage, 1254,
41997 GIR_Done,
41998 // Label 2299: @115713
41999 GIM_Reject,
42000 // Label 2292: @115714
42001 GIM_Try, /*On fail goto*//*Label 2300*/ GIMT_Encode4(115890),
42002 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
42003 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
42004 GIM_Try, /*On fail goto*//*Label 2301*/ GIMT_Encode4(115803), // Rule ID 4237 //
42005 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
42006 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
42007 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
42008 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FABS),
42009 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s32,
42010 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
42011 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
42012 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FABS),
42013 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v4s32,
42014 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
42015 GIM_CheckIsSafeToFold, /*NumInsns*/2,
42016 // (fminnum:{ *:[v4f32] } (fabs:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qd), (fabs:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qm)) => (MVE_VMINNMAf32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qd, MQPR:{ *:[v4f32] }:$Qm)
42017 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMINNMAf32),
42018 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
42019 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Qd
42020 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Qm
42021 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
42022 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
42023 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
42024 GIR_RootConstrainSelectedInstOperands,
42025 // GIR_Coverage, 4237,
42026 GIR_EraseRootFromParent_Done,
42027 // Label 2301: @115803
42028 GIM_Try, /*On fail goto*//*Label 2302*/ GIMT_Encode4(115830), // Rule ID 1253 //
42029 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFPARMv8_HasNEON),
42030 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
42031 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
42032 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
42033 // (fminnum:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) => (NEON_VMINNMNQf:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
42034 GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/GIMT_Encode2(ARM::NEON_VMINNMNQf),
42035 GIR_RootConstrainSelectedInstOperands,
42036 // GIR_Coverage, 1253,
42037 GIR_Done,
42038 // Label 2302: @115830
42039 GIM_Try, /*On fail goto*//*Label 2303*/ GIMT_Encode4(115889), // Rule ID 3385 //
42040 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
42041 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
42042 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
42043 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
42044 // (fminnum:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qm, MQPR:{ *:[v4f32] }:$Qn) => (MVE_VMINNMf32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qm, MQPR:{ *:[v4f32] }:$Qn)
42045 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
42046 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
42047 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
42048 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMINNMf32),
42049 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
42050 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
42051 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
42052 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
42053 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
42054 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
42055 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
42056 GIR_RootConstrainSelectedInstOperands,
42057 // GIR_Coverage, 3385,
42058 GIR_EraseRootFromParent_Done,
42059 // Label 2303: @115889
42060 GIM_Reject,
42061 // Label 2300: @115890
42062 GIM_Reject,
42063 // Label 2293: @115891
42064 GIM_Try, /*On fail goto*//*Label 2304*/ GIMT_Encode4(116067),
42065 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
42066 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
42067 GIM_Try, /*On fail goto*//*Label 2305*/ GIMT_Encode4(115980), // Rule ID 4239 //
42068 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
42069 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
42070 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
42071 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FABS),
42072 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s16,
42073 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
42074 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
42075 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FABS),
42076 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v8s16,
42077 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
42078 GIM_CheckIsSafeToFold, /*NumInsns*/2,
42079 // (fminnum:{ *:[v8f16] } (fabs:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qd), (fabs:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qm)) => (MVE_VMINNMAf16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qd, MQPR:{ *:[v8f16] }:$Qm)
42080 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMINNMAf16),
42081 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
42082 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Qd
42083 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Qm
42084 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
42085 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
42086 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
42087 GIR_RootConstrainSelectedInstOperands,
42088 // GIR_Coverage, 4239,
42089 GIR_EraseRootFromParent_Done,
42090 // Label 2305: @115980
42091 GIM_Try, /*On fail goto*//*Label 2306*/ GIMT_Encode4(116007), // Rule ID 1255 //
42092 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFPARMv8_HasFullFP16_HasNEON),
42093 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
42094 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
42095 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
42096 // (fminnum:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) => (NEON_VMINNMNQh:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
42097 GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/GIMT_Encode2(ARM::NEON_VMINNMNQh),
42098 GIR_RootConstrainSelectedInstOperands,
42099 // GIR_Coverage, 1255,
42100 GIR_Done,
42101 // Label 2306: @116007
42102 GIM_Try, /*On fail goto*//*Label 2307*/ GIMT_Encode4(116066), // Rule ID 3388 //
42103 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
42104 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
42105 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
42106 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
42107 // (fminnum:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qm, MQPR:{ *:[v8f16] }:$Qn) => (MVE_VMINNMf16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qm, MQPR:{ *:[v8f16] }:$Qn)
42108 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
42109 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
42110 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
42111 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMINNMf16),
42112 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
42113 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
42114 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
42115 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
42116 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
42117 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
42118 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
42119 GIR_RootConstrainSelectedInstOperands,
42120 // GIR_Coverage, 3388,
42121 GIR_EraseRootFromParent_Done,
42122 // Label 2307: @116066
42123 GIM_Reject,
42124 // Label 2304: @116067
42125 GIM_Reject,
42126 // Label 2294: @116068
42127 GIM_Reject,
42128 // Label 45: @116069
42129 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(0), GIMT_Encode2(13), /*)*//*default:*//*Label 2315*/ GIMT_Encode4(116656),
42130 /*GILLT_s16*//*Label 2308*/ GIMT_Encode4(116132),
42131 /*GILLT_s32*//*Label 2309*/ GIMT_Encode4(116166),
42132 /*GILLT_s64*//*Label 2310*/ GIMT_Encode4(116200), GIMT_Encode4(0),
42133 /*GILLT_v2s32*//*Label 2311*/ GIMT_Encode4(116234), GIMT_Encode4(0), GIMT_Encode4(0),
42134 /*GILLT_v4s16*//*Label 2312*/ GIMT_Encode4(116268),
42135 /*GILLT_v4s32*//*Label 2313*/ GIMT_Encode4(116302), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
42136 /*GILLT_v8s16*//*Label 2314*/ GIMT_Encode4(116479),
42137 // Label 2308: @116132
42138 GIM_Try, /*On fail goto*//*Label 2316*/ GIMT_Encode4(116165), // Rule ID 656 //
42139 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16),
42140 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s16,
42141 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s16,
42142 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
42143 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
42144 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
42145 // (fmaxnum:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm) => (VFP_VMAXNMH:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
42146 GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/GIMT_Encode2(ARM::VFP_VMAXNMH),
42147 GIR_RootConstrainSelectedInstOperands,
42148 // GIR_Coverage, 656,
42149 GIR_Done,
42150 // Label 2316: @116165
42151 GIM_Reject,
42152 // Label 2309: @116166
42153 GIM_Try, /*On fail goto*//*Label 2317*/ GIMT_Encode4(116199), // Rule ID 657 //
42154 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFPARMv8),
42155 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
42156 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
42157 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
42158 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
42159 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
42160 // (fmaxnum:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm) => (VFP_VMAXNMS:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
42161 GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/GIMT_Encode2(ARM::VFP_VMAXNMS),
42162 GIR_RootConstrainSelectedInstOperands,
42163 // GIR_Coverage, 657,
42164 GIR_Done,
42165 // Label 2317: @116199
42166 GIM_Reject,
42167 // Label 2310: @116200
42168 GIM_Try, /*On fail goto*//*Label 2318*/ GIMT_Encode4(116233), // Rule ID 658 //
42169 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasFPARMv8),
42170 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
42171 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
42172 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
42173 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
42174 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
42175 // (fmaxnum:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm) => (VFP_VMAXNMD:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
42176 GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/GIMT_Encode2(ARM::VFP_VMAXNMD),
42177 GIR_RootConstrainSelectedInstOperands,
42178 // GIR_Coverage, 658,
42179 GIR_Done,
42180 // Label 2318: @116233
42181 GIM_Reject,
42182 // Label 2311: @116234
42183 GIM_Try, /*On fail goto*//*Label 2319*/ GIMT_Encode4(116267), // Rule ID 1232 //
42184 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFPARMv8_HasNEON),
42185 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
42186 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
42187 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
42188 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
42189 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
42190 // (fmaxnum:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) => (NEON_VMAXNMNDf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
42191 GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/GIMT_Encode2(ARM::NEON_VMAXNMNDf),
42192 GIR_RootConstrainSelectedInstOperands,
42193 // GIR_Coverage, 1232,
42194 GIR_Done,
42195 // Label 2319: @116267
42196 GIM_Reject,
42197 // Label 2312: @116268
42198 GIM_Try, /*On fail goto*//*Label 2320*/ GIMT_Encode4(116301), // Rule ID 1234 //
42199 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFPARMv8_HasFullFP16_HasNEON),
42200 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
42201 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
42202 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
42203 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
42204 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
42205 // (fmaxnum:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) => (NEON_VMAXNMNDh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
42206 GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/GIMT_Encode2(ARM::NEON_VMAXNMNDh),
42207 GIR_RootConstrainSelectedInstOperands,
42208 // GIR_Coverage, 1234,
42209 GIR_Done,
42210 // Label 2320: @116301
42211 GIM_Reject,
42212 // Label 2313: @116302
42213 GIM_Try, /*On fail goto*//*Label 2321*/ GIMT_Encode4(116478),
42214 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
42215 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
42216 GIM_Try, /*On fail goto*//*Label 2322*/ GIMT_Encode4(116391), // Rule ID 4233 //
42217 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
42218 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
42219 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
42220 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FABS),
42221 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s32,
42222 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
42223 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
42224 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FABS),
42225 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v4s32,
42226 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
42227 GIM_CheckIsSafeToFold, /*NumInsns*/2,
42228 // (fmaxnum:{ *:[v4f32] } (fabs:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qd), (fabs:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qm)) => (MVE_VMAXNMAf32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qd, MQPR:{ *:[v4f32] }:$Qm)
42229 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMAXNMAf32),
42230 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
42231 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Qd
42232 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Qm
42233 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
42234 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
42235 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
42236 GIR_RootConstrainSelectedInstOperands,
42237 // GIR_Coverage, 4233,
42238 GIR_EraseRootFromParent_Done,
42239 // Label 2322: @116391
42240 GIM_Try, /*On fail goto*//*Label 2323*/ GIMT_Encode4(116418), // Rule ID 1233 //
42241 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFPARMv8_HasNEON),
42242 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
42243 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
42244 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
42245 // (fmaxnum:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) => (NEON_VMAXNMNQf:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
42246 GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/GIMT_Encode2(ARM::NEON_VMAXNMNQf),
42247 GIR_RootConstrainSelectedInstOperands,
42248 // GIR_Coverage, 1233,
42249 GIR_Done,
42250 // Label 2323: @116418
42251 GIM_Try, /*On fail goto*//*Label 2324*/ GIMT_Encode4(116477), // Rule ID 3127 //
42252 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
42253 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
42254 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
42255 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
42256 // (fmaxnum:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qm, MQPR:{ *:[v4f32] }:$Qn) => (MVE_VMAXNMf32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qm, MQPR:{ *:[v4f32] }:$Qn)
42257 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
42258 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
42259 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
42260 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMAXNMf32),
42261 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
42262 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
42263 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
42264 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
42265 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
42266 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
42267 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
42268 GIR_RootConstrainSelectedInstOperands,
42269 // GIR_Coverage, 3127,
42270 GIR_EraseRootFromParent_Done,
42271 // Label 2324: @116477
42272 GIM_Reject,
42273 // Label 2321: @116478
42274 GIM_Reject,
42275 // Label 2314: @116479
42276 GIM_Try, /*On fail goto*//*Label 2325*/ GIMT_Encode4(116655),
42277 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
42278 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
42279 GIM_Try, /*On fail goto*//*Label 2326*/ GIMT_Encode4(116568), // Rule ID 4235 //
42280 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
42281 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
42282 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
42283 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FABS),
42284 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s16,
42285 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
42286 GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
42287 GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FABS),
42288 GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v8s16,
42289 GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
42290 GIM_CheckIsSafeToFold, /*NumInsns*/2,
42291 // (fmaxnum:{ *:[v8f16] } (fabs:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qd), (fabs:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qm)) => (MVE_VMAXNMAf16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qd, MQPR:{ *:[v8f16] }:$Qm)
42292 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMAXNMAf16),
42293 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
42294 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Qd
42295 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Qm
42296 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
42297 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
42298 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
42299 GIR_RootConstrainSelectedInstOperands,
42300 // GIR_Coverage, 4235,
42301 GIR_EraseRootFromParent_Done,
42302 // Label 2326: @116568
42303 GIM_Try, /*On fail goto*//*Label 2327*/ GIMT_Encode4(116595), // Rule ID 1235 //
42304 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFPARMv8_HasFullFP16_HasNEON),
42305 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
42306 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
42307 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
42308 // (fmaxnum:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) => (NEON_VMAXNMNQh:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
42309 GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/GIMT_Encode2(ARM::NEON_VMAXNMNQh),
42310 GIR_RootConstrainSelectedInstOperands,
42311 // GIR_Coverage, 1235,
42312 GIR_Done,
42313 // Label 2327: @116595
42314 GIM_Try, /*On fail goto*//*Label 2328*/ GIMT_Encode4(116654), // Rule ID 3382 //
42315 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
42316 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
42317 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
42318 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
42319 // (fmaxnum:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qm, MQPR:{ *:[v8f16] }:$Qn) => (MVE_VMAXNMf16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qm, MQPR:{ *:[v8f16] }:$Qn)
42320 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
42321 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
42322 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
42323 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMAXNMf16),
42324 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
42325 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
42326 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
42327 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
42328 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
42329 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
42330 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
42331 GIR_RootConstrainSelectedInstOperands,
42332 // GIR_Coverage, 3382,
42333 GIR_EraseRootFromParent_Done,
42334 // Label 2328: @116654
42335 GIM_Reject,
42336 // Label 2325: @116655
42337 GIM_Reject,
42338 // Label 2315: @116656
42339 GIM_Reject,
42340 // Label 46: @116657
42341 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(0), GIMT_Encode2(13), /*)*//*default:*//*Label 2335*/ GIMT_Encode4(117372),
42342 /*GILLT_s16*//*Label 2329*/ GIMT_Encode4(116720),
42343 /*GILLT_s32*//*Label 2330*/ GIMT_Encode4(116952), GIMT_Encode4(0), GIMT_Encode4(0),
42344 /*GILLT_v2s32*//*Label 2331*/ GIMT_Encode4(117184), GIMT_Encode4(0), GIMT_Encode4(0),
42345 /*GILLT_v4s16*//*Label 2332*/ GIMT_Encode4(117231),
42346 /*GILLT_v4s32*//*Label 2333*/ GIMT_Encode4(117278), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
42347 /*GILLT_v8s16*//*Label 2334*/ GIMT_Encode4(117325),
42348 // Label 2329: @116720
42349 GIM_Try, /*On fail goto*//*Label 2336*/ GIMT_Encode4(116951), // Rule ID 2725 //
42350 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16),
42351 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s16,
42352 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s16,
42353 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPR_VFP2RegClassID),
42354 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
42355 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
42356 // (fminimum:{ *:[f16] } HPR:{ *:[f16] }:$a, HPR:{ *:[f16] }:$b) => (EXTRACT_SUBREG:{ *:[f16] } (COPY_TO_REGCLASS:{ *:[v4f16] } (VMINhd:{ *:[f64] } (INSERT_SUBREG:{ *:[v4f16] } (COPY_TO_REGCLASS:{ *:[v4f16] } (IMPLICIT_DEF:{ *:[v4f16] }), DPR_VFP2:{ *:[i32] }), HPR:{ *:[f16] }:$a, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v4f16] } (COPY_TO_REGCLASS:{ *:[v4f16] } (IMPLICIT_DEF:{ *:[v4f16] }), DPR_VFP2:{ *:[i32] }), HPR:{ *:[f16] }:$b, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
42357 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s16,
42358 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s64,
42359 GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v4s16,
42360 GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_v4s16,
42361 GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_v4s16,
42362 GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_v4s16,
42363 GIR_MakeTempReg, /*TempRegID*/6, /*TypeID*/GILLT_v4s16,
42364 GIR_MakeTempReg, /*TempRegID*/7, /*TypeID*/GILLT_v4s16,
42365 GIR_BuildMI, /*InsnID*/8, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
42366 GIR_AddTempRegister, /*InsnID*/8, /*TempRegID*/7, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
42367 GIR_ConstrainSelectedInstOperands, /*InsnID*/8,
42368 GIR_BuildMI, /*InsnID*/7, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
42369 GIR_AddTempRegister, /*InsnID*/7, /*TempRegID*/6, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
42370 GIR_AddSimpleTempRegister, /*InsnID*/7, /*TempRegID*/7,
42371 GIR_ConstrainSelectedInstOperands, /*InsnID*/7,
42372 GIR_BuildMI, /*InsnID*/6, /*Opcode*/GIMT_Encode2(TargetOpcode::INSERT_SUBREG),
42373 GIR_AddTempRegister, /*InsnID*/6, /*TempRegID*/5, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
42374 GIR_AddSimpleTempRegister, /*InsnID*/6, /*TempRegID*/6,
42375 GIR_Copy, /*NewInsnID*/6, /*OldInsnID*/0, /*OpIdx*/2, // b
42376 GIR_AddImm8, /*InsnID*/6, /*Imm*/17,
42377 GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/0, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
42378 GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
42379 GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/2, GIMT_Encode2(ARM::HPRRegClassID),
42380 GIR_BuildMI, /*InsnID*/5, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
42381 GIR_AddTempRegister, /*InsnID*/5, /*TempRegID*/4, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
42382 GIR_ConstrainSelectedInstOperands, /*InsnID*/5,
42383 GIR_BuildMI, /*InsnID*/4, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
42384 GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/3, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
42385 GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/4,
42386 GIR_ConstrainSelectedInstOperands, /*InsnID*/4,
42387 GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::INSERT_SUBREG),
42388 GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
42389 GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/3,
42390 GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/1, // a
42391 GIR_AddImm8, /*InsnID*/3, /*Imm*/17,
42392 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/0, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
42393 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
42394 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/2, GIMT_Encode2(ARM::HPRRegClassID),
42395 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(ARM::VMINhd),
42396 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
42397 GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
42398 GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/5,
42399 GIR_AddImm8, /*InsnID*/2, /*Imm*/14,
42400 GIR_AddRegister, /*InsnID*/2, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
42401 GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
42402 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
42403 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
42404 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
42405 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
42406 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
42407 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
42408 GIR_AddTempSubRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(0), GIMT_Encode2(ARM::ssub_0),
42409 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::SPRRegClassID),
42410 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
42411 // GIR_Coverage, 2725,
42412 GIR_EraseRootFromParent_Done,
42413 // Label 2336: @116951
42414 GIM_Reject,
42415 // Label 2330: @116952
42416 GIM_Try, /*On fail goto*//*Label 2337*/ GIMT_Encode4(117183), // Rule ID 2727 //
42417 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
42418 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
42419 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
42420 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPR_VFP2RegClassID),
42421 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
42422 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
42423 // (fminimum:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b) => (EXTRACT_SUBREG:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (VMINfd:{ *:[f64] } (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$b, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
42424 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v2s32,
42425 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s64,
42426 GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v2s32,
42427 GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_v2s32,
42428 GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_v2s32,
42429 GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_v2s32,
42430 GIR_MakeTempReg, /*TempRegID*/6, /*TypeID*/GILLT_v2s32,
42431 GIR_MakeTempReg, /*TempRegID*/7, /*TypeID*/GILLT_v2s32,
42432 GIR_BuildMI, /*InsnID*/8, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
42433 GIR_AddTempRegister, /*InsnID*/8, /*TempRegID*/7, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
42434 GIR_ConstrainSelectedInstOperands, /*InsnID*/8,
42435 GIR_BuildMI, /*InsnID*/7, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
42436 GIR_AddTempRegister, /*InsnID*/7, /*TempRegID*/6, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
42437 GIR_AddSimpleTempRegister, /*InsnID*/7, /*TempRegID*/7,
42438 GIR_ConstrainSelectedInstOperands, /*InsnID*/7,
42439 GIR_BuildMI, /*InsnID*/6, /*Opcode*/GIMT_Encode2(TargetOpcode::INSERT_SUBREG),
42440 GIR_AddTempRegister, /*InsnID*/6, /*TempRegID*/5, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
42441 GIR_AddSimpleTempRegister, /*InsnID*/6, /*TempRegID*/6,
42442 GIR_Copy, /*NewInsnID*/6, /*OldInsnID*/0, /*OpIdx*/2, // b
42443 GIR_AddImm8, /*InsnID*/6, /*Imm*/17,
42444 GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/0, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
42445 GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
42446 GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/2, GIMT_Encode2(ARM::SPRRegClassID),
42447 GIR_BuildMI, /*InsnID*/5, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
42448 GIR_AddTempRegister, /*InsnID*/5, /*TempRegID*/4, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
42449 GIR_ConstrainSelectedInstOperands, /*InsnID*/5,
42450 GIR_BuildMI, /*InsnID*/4, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
42451 GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/3, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
42452 GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/4,
42453 GIR_ConstrainSelectedInstOperands, /*InsnID*/4,
42454 GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::INSERT_SUBREG),
42455 GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
42456 GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/3,
42457 GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/1, // a
42458 GIR_AddImm8, /*InsnID*/3, /*Imm*/17,
42459 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/0, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
42460 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
42461 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/2, GIMT_Encode2(ARM::SPRRegClassID),
42462 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(ARM::VMINfd),
42463 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
42464 GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
42465 GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/5,
42466 GIR_AddImm8, /*InsnID*/2, /*Imm*/14,
42467 GIR_AddRegister, /*InsnID*/2, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
42468 GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
42469 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
42470 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
42471 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
42472 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
42473 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
42474 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
42475 GIR_AddTempSubRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(0), GIMT_Encode2(ARM::ssub_0),
42476 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::SPRRegClassID),
42477 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
42478 // GIR_Coverage, 2727,
42479 GIR_EraseRootFromParent_Done,
42480 // Label 2337: @117183
42481 GIM_Reject,
42482 // Label 2331: @117184
42483 GIM_Try, /*On fail goto*//*Label 2338*/ GIMT_Encode4(117230), // Rule ID 1248 //
42484 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
42485 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
42486 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
42487 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
42488 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
42489 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
42490 // (fminimum:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) => (VMINfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
42491 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMINfd),
42492 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
42493 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
42494 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
42495 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
42496 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
42497 GIR_RootConstrainSelectedInstOperands,
42498 // GIR_Coverage, 1248,
42499 GIR_EraseRootFromParent_Done,
42500 // Label 2338: @117230
42501 GIM_Reject,
42502 // Label 2332: @117231
42503 GIM_Try, /*On fail goto*//*Label 2339*/ GIMT_Encode4(117277), // Rule ID 1250 //
42504 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
42505 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
42506 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
42507 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
42508 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
42509 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
42510 // (fminimum:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) => (VMINhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
42511 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMINhd),
42512 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
42513 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
42514 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
42515 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
42516 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
42517 GIR_RootConstrainSelectedInstOperands,
42518 // GIR_Coverage, 1250,
42519 GIR_EraseRootFromParent_Done,
42520 // Label 2339: @117277
42521 GIM_Reject,
42522 // Label 2333: @117278
42523 GIM_Try, /*On fail goto*//*Label 2340*/ GIMT_Encode4(117324), // Rule ID 1249 //
42524 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
42525 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
42526 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
42527 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
42528 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
42529 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
42530 // (fminimum:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) => (VMINfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
42531 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMINfq),
42532 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
42533 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
42534 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
42535 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
42536 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
42537 GIR_RootConstrainSelectedInstOperands,
42538 // GIR_Coverage, 1249,
42539 GIR_EraseRootFromParent_Done,
42540 // Label 2340: @117324
42541 GIM_Reject,
42542 // Label 2334: @117325
42543 GIM_Try, /*On fail goto*//*Label 2341*/ GIMT_Encode4(117371), // Rule ID 1251 //
42544 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
42545 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
42546 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
42547 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
42548 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
42549 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
42550 // (fminimum:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) => (VMINhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
42551 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMINhq),
42552 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
42553 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
42554 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
42555 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
42556 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
42557 GIR_RootConstrainSelectedInstOperands,
42558 // GIR_Coverage, 1251,
42559 GIR_EraseRootFromParent_Done,
42560 // Label 2341: @117371
42561 GIM_Reject,
42562 // Label 2335: @117372
42563 GIM_Reject,
42564 // Label 47: @117373
42565 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(0), GIMT_Encode2(13), /*)*//*default:*//*Label 2348*/ GIMT_Encode4(118088),
42566 /*GILLT_s16*//*Label 2342*/ GIMT_Encode4(117436),
42567 /*GILLT_s32*//*Label 2343*/ GIMT_Encode4(117668), GIMT_Encode4(0), GIMT_Encode4(0),
42568 /*GILLT_v2s32*//*Label 2344*/ GIMT_Encode4(117900), GIMT_Encode4(0), GIMT_Encode4(0),
42569 /*GILLT_v4s16*//*Label 2345*/ GIMT_Encode4(117947),
42570 /*GILLT_v4s32*//*Label 2346*/ GIMT_Encode4(117994), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
42571 /*GILLT_v8s16*//*Label 2347*/ GIMT_Encode4(118041),
42572 // Label 2342: @117436
42573 GIM_Try, /*On fail goto*//*Label 2349*/ GIMT_Encode4(117667), // Rule ID 2724 //
42574 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16),
42575 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s16,
42576 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s16,
42577 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPR_VFP2RegClassID),
42578 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
42579 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
42580 // (fmaximum:{ *:[f16] } HPR:{ *:[f16] }:$a, HPR:{ *:[f16] }:$b) => (EXTRACT_SUBREG:{ *:[f16] } (COPY_TO_REGCLASS:{ *:[v4f16] } (VMAXhd:{ *:[f64] } (INSERT_SUBREG:{ *:[v4f16] } (COPY_TO_REGCLASS:{ *:[v4f16] } (IMPLICIT_DEF:{ *:[v4f16] }), DPR_VFP2:{ *:[i32] }), HPR:{ *:[f16] }:$a, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v4f16] } (COPY_TO_REGCLASS:{ *:[v4f16] } (IMPLICIT_DEF:{ *:[v4f16] }), DPR_VFP2:{ *:[i32] }), HPR:{ *:[f16] }:$b, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
42581 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s16,
42582 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s64,
42583 GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v4s16,
42584 GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_v4s16,
42585 GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_v4s16,
42586 GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_v4s16,
42587 GIR_MakeTempReg, /*TempRegID*/6, /*TypeID*/GILLT_v4s16,
42588 GIR_MakeTempReg, /*TempRegID*/7, /*TypeID*/GILLT_v4s16,
42589 GIR_BuildMI, /*InsnID*/8, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
42590 GIR_AddTempRegister, /*InsnID*/8, /*TempRegID*/7, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
42591 GIR_ConstrainSelectedInstOperands, /*InsnID*/8,
42592 GIR_BuildMI, /*InsnID*/7, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
42593 GIR_AddTempRegister, /*InsnID*/7, /*TempRegID*/6, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
42594 GIR_AddSimpleTempRegister, /*InsnID*/7, /*TempRegID*/7,
42595 GIR_ConstrainSelectedInstOperands, /*InsnID*/7,
42596 GIR_BuildMI, /*InsnID*/6, /*Opcode*/GIMT_Encode2(TargetOpcode::INSERT_SUBREG),
42597 GIR_AddTempRegister, /*InsnID*/6, /*TempRegID*/5, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
42598 GIR_AddSimpleTempRegister, /*InsnID*/6, /*TempRegID*/6,
42599 GIR_Copy, /*NewInsnID*/6, /*OldInsnID*/0, /*OpIdx*/2, // b
42600 GIR_AddImm8, /*InsnID*/6, /*Imm*/17,
42601 GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/0, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
42602 GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
42603 GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/2, GIMT_Encode2(ARM::HPRRegClassID),
42604 GIR_BuildMI, /*InsnID*/5, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
42605 GIR_AddTempRegister, /*InsnID*/5, /*TempRegID*/4, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
42606 GIR_ConstrainSelectedInstOperands, /*InsnID*/5,
42607 GIR_BuildMI, /*InsnID*/4, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
42608 GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/3, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
42609 GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/4,
42610 GIR_ConstrainSelectedInstOperands, /*InsnID*/4,
42611 GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::INSERT_SUBREG),
42612 GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
42613 GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/3,
42614 GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/1, // a
42615 GIR_AddImm8, /*InsnID*/3, /*Imm*/17,
42616 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/0, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
42617 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
42618 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/2, GIMT_Encode2(ARM::HPRRegClassID),
42619 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(ARM::VMAXhd),
42620 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
42621 GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
42622 GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/5,
42623 GIR_AddImm8, /*InsnID*/2, /*Imm*/14,
42624 GIR_AddRegister, /*InsnID*/2, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
42625 GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
42626 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
42627 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
42628 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
42629 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
42630 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
42631 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
42632 GIR_AddTempSubRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(0), GIMT_Encode2(ARM::ssub_0),
42633 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::SPRRegClassID),
42634 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
42635 // GIR_Coverage, 2724,
42636 GIR_EraseRootFromParent_Done,
42637 // Label 2349: @117667
42638 GIM_Reject,
42639 // Label 2343: @117668
42640 GIM_Try, /*On fail goto*//*Label 2350*/ GIMT_Encode4(117899), // Rule ID 2726 //
42641 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
42642 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
42643 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
42644 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPR_VFP2RegClassID),
42645 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
42646 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
42647 // (fmaximum:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b) => (EXTRACT_SUBREG:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (VMAXfd:{ *:[f64] } (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$b, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
42648 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v2s32,
42649 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s64,
42650 GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v2s32,
42651 GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_v2s32,
42652 GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_v2s32,
42653 GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_v2s32,
42654 GIR_MakeTempReg, /*TempRegID*/6, /*TypeID*/GILLT_v2s32,
42655 GIR_MakeTempReg, /*TempRegID*/7, /*TypeID*/GILLT_v2s32,
42656 GIR_BuildMI, /*InsnID*/8, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
42657 GIR_AddTempRegister, /*InsnID*/8, /*TempRegID*/7, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
42658 GIR_ConstrainSelectedInstOperands, /*InsnID*/8,
42659 GIR_BuildMI, /*InsnID*/7, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
42660 GIR_AddTempRegister, /*InsnID*/7, /*TempRegID*/6, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
42661 GIR_AddSimpleTempRegister, /*InsnID*/7, /*TempRegID*/7,
42662 GIR_ConstrainSelectedInstOperands, /*InsnID*/7,
42663 GIR_BuildMI, /*InsnID*/6, /*Opcode*/GIMT_Encode2(TargetOpcode::INSERT_SUBREG),
42664 GIR_AddTempRegister, /*InsnID*/6, /*TempRegID*/5, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
42665 GIR_AddSimpleTempRegister, /*InsnID*/6, /*TempRegID*/6,
42666 GIR_Copy, /*NewInsnID*/6, /*OldInsnID*/0, /*OpIdx*/2, // b
42667 GIR_AddImm8, /*InsnID*/6, /*Imm*/17,
42668 GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/0, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
42669 GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
42670 GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/2, GIMT_Encode2(ARM::SPRRegClassID),
42671 GIR_BuildMI, /*InsnID*/5, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
42672 GIR_AddTempRegister, /*InsnID*/5, /*TempRegID*/4, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
42673 GIR_ConstrainSelectedInstOperands, /*InsnID*/5,
42674 GIR_BuildMI, /*InsnID*/4, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
42675 GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/3, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
42676 GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/4,
42677 GIR_ConstrainSelectedInstOperands, /*InsnID*/4,
42678 GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::INSERT_SUBREG),
42679 GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
42680 GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/3,
42681 GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/1, // a
42682 GIR_AddImm8, /*InsnID*/3, /*Imm*/17,
42683 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/0, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
42684 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
42685 GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/2, GIMT_Encode2(ARM::SPRRegClassID),
42686 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(ARM::VMAXfd),
42687 GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
42688 GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
42689 GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/5,
42690 GIR_AddImm8, /*InsnID*/2, /*Imm*/14,
42691 GIR_AddRegister, /*InsnID*/2, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
42692 GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
42693 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
42694 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
42695 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
42696 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
42697 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
42698 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
42699 GIR_AddTempSubRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(0), GIMT_Encode2(ARM::ssub_0),
42700 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::SPRRegClassID),
42701 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
42702 // GIR_Coverage, 2726,
42703 GIR_EraseRootFromParent_Done,
42704 // Label 2350: @117899
42705 GIM_Reject,
42706 // Label 2344: @117900
42707 GIM_Try, /*On fail goto*//*Label 2351*/ GIMT_Encode4(117946), // Rule ID 1228 //
42708 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
42709 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
42710 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
42711 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
42712 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
42713 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
42714 // (fmaximum:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) => (VMAXfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
42715 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMAXfd),
42716 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
42717 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
42718 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
42719 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
42720 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
42721 GIR_RootConstrainSelectedInstOperands,
42722 // GIR_Coverage, 1228,
42723 GIR_EraseRootFromParent_Done,
42724 // Label 2351: @117946
42725 GIM_Reject,
42726 // Label 2345: @117947
42727 GIM_Try, /*On fail goto*//*Label 2352*/ GIMT_Encode4(117993), // Rule ID 1230 //
42728 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
42729 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
42730 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
42731 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
42732 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
42733 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
42734 // (fmaximum:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) => (VMAXhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
42735 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMAXhd),
42736 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
42737 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
42738 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
42739 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
42740 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
42741 GIR_RootConstrainSelectedInstOperands,
42742 // GIR_Coverage, 1230,
42743 GIR_EraseRootFromParent_Done,
42744 // Label 2352: @117993
42745 GIM_Reject,
42746 // Label 2346: @117994
42747 GIM_Try, /*On fail goto*//*Label 2353*/ GIMT_Encode4(118040), // Rule ID 1229 //
42748 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
42749 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
42750 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
42751 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
42752 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
42753 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
42754 // (fmaximum:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) => (VMAXfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
42755 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMAXfq),
42756 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
42757 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
42758 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
42759 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
42760 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
42761 GIR_RootConstrainSelectedInstOperands,
42762 // GIR_Coverage, 1229,
42763 GIR_EraseRootFromParent_Done,
42764 // Label 2353: @118040
42765 GIM_Reject,
42766 // Label 2347: @118041
42767 GIM_Try, /*On fail goto*//*Label 2354*/ GIMT_Encode4(118087), // Rule ID 1231 //
42768 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
42769 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
42770 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
42771 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
42772 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
42773 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
42774 // (fmaximum:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) => (VMAXhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
42775 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMAXhq),
42776 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
42777 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
42778 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
42779 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
42780 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
42781 GIR_RootConstrainSelectedInstOperands,
42782 // GIR_Coverage, 1231,
42783 GIR_EraseRootFromParent_Done,
42784 // Label 2354: @118087
42785 GIM_Reject,
42786 // Label 2348: @118088
42787 GIM_Reject,
42788 // Label 48: @118089
42789 GIM_Try, /*On fail goto*//*Label 2355*/ GIMT_Encode4(118121), // Rule ID 2414 //
42790 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
42791 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
42792 // (get_fpenv:{ *:[i32] }) => (VMRS:{ *:[i32] })
42793 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMRS),
42794 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rt]
42795 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
42796 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
42797 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
42798 GIR_RootConstrainSelectedInstOperands,
42799 // GIR_Coverage, 2414,
42800 GIR_EraseRootFromParent_Done,
42801 // Label 2355: @118121
42802 GIM_Reject,
42803 // Label 49: @118122
42804 GIM_Try, /*On fail goto*//*Label 2356*/ GIMT_Encode4(118157), // Rule ID 2415 //
42805 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
42806 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
42807 // (set_fpenv GPRnopc:{ *:[i32] }:$Rt) => (VMSR GPRnopc:{ *:[i32] }:$Rt)
42808 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMSR),
42809 GIR_RootToRootCopy, /*OpIdx*/0, // Rt
42810 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
42811 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
42812 GIR_SetImplicitDefDead, /*InsnID*/0, /*OpIdx for ARM::FPSCR*/0,
42813 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
42814 GIR_RootConstrainSelectedInstOperands,
42815 // GIR_Coverage, 2415,
42816 GIR_EraseRootFromParent_Done,
42817 // Label 2356: @118157
42818 GIM_Reject,
42819 // Label 50: @118158
42820 GIM_Try, /*On fail goto*//*Label 2357*/ GIMT_Encode4(118222), // Rule ID 2416 //
42821 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
42822 // (reset_fpenv) => (VMSR (MOVi:{ *:[i32] } 0:{ *:[i32] }))
42823 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
42824 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::MOVi),
42825 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
42826 GIR_AddImm8, /*InsnID*/1, /*Imm*/0,
42827 GIR_AddImm8, /*InsnID*/1, /*Imm*/14,
42828 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
42829 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
42830 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
42831 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMSR),
42832 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
42833 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
42834 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
42835 GIR_SetImplicitDefDead, /*InsnID*/0, /*OpIdx for ARM::FPSCR*/0,
42836 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
42837 GIR_RootConstrainSelectedInstOperands,
42838 // GIR_Coverage, 2416,
42839 GIR_EraseRootFromParent_Done,
42840 // Label 2357: @118222
42841 GIM_Reject,
42842 // Label 51: @118223
42843 GIM_Try, /*On fail goto*//*Label 2358*/ GIMT_Encode4(118255), // Rule ID 2418 //
42844 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
42845 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRnopcRegClassID),
42846 // (get_fpmode:{ *:[i32] }) => (VMRS:{ *:[i32] })
42847 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMRS),
42848 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rt]
42849 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
42850 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
42851 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
42852 GIR_RootConstrainSelectedInstOperands,
42853 // GIR_Coverage, 2418,
42854 GIR_EraseRootFromParent_Done,
42855 // Label 2358: @118255
42856 GIM_Reject,
42857 // Label 52: @118256
42858 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(4), GIMT_Encode2(16), /*)*//*default:*//*Label 2365*/ GIMT_Encode4(118792),
42859 /*GILLT_v2s32*//*Label 2359*/ GIMT_Encode4(118315), GIMT_Encode4(0), GIMT_Encode4(0),
42860 /*GILLT_v4s16*//*Label 2360*/ GIMT_Encode4(118362),
42861 /*GILLT_v4s32*//*Label 2361*/ GIMT_Encode4(118409), GIMT_Encode4(0), GIMT_Encode4(0),
42862 /*GILLT_v8s8*//*Label 2362*/ GIMT_Encode4(118521),
42863 /*GILLT_v8s16*//*Label 2363*/ GIMT_Encode4(118568), GIMT_Encode4(0), GIMT_Encode4(0),
42864 /*GILLT_v16s8*//*Label 2364*/ GIMT_Encode4(118680),
42865 // Label 2359: @118315
42866 GIM_Try, /*On fail goto*//*Label 2366*/ GIMT_Encode4(118361), // Rule ID 1237 //
42867 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
42868 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
42869 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
42870 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
42871 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
42872 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
42873 // (smin:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VMINsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
42874 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMINsv2i32),
42875 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
42876 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
42877 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
42878 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
42879 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
42880 GIR_RootConstrainSelectedInstOperands,
42881 // GIR_Coverage, 1237,
42882 GIR_EraseRootFromParent_Done,
42883 // Label 2366: @118361
42884 GIM_Reject,
42885 // Label 2360: @118362
42886 GIM_Try, /*On fail goto*//*Label 2367*/ GIMT_Encode4(118408), // Rule ID 1236 //
42887 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
42888 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
42889 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
42890 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
42891 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
42892 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
42893 // (smin:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VMINsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
42894 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMINsv4i16),
42895 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
42896 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
42897 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
42898 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
42899 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
42900 GIR_RootConstrainSelectedInstOperands,
42901 // GIR_Coverage, 1236,
42902 GIR_EraseRootFromParent_Done,
42903 // Label 2367: @118408
42904 GIM_Reject,
42905 // Label 2361: @118409
42906 GIM_Try, /*On fail goto*//*Label 2368*/ GIMT_Encode4(118520),
42907 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
42908 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
42909 GIM_Try, /*On fail goto*//*Label 2369*/ GIMT_Encode4(118460), // Rule ID 1239 //
42910 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
42911 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
42912 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
42913 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
42914 // (smin:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VMINsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
42915 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMINsv4i32),
42916 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
42917 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
42918 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
42919 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
42920 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
42921 GIR_RootConstrainSelectedInstOperands,
42922 // GIR_Coverage, 1239,
42923 GIR_EraseRootFromParent_Done,
42924 // Label 2369: @118460
42925 GIM_Try, /*On fail goto*//*Label 2370*/ GIMT_Encode4(118519), // Rule ID 3397 //
42926 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
42927 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
42928 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
42929 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
42930 // (smin:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) => (MVE_VMINs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
42931 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
42932 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
42933 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
42934 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMINs32),
42935 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
42936 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
42937 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
42938 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
42939 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
42940 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
42941 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
42942 GIR_RootConstrainSelectedInstOperands,
42943 // GIR_Coverage, 3397,
42944 GIR_EraseRootFromParent_Done,
42945 // Label 2370: @118519
42946 GIM_Reject,
42947 // Label 2368: @118520
42948 GIM_Reject,
42949 // Label 2362: @118521
42950 GIM_Try, /*On fail goto*//*Label 2371*/ GIMT_Encode4(118567), // Rule ID 1240 //
42951 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
42952 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s8,
42953 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
42954 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
42955 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
42956 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
42957 // (smin:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VMINsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
42958 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMINsv8i8),
42959 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
42960 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
42961 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
42962 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
42963 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
42964 GIR_RootConstrainSelectedInstOperands,
42965 // GIR_Coverage, 1240,
42966 GIR_EraseRootFromParent_Done,
42967 // Label 2371: @118567
42968 GIM_Reject,
42969 // Label 2363: @118568
42970 GIM_Try, /*On fail goto*//*Label 2372*/ GIMT_Encode4(118679),
42971 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
42972 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
42973 GIM_Try, /*On fail goto*//*Label 2373*/ GIMT_Encode4(118619), // Rule ID 1238 //
42974 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
42975 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
42976 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
42977 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
42978 // (smin:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VMINsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
42979 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMINsv8i16),
42980 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
42981 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
42982 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
42983 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
42984 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
42985 GIR_RootConstrainSelectedInstOperands,
42986 // GIR_Coverage, 1238,
42987 GIR_EraseRootFromParent_Done,
42988 // Label 2373: @118619
42989 GIM_Try, /*On fail goto*//*Label 2374*/ GIMT_Encode4(118678), // Rule ID 3394 //
42990 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
42991 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
42992 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
42993 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
42994 // (smin:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) => (MVE_VMINs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
42995 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
42996 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
42997 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
42998 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMINs16),
42999 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
43000 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
43001 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
43002 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
43003 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43004 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43005 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
43006 GIR_RootConstrainSelectedInstOperands,
43007 // GIR_Coverage, 3394,
43008 GIR_EraseRootFromParent_Done,
43009 // Label 2374: @118678
43010 GIM_Reject,
43011 // Label 2372: @118679
43012 GIM_Reject,
43013 // Label 2364: @118680
43014 GIM_Try, /*On fail goto*//*Label 2375*/ GIMT_Encode4(118791),
43015 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
43016 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
43017 GIM_Try, /*On fail goto*//*Label 2376*/ GIMT_Encode4(118731), // Rule ID 1241 //
43018 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
43019 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
43020 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
43021 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
43022 // (smin:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VMINsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
43023 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMINsv16i8),
43024 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
43025 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
43026 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
43027 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
43028 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43029 GIR_RootConstrainSelectedInstOperands,
43030 // GIR_Coverage, 1241,
43031 GIR_EraseRootFromParent_Done,
43032 // Label 2376: @118731
43033 GIM_Try, /*On fail goto*//*Label 2377*/ GIMT_Encode4(118790), // Rule ID 3391 //
43034 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
43035 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43036 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43037 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43038 // (smin:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) => (MVE_VMINs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
43039 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
43040 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
43041 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
43042 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMINs8),
43043 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
43044 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
43045 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
43046 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
43047 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43048 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43049 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
43050 GIR_RootConstrainSelectedInstOperands,
43051 // GIR_Coverage, 3391,
43052 GIR_EraseRootFromParent_Done,
43053 // Label 2377: @118790
43054 GIM_Reject,
43055 // Label 2375: @118791
43056 GIM_Reject,
43057 // Label 2365: @118792
43058 GIM_Reject,
43059 // Label 53: @118793
43060 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(4), GIMT_Encode2(16), /*)*//*default:*//*Label 2384*/ GIMT_Encode4(119329),
43061 /*GILLT_v2s32*//*Label 2378*/ GIMT_Encode4(118852), GIMT_Encode4(0), GIMT_Encode4(0),
43062 /*GILLT_v4s16*//*Label 2379*/ GIMT_Encode4(118899),
43063 /*GILLT_v4s32*//*Label 2380*/ GIMT_Encode4(118946), GIMT_Encode4(0), GIMT_Encode4(0),
43064 /*GILLT_v8s8*//*Label 2381*/ GIMT_Encode4(119058),
43065 /*GILLT_v8s16*//*Label 2382*/ GIMT_Encode4(119105), GIMT_Encode4(0), GIMT_Encode4(0),
43066 /*GILLT_v16s8*//*Label 2383*/ GIMT_Encode4(119217),
43067 // Label 2378: @118852
43068 GIM_Try, /*On fail goto*//*Label 2385*/ GIMT_Encode4(118898), // Rule ID 1217 //
43069 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
43070 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
43071 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
43072 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
43073 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
43074 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
43075 // (smax:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VMAXsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
43076 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMAXsv2i32),
43077 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
43078 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
43079 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
43080 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
43081 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43082 GIR_RootConstrainSelectedInstOperands,
43083 // GIR_Coverage, 1217,
43084 GIR_EraseRootFromParent_Done,
43085 // Label 2385: @118898
43086 GIM_Reject,
43087 // Label 2379: @118899
43088 GIM_Try, /*On fail goto*//*Label 2386*/ GIMT_Encode4(118945), // Rule ID 1216 //
43089 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
43090 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
43091 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
43092 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
43093 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
43094 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
43095 // (smax:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VMAXsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
43096 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMAXsv4i16),
43097 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
43098 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
43099 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
43100 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
43101 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43102 GIR_RootConstrainSelectedInstOperands,
43103 // GIR_Coverage, 1216,
43104 GIR_EraseRootFromParent_Done,
43105 // Label 2386: @118945
43106 GIM_Reject,
43107 // Label 2380: @118946
43108 GIM_Try, /*On fail goto*//*Label 2387*/ GIMT_Encode4(119057),
43109 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
43110 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
43111 GIM_Try, /*On fail goto*//*Label 2388*/ GIMT_Encode4(118997), // Rule ID 1219 //
43112 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
43113 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
43114 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
43115 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
43116 // (smax:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VMAXsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
43117 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMAXsv4i32),
43118 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
43119 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
43120 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
43121 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
43122 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43123 GIR_RootConstrainSelectedInstOperands,
43124 // GIR_Coverage, 1219,
43125 GIR_EraseRootFromParent_Done,
43126 // Label 2388: @118997
43127 GIM_Try, /*On fail goto*//*Label 2389*/ GIMT_Encode4(119056), // Rule ID 3415 //
43128 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
43129 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43130 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43131 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43132 // (smax:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) => (MVE_VMAXs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
43133 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
43134 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
43135 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
43136 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMAXs32),
43137 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
43138 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
43139 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
43140 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
43141 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43142 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43143 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
43144 GIR_RootConstrainSelectedInstOperands,
43145 // GIR_Coverage, 3415,
43146 GIR_EraseRootFromParent_Done,
43147 // Label 2389: @119056
43148 GIM_Reject,
43149 // Label 2387: @119057
43150 GIM_Reject,
43151 // Label 2381: @119058
43152 GIM_Try, /*On fail goto*//*Label 2390*/ GIMT_Encode4(119104), // Rule ID 1220 //
43153 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
43154 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s8,
43155 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
43156 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
43157 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
43158 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
43159 // (smax:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VMAXsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
43160 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMAXsv8i8),
43161 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
43162 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
43163 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
43164 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
43165 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43166 GIR_RootConstrainSelectedInstOperands,
43167 // GIR_Coverage, 1220,
43168 GIR_EraseRootFromParent_Done,
43169 // Label 2390: @119104
43170 GIM_Reject,
43171 // Label 2382: @119105
43172 GIM_Try, /*On fail goto*//*Label 2391*/ GIMT_Encode4(119216),
43173 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
43174 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
43175 GIM_Try, /*On fail goto*//*Label 2392*/ GIMT_Encode4(119156), // Rule ID 1218 //
43176 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
43177 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
43178 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
43179 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
43180 // (smax:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VMAXsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
43181 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMAXsv8i16),
43182 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
43183 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
43184 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
43185 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
43186 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43187 GIR_RootConstrainSelectedInstOperands,
43188 // GIR_Coverage, 1218,
43189 GIR_EraseRootFromParent_Done,
43190 // Label 2392: @119156
43191 GIM_Try, /*On fail goto*//*Label 2393*/ GIMT_Encode4(119215), // Rule ID 3412 //
43192 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
43193 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43194 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43195 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43196 // (smax:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) => (MVE_VMAXs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
43197 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
43198 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
43199 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
43200 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMAXs16),
43201 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
43202 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
43203 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
43204 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
43205 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43206 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43207 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
43208 GIR_RootConstrainSelectedInstOperands,
43209 // GIR_Coverage, 3412,
43210 GIR_EraseRootFromParent_Done,
43211 // Label 2393: @119215
43212 GIM_Reject,
43213 // Label 2391: @119216
43214 GIM_Reject,
43215 // Label 2383: @119217
43216 GIM_Try, /*On fail goto*//*Label 2394*/ GIMT_Encode4(119328),
43217 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
43218 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
43219 GIM_Try, /*On fail goto*//*Label 2395*/ GIMT_Encode4(119268), // Rule ID 1221 //
43220 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
43221 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
43222 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
43223 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
43224 // (smax:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VMAXsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
43225 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMAXsv16i8),
43226 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
43227 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
43228 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
43229 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
43230 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43231 GIR_RootConstrainSelectedInstOperands,
43232 // GIR_Coverage, 1221,
43233 GIR_EraseRootFromParent_Done,
43234 // Label 2395: @119268
43235 GIM_Try, /*On fail goto*//*Label 2396*/ GIMT_Encode4(119327), // Rule ID 3409 //
43236 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
43237 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43238 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43239 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43240 // (smax:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) => (MVE_VMAXs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
43241 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
43242 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
43243 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
43244 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMAXs8),
43245 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
43246 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
43247 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
43248 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
43249 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43250 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43251 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
43252 GIR_RootConstrainSelectedInstOperands,
43253 // GIR_Coverage, 3409,
43254 GIR_EraseRootFromParent_Done,
43255 // Label 2396: @119327
43256 GIM_Reject,
43257 // Label 2394: @119328
43258 GIM_Reject,
43259 // Label 2384: @119329
43260 GIM_Reject,
43261 // Label 54: @119330
43262 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(4), GIMT_Encode2(16), /*)*//*default:*//*Label 2403*/ GIMT_Encode4(120244),
43263 /*GILLT_v2s32*//*Label 2397*/ GIMT_Encode4(119389), GIMT_Encode4(0), GIMT_Encode4(0),
43264 /*GILLT_v4s16*//*Label 2398*/ GIMT_Encode4(119436),
43265 /*GILLT_v4s32*//*Label 2399*/ GIMT_Encode4(119483), GIMT_Encode4(0), GIMT_Encode4(0),
43266 /*GILLT_v8s8*//*Label 2400*/ GIMT_Encode4(119721),
43267 /*GILLT_v8s16*//*Label 2401*/ GIMT_Encode4(119768), GIMT_Encode4(0), GIMT_Encode4(0),
43268 /*GILLT_v16s8*//*Label 2402*/ GIMT_Encode4(120006),
43269 // Label 2397: @119389
43270 GIM_Try, /*On fail goto*//*Label 2404*/ GIMT_Encode4(119435), // Rule ID 1243 //
43271 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
43272 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
43273 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
43274 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
43275 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
43276 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
43277 // (umin:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VMINuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
43278 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMINuv2i32),
43279 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
43280 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
43281 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
43282 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
43283 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43284 GIR_RootConstrainSelectedInstOperands,
43285 // GIR_Coverage, 1243,
43286 GIR_EraseRootFromParent_Done,
43287 // Label 2404: @119435
43288 GIM_Reject,
43289 // Label 2398: @119436
43290 GIM_Try, /*On fail goto*//*Label 2405*/ GIMT_Encode4(119482), // Rule ID 1242 //
43291 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
43292 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
43293 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
43294 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
43295 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
43296 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
43297 // (umin:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VMINuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
43298 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMINuv4i16),
43299 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
43300 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
43301 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
43302 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
43303 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43304 GIR_RootConstrainSelectedInstOperands,
43305 // GIR_Coverage, 1242,
43306 GIR_EraseRootFromParent_Done,
43307 // Label 2405: @119482
43308 GIM_Reject,
43309 // Label 2399: @119483
43310 GIM_Try, /*On fail goto*//*Label 2406*/ GIMT_Encode4(119720),
43311 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
43312 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
43313 GIM_Try, /*On fail goto*//*Label 2407*/ GIMT_Encode4(119557), // Rule ID 6156 //
43314 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
43315 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43316 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
43317 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ABS),
43318 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s32,
43319 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43320 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43321 GIM_CheckIsSafeToFold, /*NumInsns*/1,
43322 // (umin:{ *:[v4i32] } (abs:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm), MQPR:{ *:[v4i32] }:$Qd) => (MVE_VMINAs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qd, MQPR:{ *:[v4i32] }:$Qm)
43323 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMINAs32),
43324 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
43325 GIR_RootToRootCopy, /*OpIdx*/2, // Qd
43326 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Qm
43327 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
43328 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43329 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43330 GIR_RootConstrainSelectedInstOperands,
43331 // GIR_Coverage, 6156,
43332 GIR_EraseRootFromParent_Done,
43333 // Label 2407: @119557
43334 GIM_Try, /*On fail goto*//*Label 2408*/ GIMT_Encode4(119620), // Rule ID 3812 //
43335 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
43336 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43337 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43338 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
43339 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ABS),
43340 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s32,
43341 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43342 GIM_CheckIsSafeToFold, /*NumInsns*/1,
43343 // (umin:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qd, (abs:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm)) => (MVE_VMINAs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qd, MQPR:{ *:[v4i32] }:$Qm)
43344 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMINAs32),
43345 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
43346 GIR_RootToRootCopy, /*OpIdx*/1, // Qd
43347 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Qm
43348 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
43349 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43350 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43351 GIR_RootConstrainSelectedInstOperands,
43352 // GIR_Coverage, 3812,
43353 GIR_EraseRootFromParent_Done,
43354 // Label 2408: @119620
43355 GIM_Try, /*On fail goto*//*Label 2409*/ GIMT_Encode4(119660), // Rule ID 1245 //
43356 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
43357 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
43358 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
43359 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
43360 // (umin:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VMINuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
43361 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMINuv4i32),
43362 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
43363 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
43364 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
43365 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
43366 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43367 GIR_RootConstrainSelectedInstOperands,
43368 // GIR_Coverage, 1245,
43369 GIR_EraseRootFromParent_Done,
43370 // Label 2409: @119660
43371 GIM_Try, /*On fail goto*//*Label 2410*/ GIMT_Encode4(119719), // Rule ID 3406 //
43372 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
43373 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43374 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43375 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43376 // (umin:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) => (MVE_VMINu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
43377 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
43378 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
43379 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
43380 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMINu32),
43381 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
43382 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
43383 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
43384 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
43385 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43386 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43387 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
43388 GIR_RootConstrainSelectedInstOperands,
43389 // GIR_Coverage, 3406,
43390 GIR_EraseRootFromParent_Done,
43391 // Label 2410: @119719
43392 GIM_Reject,
43393 // Label 2406: @119720
43394 GIM_Reject,
43395 // Label 2400: @119721
43396 GIM_Try, /*On fail goto*//*Label 2411*/ GIMT_Encode4(119767), // Rule ID 1246 //
43397 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
43398 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s8,
43399 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
43400 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
43401 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
43402 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
43403 // (umin:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VMINuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
43404 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMINuv8i8),
43405 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
43406 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
43407 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
43408 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
43409 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43410 GIR_RootConstrainSelectedInstOperands,
43411 // GIR_Coverage, 1246,
43412 GIR_EraseRootFromParent_Done,
43413 // Label 2411: @119767
43414 GIM_Reject,
43415 // Label 2401: @119768
43416 GIM_Try, /*On fail goto*//*Label 2412*/ GIMT_Encode4(120005),
43417 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
43418 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
43419 GIM_Try, /*On fail goto*//*Label 2413*/ GIMT_Encode4(119842), // Rule ID 6155 //
43420 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
43421 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43422 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
43423 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ABS),
43424 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s16,
43425 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43426 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43427 GIM_CheckIsSafeToFold, /*NumInsns*/1,
43428 // (umin:{ *:[v8i16] } (abs:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm), MQPR:{ *:[v8i16] }:$Qd) => (MVE_VMINAs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qd, MQPR:{ *:[v8i16] }:$Qm)
43429 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMINAs16),
43430 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
43431 GIR_RootToRootCopy, /*OpIdx*/2, // Qd
43432 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Qm
43433 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
43434 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43435 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43436 GIR_RootConstrainSelectedInstOperands,
43437 // GIR_Coverage, 6155,
43438 GIR_EraseRootFromParent_Done,
43439 // Label 2413: @119842
43440 GIM_Try, /*On fail goto*//*Label 2414*/ GIMT_Encode4(119905), // Rule ID 3810 //
43441 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
43442 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43443 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43444 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
43445 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ABS),
43446 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s16,
43447 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43448 GIM_CheckIsSafeToFold, /*NumInsns*/1,
43449 // (umin:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qd, (abs:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm)) => (MVE_VMINAs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qd, MQPR:{ *:[v8i16] }:$Qm)
43450 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMINAs16),
43451 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
43452 GIR_RootToRootCopy, /*OpIdx*/1, // Qd
43453 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Qm
43454 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
43455 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43456 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43457 GIR_RootConstrainSelectedInstOperands,
43458 // GIR_Coverage, 3810,
43459 GIR_EraseRootFromParent_Done,
43460 // Label 2414: @119905
43461 GIM_Try, /*On fail goto*//*Label 2415*/ GIMT_Encode4(119945), // Rule ID 1244 //
43462 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
43463 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
43464 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
43465 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
43466 // (umin:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VMINuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
43467 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMINuv8i16),
43468 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
43469 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
43470 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
43471 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
43472 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43473 GIR_RootConstrainSelectedInstOperands,
43474 // GIR_Coverage, 1244,
43475 GIR_EraseRootFromParent_Done,
43476 // Label 2415: @119945
43477 GIM_Try, /*On fail goto*//*Label 2416*/ GIMT_Encode4(120004), // Rule ID 3403 //
43478 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
43479 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43480 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43481 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43482 // (umin:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) => (MVE_VMINu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
43483 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
43484 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
43485 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
43486 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMINu16),
43487 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
43488 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
43489 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
43490 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
43491 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43492 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43493 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
43494 GIR_RootConstrainSelectedInstOperands,
43495 // GIR_Coverage, 3403,
43496 GIR_EraseRootFromParent_Done,
43497 // Label 2416: @120004
43498 GIM_Reject,
43499 // Label 2412: @120005
43500 GIM_Reject,
43501 // Label 2402: @120006
43502 GIM_Try, /*On fail goto*//*Label 2417*/ GIMT_Encode4(120243),
43503 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
43504 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
43505 GIM_Try, /*On fail goto*//*Label 2418*/ GIMT_Encode4(120080), // Rule ID 6154 //
43506 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
43507 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43508 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
43509 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ABS),
43510 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v16s8,
43511 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43512 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43513 GIM_CheckIsSafeToFold, /*NumInsns*/1,
43514 // (umin:{ *:[v16i8] } (abs:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm), MQPR:{ *:[v16i8] }:$Qd) => (MVE_VMINAs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qd, MQPR:{ *:[v16i8] }:$Qm)
43515 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMINAs8),
43516 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
43517 GIR_RootToRootCopy, /*OpIdx*/2, // Qd
43518 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Qm
43519 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
43520 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43521 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43522 GIR_RootConstrainSelectedInstOperands,
43523 // GIR_Coverage, 6154,
43524 GIR_EraseRootFromParent_Done,
43525 // Label 2418: @120080
43526 GIM_Try, /*On fail goto*//*Label 2419*/ GIMT_Encode4(120143), // Rule ID 3808 //
43527 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
43528 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43529 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43530 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
43531 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ABS),
43532 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v16s8,
43533 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43534 GIM_CheckIsSafeToFold, /*NumInsns*/1,
43535 // (umin:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qd, (abs:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm)) => (MVE_VMINAs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qd, MQPR:{ *:[v16i8] }:$Qm)
43536 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMINAs8),
43537 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
43538 GIR_RootToRootCopy, /*OpIdx*/1, // Qd
43539 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Qm
43540 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
43541 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43542 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43543 GIR_RootConstrainSelectedInstOperands,
43544 // GIR_Coverage, 3808,
43545 GIR_EraseRootFromParent_Done,
43546 // Label 2419: @120143
43547 GIM_Try, /*On fail goto*//*Label 2420*/ GIMT_Encode4(120183), // Rule ID 1247 //
43548 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
43549 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
43550 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
43551 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
43552 // (umin:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VMINuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
43553 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMINuv16i8),
43554 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
43555 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
43556 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
43557 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
43558 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43559 GIR_RootConstrainSelectedInstOperands,
43560 // GIR_Coverage, 1247,
43561 GIR_EraseRootFromParent_Done,
43562 // Label 2420: @120183
43563 GIM_Try, /*On fail goto*//*Label 2421*/ GIMT_Encode4(120242), // Rule ID 3400 //
43564 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
43565 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43566 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43567 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43568 // (umin:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) => (MVE_VMINu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
43569 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
43570 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
43571 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
43572 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMINu8),
43573 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
43574 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
43575 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
43576 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
43577 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43578 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43579 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
43580 GIR_RootConstrainSelectedInstOperands,
43581 // GIR_Coverage, 3400,
43582 GIR_EraseRootFromParent_Done,
43583 // Label 2421: @120242
43584 GIM_Reject,
43585 // Label 2417: @120243
43586 GIM_Reject,
43587 // Label 2403: @120244
43588 GIM_Reject,
43589 // Label 55: @120245
43590 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(4), GIMT_Encode2(16), /*)*//*default:*//*Label 2428*/ GIMT_Encode4(121159),
43591 /*GILLT_v2s32*//*Label 2422*/ GIMT_Encode4(120304), GIMT_Encode4(0), GIMT_Encode4(0),
43592 /*GILLT_v4s16*//*Label 2423*/ GIMT_Encode4(120351),
43593 /*GILLT_v4s32*//*Label 2424*/ GIMT_Encode4(120398), GIMT_Encode4(0), GIMT_Encode4(0),
43594 /*GILLT_v8s8*//*Label 2425*/ GIMT_Encode4(120636),
43595 /*GILLT_v8s16*//*Label 2426*/ GIMT_Encode4(120683), GIMT_Encode4(0), GIMT_Encode4(0),
43596 /*GILLT_v16s8*//*Label 2427*/ GIMT_Encode4(120921),
43597 // Label 2422: @120304
43598 GIM_Try, /*On fail goto*//*Label 2429*/ GIMT_Encode4(120350), // Rule ID 1223 //
43599 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
43600 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
43601 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v2s32,
43602 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
43603 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
43604 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
43605 // (umax:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VMAXuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
43606 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMAXuv2i32),
43607 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
43608 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
43609 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
43610 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
43611 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43612 GIR_RootConstrainSelectedInstOperands,
43613 // GIR_Coverage, 1223,
43614 GIR_EraseRootFromParent_Done,
43615 // Label 2429: @120350
43616 GIM_Reject,
43617 // Label 2423: @120351
43618 GIM_Try, /*On fail goto*//*Label 2430*/ GIMT_Encode4(120397), // Rule ID 1222 //
43619 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
43620 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
43621 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s16,
43622 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
43623 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
43624 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
43625 // (umax:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VMAXuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
43626 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMAXuv4i16),
43627 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
43628 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
43629 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
43630 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
43631 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43632 GIR_RootConstrainSelectedInstOperands,
43633 // GIR_Coverage, 1222,
43634 GIR_EraseRootFromParent_Done,
43635 // Label 2430: @120397
43636 GIM_Reject,
43637 // Label 2424: @120398
43638 GIM_Try, /*On fail goto*//*Label 2431*/ GIMT_Encode4(120635),
43639 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
43640 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v4s32,
43641 GIM_Try, /*On fail goto*//*Label 2432*/ GIMT_Encode4(120472), // Rule ID 6159 //
43642 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
43643 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43644 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
43645 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ABS),
43646 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s32,
43647 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43648 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43649 GIM_CheckIsSafeToFold, /*NumInsns*/1,
43650 // (umax:{ *:[v4i32] } (abs:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm), MQPR:{ *:[v4i32] }:$Qd) => (MVE_VMAXAs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qd, MQPR:{ *:[v4i32] }:$Qm)
43651 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMAXAs32),
43652 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
43653 GIR_RootToRootCopy, /*OpIdx*/2, // Qd
43654 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Qm
43655 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
43656 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43657 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43658 GIR_RootConstrainSelectedInstOperands,
43659 // GIR_Coverage, 6159,
43660 GIR_EraseRootFromParent_Done,
43661 // Label 2432: @120472
43662 GIM_Try, /*On fail goto*//*Label 2433*/ GIMT_Encode4(120535), // Rule ID 3818 //
43663 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
43664 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43665 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43666 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
43667 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ABS),
43668 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s32,
43669 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43670 GIM_CheckIsSafeToFold, /*NumInsns*/1,
43671 // (umax:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qd, (abs:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm)) => (MVE_VMAXAs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qd, MQPR:{ *:[v4i32] }:$Qm)
43672 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMAXAs32),
43673 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
43674 GIR_RootToRootCopy, /*OpIdx*/1, // Qd
43675 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Qm
43676 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
43677 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43678 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43679 GIR_RootConstrainSelectedInstOperands,
43680 // GIR_Coverage, 3818,
43681 GIR_EraseRootFromParent_Done,
43682 // Label 2433: @120535
43683 GIM_Try, /*On fail goto*//*Label 2434*/ GIMT_Encode4(120575), // Rule ID 1225 //
43684 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
43685 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
43686 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
43687 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
43688 // (umax:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VMAXuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
43689 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMAXuv4i32),
43690 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
43691 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
43692 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
43693 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
43694 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43695 GIR_RootConstrainSelectedInstOperands,
43696 // GIR_Coverage, 1225,
43697 GIR_EraseRootFromParent_Done,
43698 // Label 2434: @120575
43699 GIM_Try, /*On fail goto*//*Label 2435*/ GIMT_Encode4(120634), // Rule ID 3424 //
43700 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
43701 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43702 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43703 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43704 // (umax:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) => (MVE_VMAXu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
43705 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
43706 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
43707 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
43708 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMAXu32),
43709 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
43710 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
43711 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
43712 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
43713 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43714 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43715 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
43716 GIR_RootConstrainSelectedInstOperands,
43717 // GIR_Coverage, 3424,
43718 GIR_EraseRootFromParent_Done,
43719 // Label 2435: @120634
43720 GIM_Reject,
43721 // Label 2431: @120635
43722 GIM_Reject,
43723 // Label 2425: @120636
43724 GIM_Try, /*On fail goto*//*Label 2436*/ GIMT_Encode4(120682), // Rule ID 1226 //
43725 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
43726 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s8,
43727 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s8,
43728 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
43729 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
43730 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
43731 // (umax:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VMAXuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
43732 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMAXuv8i8),
43733 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
43734 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
43735 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
43736 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
43737 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43738 GIR_RootConstrainSelectedInstOperands,
43739 // GIR_Coverage, 1226,
43740 GIR_EraseRootFromParent_Done,
43741 // Label 2436: @120682
43742 GIM_Reject,
43743 // Label 2426: @120683
43744 GIM_Try, /*On fail goto*//*Label 2437*/ GIMT_Encode4(120920),
43745 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
43746 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v8s16,
43747 GIM_Try, /*On fail goto*//*Label 2438*/ GIMT_Encode4(120757), // Rule ID 6158 //
43748 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
43749 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43750 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
43751 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ABS),
43752 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s16,
43753 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43754 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43755 GIM_CheckIsSafeToFold, /*NumInsns*/1,
43756 // (umax:{ *:[v8i16] } (abs:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm), MQPR:{ *:[v8i16] }:$Qd) => (MVE_VMAXAs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qd, MQPR:{ *:[v8i16] }:$Qm)
43757 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMAXAs16),
43758 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
43759 GIR_RootToRootCopy, /*OpIdx*/2, // Qd
43760 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Qm
43761 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
43762 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43763 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43764 GIR_RootConstrainSelectedInstOperands,
43765 // GIR_Coverage, 6158,
43766 GIR_EraseRootFromParent_Done,
43767 // Label 2438: @120757
43768 GIM_Try, /*On fail goto*//*Label 2439*/ GIMT_Encode4(120820), // Rule ID 3816 //
43769 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
43770 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43771 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43772 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
43773 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ABS),
43774 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s16,
43775 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43776 GIM_CheckIsSafeToFold, /*NumInsns*/1,
43777 // (umax:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qd, (abs:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm)) => (MVE_VMAXAs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qd, MQPR:{ *:[v8i16] }:$Qm)
43778 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMAXAs16),
43779 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
43780 GIR_RootToRootCopy, /*OpIdx*/1, // Qd
43781 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Qm
43782 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
43783 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43784 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43785 GIR_RootConstrainSelectedInstOperands,
43786 // GIR_Coverage, 3816,
43787 GIR_EraseRootFromParent_Done,
43788 // Label 2439: @120820
43789 GIM_Try, /*On fail goto*//*Label 2440*/ GIMT_Encode4(120860), // Rule ID 1224 //
43790 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
43791 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
43792 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
43793 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
43794 // (umax:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VMAXuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
43795 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMAXuv8i16),
43796 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
43797 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
43798 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
43799 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
43800 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43801 GIR_RootConstrainSelectedInstOperands,
43802 // GIR_Coverage, 1224,
43803 GIR_EraseRootFromParent_Done,
43804 // Label 2440: @120860
43805 GIM_Try, /*On fail goto*//*Label 2441*/ GIMT_Encode4(120919), // Rule ID 3421 //
43806 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
43807 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43808 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43809 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43810 // (umax:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) => (MVE_VMAXu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
43811 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
43812 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
43813 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
43814 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMAXu16),
43815 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
43816 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
43817 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
43818 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
43819 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43820 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43821 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
43822 GIR_RootConstrainSelectedInstOperands,
43823 // GIR_Coverage, 3421,
43824 GIR_EraseRootFromParent_Done,
43825 // Label 2441: @120919
43826 GIM_Reject,
43827 // Label 2437: @120920
43828 GIM_Reject,
43829 // Label 2427: @120921
43830 GIM_Try, /*On fail goto*//*Label 2442*/ GIMT_Encode4(121158),
43831 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
43832 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_v16s8,
43833 GIM_Try, /*On fail goto*//*Label 2443*/ GIMT_Encode4(120995), // Rule ID 6157 //
43834 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
43835 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43836 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
43837 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ABS),
43838 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v16s8,
43839 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43840 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43841 GIM_CheckIsSafeToFold, /*NumInsns*/1,
43842 // (umax:{ *:[v16i8] } (abs:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm), MQPR:{ *:[v16i8] }:$Qd) => (MVE_VMAXAs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qd, MQPR:{ *:[v16i8] }:$Qm)
43843 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMAXAs8),
43844 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
43845 GIR_RootToRootCopy, /*OpIdx*/2, // Qd
43846 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Qm
43847 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
43848 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43849 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43850 GIR_RootConstrainSelectedInstOperands,
43851 // GIR_Coverage, 6157,
43852 GIR_EraseRootFromParent_Done,
43853 // Label 2443: @120995
43854 GIM_Try, /*On fail goto*//*Label 2444*/ GIMT_Encode4(121058), // Rule ID 3814 //
43855 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
43856 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43857 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43858 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
43859 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ABS),
43860 GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v16s8,
43861 GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43862 GIM_CheckIsSafeToFold, /*NumInsns*/1,
43863 // (umax:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qd, (abs:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm)) => (MVE_VMAXAs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qd, MQPR:{ *:[v16i8] }:$Qm)
43864 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMAXAs8),
43865 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
43866 GIR_RootToRootCopy, /*OpIdx*/1, // Qd
43867 GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Qm
43868 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
43869 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43870 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43871 GIR_RootConstrainSelectedInstOperands,
43872 // GIR_Coverage, 3814,
43873 GIR_EraseRootFromParent_Done,
43874 // Label 2444: @121058
43875 GIM_Try, /*On fail goto*//*Label 2445*/ GIMT_Encode4(121098), // Rule ID 1227 //
43876 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
43877 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
43878 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
43879 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
43880 // (umax:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VMAXuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
43881 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VMAXuv16i8),
43882 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
43883 GIR_RootToRootCopy, /*OpIdx*/1, // Vn
43884 GIR_RootToRootCopy, /*OpIdx*/2, // Vm
43885 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
43886 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43887 GIR_RootConstrainSelectedInstOperands,
43888 // GIR_Coverage, 1227,
43889 GIR_EraseRootFromParent_Done,
43890 // Label 2445: @121098
43891 GIM_Try, /*On fail goto*//*Label 2446*/ GIMT_Encode4(121157), // Rule ID 3418 //
43892 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
43893 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43894 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43895 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43896 // (umax:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) => (MVE_VMAXu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
43897 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
43898 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
43899 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
43900 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMAXu8),
43901 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
43902 GIR_RootToRootCopy, /*OpIdx*/1, // Qm
43903 GIR_RootToRootCopy, /*OpIdx*/2, // Qn
43904 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
43905 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43906 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43907 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
43908 GIR_RootConstrainSelectedInstOperands,
43909 // GIR_Coverage, 3418,
43910 GIR_EraseRootFromParent_Done,
43911 // Label 2446: @121157
43912 GIM_Reject,
43913 // Label 2442: @121158
43914 GIM_Reject,
43915 // Label 2428: @121159
43916 GIM_Reject,
43917 // Label 56: @121160
43918 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(4), GIMT_Encode2(16), /*)*//*default:*//*Label 2453*/ GIMT_Encode4(121624),
43919 /*GILLT_v2s32*//*Label 2447*/ GIMT_Encode4(121219), GIMT_Encode4(0), GIMT_Encode4(0),
43920 /*GILLT_v4s16*//*Label 2448*/ GIMT_Encode4(121257),
43921 /*GILLT_v4s32*//*Label 2449*/ GIMT_Encode4(121295), GIMT_Encode4(0), GIMT_Encode4(0),
43922 /*GILLT_v8s8*//*Label 2450*/ GIMT_Encode4(121392),
43923 /*GILLT_v8s16*//*Label 2451*/ GIMT_Encode4(121430), GIMT_Encode4(0), GIMT_Encode4(0),
43924 /*GILLT_v16s8*//*Label 2452*/ GIMT_Encode4(121527),
43925 // Label 2447: @121219
43926 GIM_Try, /*On fail goto*//*Label 2454*/ GIMT_Encode4(121256), // Rule ID 1529 //
43927 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
43928 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
43929 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
43930 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
43931 // (abs:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm) => (VABSv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
43932 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VABSv2i32),
43933 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
43934 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
43935 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
43936 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43937 GIR_RootConstrainSelectedInstOperands,
43938 // GIR_Coverage, 1529,
43939 GIR_EraseRootFromParent_Done,
43940 // Label 2454: @121256
43941 GIM_Reject,
43942 // Label 2448: @121257
43943 GIM_Try, /*On fail goto*//*Label 2455*/ GIMT_Encode4(121294), // Rule ID 1528 //
43944 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
43945 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
43946 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
43947 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
43948 // (abs:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm) => (VABSv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm)
43949 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VABSv4i16),
43950 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
43951 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
43952 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
43953 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43954 GIR_RootConstrainSelectedInstOperands,
43955 // GIR_Coverage, 1528,
43956 GIR_EraseRootFromParent_Done,
43957 // Label 2455: @121294
43958 GIM_Reject,
43959 // Label 2449: @121295
43960 GIM_Try, /*On fail goto*//*Label 2456*/ GIMT_Encode4(121391),
43961 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
43962 GIM_Try, /*On fail goto*//*Label 2457*/ GIMT_Encode4(121337), // Rule ID 1532 //
43963 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
43964 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
43965 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
43966 // (abs:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm) => (VABSv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
43967 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VABSv4i32),
43968 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
43969 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
43970 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
43971 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43972 GIR_RootConstrainSelectedInstOperands,
43973 // GIR_Coverage, 1532,
43974 GIR_EraseRootFromParent_Done,
43975 // Label 2457: @121337
43976 GIM_Try, /*On fail goto*//*Label 2458*/ GIMT_Encode4(121390), // Rule ID 3787 //
43977 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
43978 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43979 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
43980 // (abs:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$v) => (MVE_VABSs32:{ *:[v4i32] } ?:{ *:[v4i32] }:$v)
43981 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
43982 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
43983 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
43984 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VABSs32),
43985 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
43986 GIR_RootToRootCopy, /*OpIdx*/1, // v
43987 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
43988 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43989 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
43990 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
43991 GIR_RootConstrainSelectedInstOperands,
43992 // GIR_Coverage, 3787,
43993 GIR_EraseRootFromParent_Done,
43994 // Label 2458: @121390
43995 GIM_Reject,
43996 // Label 2456: @121391
43997 GIM_Reject,
43998 // Label 2450: @121392
43999 GIM_Try, /*On fail goto*//*Label 2459*/ GIMT_Encode4(121429), // Rule ID 1527 //
44000 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
44001 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s8,
44002 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
44003 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
44004 // (abs:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm) => (VABSv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm)
44005 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VABSv8i8),
44006 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
44007 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
44008 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
44009 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44010 GIR_RootConstrainSelectedInstOperands,
44011 // GIR_Coverage, 1527,
44012 GIR_EraseRootFromParent_Done,
44013 // Label 2459: @121429
44014 GIM_Reject,
44015 // Label 2451: @121430
44016 GIM_Try, /*On fail goto*//*Label 2460*/ GIMT_Encode4(121526),
44017 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
44018 GIM_Try, /*On fail goto*//*Label 2461*/ GIMT_Encode4(121472), // Rule ID 1531 //
44019 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
44020 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
44021 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
44022 // (abs:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm) => (VABSv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm)
44023 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VABSv8i16),
44024 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
44025 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
44026 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
44027 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44028 GIR_RootConstrainSelectedInstOperands,
44029 // GIR_Coverage, 1531,
44030 GIR_EraseRootFromParent_Done,
44031 // Label 2461: @121472
44032 GIM_Try, /*On fail goto*//*Label 2462*/ GIMT_Encode4(121525), // Rule ID 3781 //
44033 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
44034 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
44035 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
44036 // (abs:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$v) => (MVE_VABSs16:{ *:[v8i16] } ?:{ *:[v8i16] }:$v)
44037 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
44038 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
44039 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
44040 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VABSs16),
44041 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
44042 GIR_RootToRootCopy, /*OpIdx*/1, // v
44043 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
44044 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44045 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44046 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
44047 GIR_RootConstrainSelectedInstOperands,
44048 // GIR_Coverage, 3781,
44049 GIR_EraseRootFromParent_Done,
44050 // Label 2462: @121525
44051 GIM_Reject,
44052 // Label 2460: @121526
44053 GIM_Reject,
44054 // Label 2452: @121527
44055 GIM_Try, /*On fail goto*//*Label 2463*/ GIMT_Encode4(121623),
44056 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
44057 GIM_Try, /*On fail goto*//*Label 2464*/ GIMT_Encode4(121569), // Rule ID 1530 //
44058 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
44059 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
44060 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
44061 // (abs:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm) => (VABSv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
44062 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VABSv16i8),
44063 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
44064 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
44065 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
44066 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44067 GIR_RootConstrainSelectedInstOperands,
44068 // GIR_Coverage, 1530,
44069 GIR_EraseRootFromParent_Done,
44070 // Label 2464: @121569
44071 GIM_Try, /*On fail goto*//*Label 2465*/ GIMT_Encode4(121622), // Rule ID 3775 //
44072 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
44073 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
44074 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
44075 // (abs:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$v) => (MVE_VABSs8:{ *:[v16i8] } ?:{ *:[v16i8] }:$v)
44076 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
44077 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
44078 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
44079 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VABSs8),
44080 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
44081 GIR_RootToRootCopy, /*OpIdx*/1, // v
44082 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
44083 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44084 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44085 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
44086 GIR_RootConstrainSelectedInstOperands,
44087 // GIR_Coverage, 3775,
44088 GIR_EraseRootFromParent_Done,
44089 // Label 2465: @121622
44090 GIM_Reject,
44091 // Label 2463: @121623
44092 GIM_Reject,
44093 // Label 2453: @121624
44094 GIM_Reject,
44095 // Label 57: @121625
44096 GIM_Try, /*On fail goto*//*Label 2466*/ GIMT_Encode4(121697),
44097 GIM_CheckIsMBB, /*MI*/0, /*Op*/0,
44098 GIM_Try, /*On fail goto*//*Label 2467*/ GIMT_Encode4(121648), // Rule ID 32 //
44099 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
44100 // (br (bb:{ *:[Other] }):$target) => (B (bb:{ *:[Other] }):$target)
44101 GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/GIMT_Encode2(ARM::B),
44102 GIR_RootConstrainSelectedInstOperands,
44103 // GIR_Coverage, 32,
44104 GIR_Done,
44105 // Label 2467: @121648
44106 GIM_Try, /*On fail goto*//*Label 2468*/ GIMT_Encode4(121672), // Rule ID 290 //
44107 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb_IsThumb1Only),
44108 // (br (bb:{ *:[Other] }):$target) => (tB (bb:{ *:[Other] }):$target)
44109 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::tB),
44110 GIR_RootToRootCopy, /*OpIdx*/0, // target
44111 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
44112 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44113 GIR_RootConstrainSelectedInstOperands,
44114 // GIR_Coverage, 290,
44115 GIR_EraseRootFromParent_Done,
44116 // Label 2468: @121672
44117 GIM_Try, /*On fail goto*//*Label 2469*/ GIMT_Encode4(121696), // Rule ID 594 //
44118 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV8MBaseline_IsThumb),
44119 // (br (bb:{ *:[Other] }):$target) => (t2B (bb:{ *:[Other] }):$target)
44120 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2B),
44121 GIR_RootToRootCopy, /*OpIdx*/0, // target
44122 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
44123 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44124 GIR_RootConstrainSelectedInstOperands,
44125 // GIR_Coverage, 594,
44126 GIR_EraseRootFromParent_Done,
44127 // Label 2469: @121696
44128 GIM_Reject,
44129 // Label 2466: @121697
44130 GIM_Reject,
44131 // Label 58: @121698
44132 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(7), GIMT_Encode2(16), /*)*//*default:*//*Label 2474*/ GIMT_Encode4(121997),
44133 /*GILLT_v4s16*//*Label 2470*/ GIMT_Encode4(121745), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
44134 /*GILLT_v8s8*//*Label 2471*/ GIMT_Encode4(121808),
44135 /*GILLT_v8s16*//*Label 2472*/ GIMT_Encode4(121871), GIMT_Encode4(0), GIMT_Encode4(0),
44136 /*GILLT_v16s8*//*Label 2473*/ GIMT_Encode4(121934),
44137 // Label 2470: @121745
44138 GIM_Try, /*On fail goto*//*Label 2475*/ GIMT_Encode4(121807), // Rule ID 1591 //
44139 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
44140 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
44141 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
44142 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
44143 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
44144 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
44145 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
44146 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
44147 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
44148 // MIs[1] Operand 1
44149 // No operand predicates
44150 GIM_CheckIsSafeToFold, /*NumInsns*/1,
44151 // (vector_insert:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, GPR:{ *:[i32] }:$R, (imm:{ *:[i32] }):$lane) => (VSETLNi16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, GPR:{ *:[i32] }:$R, (imm:{ *:[i32] }):$lane)
44152 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSETLNi16),
44153 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[V]
44154 GIR_RootToRootCopy, /*OpIdx*/1, // src1
44155 GIR_RootToRootCopy, /*OpIdx*/2, // R
44156 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // lane
44157 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
44158 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44159 GIR_RootConstrainSelectedInstOperands,
44160 // GIR_Coverage, 1591,
44161 GIR_EraseRootFromParent_Done,
44162 // Label 2475: @121807
44163 GIM_Reject,
44164 // Label 2471: @121808
44165 GIM_Try, /*On fail goto*//*Label 2476*/ GIMT_Encode4(121870), // Rule ID 1590 //
44166 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
44167 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s8,
44168 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
44169 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
44170 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
44171 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
44172 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
44173 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
44174 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
44175 // MIs[1] Operand 1
44176 // No operand predicates
44177 GIM_CheckIsSafeToFold, /*NumInsns*/1,
44178 // (vector_insert:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, GPR:{ *:[i32] }:$R, (imm:{ *:[i32] }):$lane) => (VSETLNi8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, GPR:{ *:[i32] }:$R, (imm:{ *:[i32] }):$lane)
44179 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSETLNi8),
44180 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[V]
44181 GIR_RootToRootCopy, /*OpIdx*/1, // src1
44182 GIR_RootToRootCopy, /*OpIdx*/2, // R
44183 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // lane
44184 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
44185 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44186 GIR_RootConstrainSelectedInstOperands,
44187 // GIR_Coverage, 1590,
44188 GIR_EraseRootFromParent_Done,
44189 // Label 2476: @121870
44190 GIM_Reject,
44191 // Label 2472: @121871
44192 GIM_Try, /*On fail goto*//*Label 2477*/ GIMT_Encode4(121933), // Rule ID 3533 //
44193 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
44194 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
44195 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
44196 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
44197 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
44198 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
44199 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
44200 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
44201 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
44202 // MIs[1] Operand 1
44203 // No operand predicates
44204 GIM_CheckIsSafeToFold, /*NumInsns*/1,
44205 // (vector_insert:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src1, rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] }):$lane) => (MVE_VMOV_to_lane_16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src1, rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] }):$lane)
44206 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMOV_to_lane_16),
44207 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
44208 GIR_RootToRootCopy, /*OpIdx*/1, // src1
44209 GIR_RootToRootCopy, /*OpIdx*/2, // src2
44210 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // lane
44211 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
44212 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44213 GIR_RootConstrainSelectedInstOperands,
44214 // GIR_Coverage, 3533,
44215 GIR_EraseRootFromParent_Done,
44216 // Label 2477: @121933
44217 GIM_Reject,
44218 // Label 2473: @121934
44219 GIM_Try, /*On fail goto*//*Label 2478*/ GIMT_Encode4(121996), // Rule ID 3532 //
44220 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
44221 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
44222 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
44223 GIM_RootCheckType, /*Op*/3, /*Type*/GILLT_s32,
44224 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
44225 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
44226 GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
44227 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
44228 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
44229 // MIs[1] Operand 1
44230 // No operand predicates
44231 GIM_CheckIsSafeToFold, /*NumInsns*/1,
44232 // (vector_insert:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$src1, rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] }):$lane) => (MVE_VMOV_to_lane_8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$src1, rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] }):$lane)
44233 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMOV_to_lane_8),
44234 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
44235 GIR_RootToRootCopy, /*OpIdx*/1, // src1
44236 GIR_RootToRootCopy, /*OpIdx*/2, // src2
44237 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // lane
44238 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
44239 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44240 GIR_RootConstrainSelectedInstOperands,
44241 // GIR_Coverage, 3532,
44242 GIR_EraseRootFromParent_Done,
44243 // Label 2478: @121996
44244 GIM_Reject,
44245 // Label 2474: @121997
44246 GIM_Reject,
44247 // Label 59: @121998
44248 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(0), GIMT_Encode2(2), /*)*//*default:*//*Label 2481*/ GIMT_Encode4(122152),
44249 /*GILLT_s16*//*Label 2479*/ GIMT_Encode4(122017),
44250 /*GILLT_s32*//*Label 2480*/ GIMT_Encode4(122098),
44251 // Label 2479: @122017
44252 GIM_Try, /*On fail goto*//*Label 2482*/ GIMT_Encode4(122097), // Rule ID 2634 //
44253 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasBF16_HasNEON),
44254 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
44255 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
44256 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
44257 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
44258 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
44259 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
44260 GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIMT_Encode2(GICXXPred_I64_Predicate_imm_odd),
44261 // MIs[1] Operand 1
44262 // No operand predicates
44263 GIM_CheckIsSafeToFold, /*NumInsns*/1,
44264 // (extractelt:{ *:[bf16] } DPR:{ *:[v4bf16] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm_odd>>:$lane) => (COPY_TO_REGCLASS:{ *:[bf16] } (VGETLNu16:{ *:[i32] } DPR:{ *:[v4bf16] }:$src, (imm:{ *:[i32] }):$lane), HPR:{ *:[i32] })
44265 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
44266 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::VGETLNu16),
44267 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
44268 GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // src
44269 GIR_CopyConstantAsSImm, /*NewInsnID*/1, /*OldInsnID*/1, // lane
44270 GIR_AddImm8, /*InsnID*/1, /*Imm*/14,
44271 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44272 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
44273 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
44274 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[dst]
44275 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
44276 GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(ARM::HPRRegClassID),
44277 // GIR_Coverage, 2634,
44278 GIR_EraseRootFromParent_Done,
44279 // Label 2482: @122097
44280 GIM_Reject,
44281 // Label 2480: @122098
44282 GIM_Try, /*On fail goto*//*Label 2483*/ GIMT_Encode4(122151), // Rule ID 1589 //
44283 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFPRegs_HasFastVGETLNi32),
44284 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
44285 GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
44286 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
44287 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
44288 GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
44289 GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
44290 // MIs[1] Operand 1
44291 // No operand predicates
44292 GIM_CheckIsSafeToFold, /*NumInsns*/1,
44293 // (extractelt:{ *:[i32] } DPR:{ *:[v2i32] }:$V, (imm:{ *:[i32] }):$lane) => (VGETLNi32:{ *:[i32] } DPR:{ *:[v2i32] }:$V, (imm:{ *:[i32] }):$lane)
44294 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VGETLNi32),
44295 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[R]
44296 GIR_RootToRootCopy, /*OpIdx*/1, // V
44297 GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // lane
44298 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
44299 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44300 GIR_RootConstrainSelectedInstOperands,
44301 // GIR_Coverage, 1589,
44302 GIR_EraseRootFromParent_Done,
44303 // Label 2483: @122151
44304 GIM_Reject,
44305 // Label 2481: @122152
44306 GIM_Reject,
44307 // Label 60: @122153
44308 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(1), GIMT_Encode2(16), /*)*//*default:*//*Label 2491*/ GIMT_Encode4(122707),
44309 /*GILLT_s32*//*Label 2484*/ GIMT_Encode4(122224), GIMT_Encode4(0), GIMT_Encode4(0),
44310 /*GILLT_v2s32*//*Label 2485*/ GIMT_Encode4(122302), GIMT_Encode4(0), GIMT_Encode4(0),
44311 /*GILLT_v4s16*//*Label 2486*/ GIMT_Encode4(122340),
44312 /*GILLT_v4s32*//*Label 2487*/ GIMT_Encode4(122378), GIMT_Encode4(0), GIMT_Encode4(0),
44313 /*GILLT_v8s8*//*Label 2488*/ GIMT_Encode4(122475),
44314 /*GILLT_v8s16*//*Label 2489*/ GIMT_Encode4(122513), GIMT_Encode4(0), GIMT_Encode4(0),
44315 /*GILLT_v16s8*//*Label 2490*/ GIMT_Encode4(122610),
44316 // Label 2484: @122224
44317 GIM_Try, /*On fail goto*//*Label 2492*/ GIMT_Encode4(122301),
44318 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
44319 GIM_Try, /*On fail goto*//*Label 2493*/ GIMT_Encode4(122266), // Rule ID 197 //
44320 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV5T_IsARM),
44321 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
44322 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
44323 // (ctlz:{ *:[i32] } GPR:{ *:[i32] }:$Rm) => (CLZ:{ *:[i32] } GPR:{ *:[i32] }:$Rm)
44324 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::CLZ),
44325 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
44326 GIR_RootToRootCopy, /*OpIdx*/1, // Rm
44327 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
44328 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44329 GIR_RootConstrainSelectedInstOperands,
44330 // GIR_Coverage, 197,
44331 GIR_EraseRootFromParent_Done,
44332 // Label 2493: @122266
44333 GIM_Try, /*On fail goto*//*Label 2494*/ GIMT_Encode4(122300), // Rule ID 542 //
44334 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
44335 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
44336 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
44337 // (ctlz:{ *:[i32] } rGPR:{ *:[i32] }:$Rm) => (t2CLZ:{ *:[i32] } rGPR:{ *:[i32] }:$Rm)
44338 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2CLZ),
44339 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
44340 GIR_RootToRootCopy, /*OpIdx*/1, // Rm
44341 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
44342 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44343 GIR_RootConstrainSelectedInstOperands,
44344 // GIR_Coverage, 542,
44345 GIR_EraseRootFromParent_Done,
44346 // Label 2494: @122300
44347 GIM_Reject,
44348 // Label 2492: @122301
44349 GIM_Reject,
44350 // Label 2485: @122302
44351 GIM_Try, /*On fail goto*//*Label 2495*/ GIMT_Encode4(122339), // Rule ID 1567 //
44352 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
44353 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v2s32,
44354 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
44355 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
44356 // (ctlz:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm) => (VCLZv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
44357 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCLZv2i32),
44358 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
44359 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
44360 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
44361 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44362 GIR_RootConstrainSelectedInstOperands,
44363 // GIR_Coverage, 1567,
44364 GIR_EraseRootFromParent_Done,
44365 // Label 2495: @122339
44366 GIM_Reject,
44367 // Label 2486: @122340
44368 GIM_Try, /*On fail goto*//*Label 2496*/ GIMT_Encode4(122377), // Rule ID 1566 //
44369 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
44370 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s16,
44371 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
44372 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
44373 // (ctlz:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm) => (VCLZv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm)
44374 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCLZv4i16),
44375 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
44376 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
44377 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
44378 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44379 GIR_RootConstrainSelectedInstOperands,
44380 // GIR_Coverage, 1566,
44381 GIR_EraseRootFromParent_Done,
44382 // Label 2496: @122377
44383 GIM_Reject,
44384 // Label 2487: @122378
44385 GIM_Try, /*On fail goto*//*Label 2497*/ GIMT_Encode4(122474),
44386 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
44387 GIM_Try, /*On fail goto*//*Label 2498*/ GIMT_Encode4(122420), // Rule ID 1570 //
44388 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
44389 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
44390 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
44391 // (ctlz:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm) => (VCLZv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
44392 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCLZv4i32),
44393 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
44394 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
44395 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
44396 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44397 GIR_RootConstrainSelectedInstOperands,
44398 // GIR_Coverage, 1570,
44399 GIR_EraseRootFromParent_Done,
44400 // Label 2498: @122420
44401 GIM_Try, /*On fail goto*//*Label 2499*/ GIMT_Encode4(122473), // Rule ID 3773 //
44402 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
44403 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
44404 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
44405 // (ctlz:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$val) => (MVE_VCLZs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$val)
44406 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
44407 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
44408 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
44409 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCLZs32),
44410 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
44411 GIR_RootToRootCopy, /*OpIdx*/1, // val
44412 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
44413 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44414 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44415 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
44416 GIR_RootConstrainSelectedInstOperands,
44417 // GIR_Coverage, 3773,
44418 GIR_EraseRootFromParent_Done,
44419 // Label 2499: @122473
44420 GIM_Reject,
44421 // Label 2497: @122474
44422 GIM_Reject,
44423 // Label 2488: @122475
44424 GIM_Try, /*On fail goto*//*Label 2500*/ GIMT_Encode4(122512), // Rule ID 1565 //
44425 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
44426 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s8,
44427 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
44428 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
44429 // (ctlz:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm) => (VCLZv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm)
44430 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCLZv8i8),
44431 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
44432 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
44433 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
44434 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44435 GIR_RootConstrainSelectedInstOperands,
44436 // GIR_Coverage, 1565,
44437 GIR_EraseRootFromParent_Done,
44438 // Label 2500: @122512
44439 GIM_Reject,
44440 // Label 2489: @122513
44441 GIM_Try, /*On fail goto*//*Label 2501*/ GIMT_Encode4(122609),
44442 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
44443 GIM_Try, /*On fail goto*//*Label 2502*/ GIMT_Encode4(122555), // Rule ID 1569 //
44444 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
44445 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
44446 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
44447 // (ctlz:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm) => (VCLZv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm)
44448 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCLZv8i16),
44449 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
44450 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
44451 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
44452 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44453 GIR_RootConstrainSelectedInstOperands,
44454 // GIR_Coverage, 1569,
44455 GIR_EraseRootFromParent_Done,
44456 // Label 2502: @122555
44457 GIM_Try, /*On fail goto*//*Label 2503*/ GIMT_Encode4(122608), // Rule ID 3771 //
44458 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
44459 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
44460 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
44461 // (ctlz:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$val) => (MVE_VCLZs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$val)
44462 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
44463 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
44464 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
44465 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCLZs16),
44466 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
44467 GIR_RootToRootCopy, /*OpIdx*/1, // val
44468 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
44469 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44470 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44471 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
44472 GIR_RootConstrainSelectedInstOperands,
44473 // GIR_Coverage, 3771,
44474 GIR_EraseRootFromParent_Done,
44475 // Label 2503: @122608
44476 GIM_Reject,
44477 // Label 2501: @122609
44478 GIM_Reject,
44479 // Label 2490: @122610
44480 GIM_Try, /*On fail goto*//*Label 2504*/ GIMT_Encode4(122706),
44481 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
44482 GIM_Try, /*On fail goto*//*Label 2505*/ GIMT_Encode4(122652), // Rule ID 1568 //
44483 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
44484 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
44485 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
44486 // (ctlz:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm) => (VCLZv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
44487 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCLZv16i8),
44488 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
44489 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
44490 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
44491 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44492 GIR_RootConstrainSelectedInstOperands,
44493 // GIR_Coverage, 1568,
44494 GIR_EraseRootFromParent_Done,
44495 // Label 2505: @122652
44496 GIM_Try, /*On fail goto*//*Label 2506*/ GIMT_Encode4(122705), // Rule ID 3769 //
44497 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
44498 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
44499 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
44500 // (ctlz:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$val) => (MVE_VCLZs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$val)
44501 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
44502 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
44503 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
44504 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VCLZs8),
44505 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
44506 GIR_RootToRootCopy, /*OpIdx*/1, // val
44507 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
44508 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44509 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44510 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
44511 GIR_RootConstrainSelectedInstOperands,
44512 // GIR_Coverage, 3769,
44513 GIR_EraseRootFromParent_Done,
44514 // Label 2506: @122705
44515 GIM_Reject,
44516 // Label 2504: @122706
44517 GIM_Reject,
44518 // Label 2491: @122707
44519 GIM_Reject,
44520 // Label 61: @122708
44521 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(11), GIMT_Encode2(16), /*)*//*default:*//*Label 2509*/ GIMT_Encode4(122815),
44522 /*GILLT_v8s8*//*Label 2507*/ GIMT_Encode4(122739), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
44523 /*GILLT_v16s8*//*Label 2508*/ GIMT_Encode4(122777),
44524 // Label 2507: @122739
44525 GIM_Try, /*On fail goto*//*Label 2510*/ GIMT_Encode4(122776), // Rule ID 1571 //
44526 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
44527 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s8,
44528 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
44529 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
44530 // (ctpop:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm) => (VCNTd:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm)
44531 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCNTd),
44532 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
44533 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
44534 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
44535 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44536 GIR_RootConstrainSelectedInstOperands,
44537 // GIR_Coverage, 1571,
44538 GIR_EraseRootFromParent_Done,
44539 // Label 2510: @122776
44540 GIM_Reject,
44541 // Label 2508: @122777
44542 GIM_Try, /*On fail goto*//*Label 2511*/ GIMT_Encode4(122814), // Rule ID 1572 //
44543 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
44544 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
44545 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
44546 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::QPRRegClassID),
44547 // (ctpop:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm) => (VCNTq:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
44548 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VCNTq),
44549 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Vd]
44550 GIR_RootToRootCopy, /*OpIdx*/1, // Vm
44551 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
44552 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44553 GIR_RootConstrainSelectedInstOperands,
44554 // GIR_Coverage, 1572,
44555 GIR_EraseRootFromParent_Done,
44556 // Label 2511: @122814
44557 GIM_Reject,
44558 // Label 2509: @122815
44559 GIM_Reject,
44560 // Label 62: @122816
44561 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(1), GIMT_Encode2(13), /*)*//*default:*//*Label 2515*/ GIMT_Encode4(123101),
44562 /*GILLT_s32*//*Label 2512*/ GIMT_Encode4(122875), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
44563 /*GILLT_v4s32*//*Label 2513*/ GIMT_Encode4(122987), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
44564 /*GILLT_v8s16*//*Label 2514*/ GIMT_Encode4(123044),
44565 // Label 2512: @122875
44566 GIM_Try, /*On fail goto*//*Label 2516*/ GIMT_Encode4(122986),
44567 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
44568 GIM_Try, /*On fail goto*//*Label 2517*/ GIMT_Encode4(122917), // Rule ID 199 //
44569 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
44570 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
44571 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
44572 // (bswap:{ *:[i32] } GPR:{ *:[i32] }:$Rm) => (REV:{ *:[i32] } GPR:{ *:[i32] }:$Rm)
44573 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::REV),
44574 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
44575 GIR_RootToRootCopy, /*OpIdx*/1, // Rm
44576 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
44577 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44578 GIR_RootConstrainSelectedInstOperands,
44579 // GIR_Coverage, 199,
44580 GIR_EraseRootFromParent_Done,
44581 // Label 2517: @122917
44582 GIM_Try, /*On fail goto*//*Label 2518*/ GIMT_Encode4(122951), // Rule ID 333 //
44583 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsThumb_IsThumb1Only),
44584 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::tGPRRegClassID),
44585 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::tGPRRegClassID),
44586 // (bswap:{ *:[i32] } tGPR:{ *:[i32] }:$Rm) => (tREV:{ *:[i32] } tGPR:{ *:[i32] }:$Rm)
44587 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::tREV),
44588 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
44589 GIR_RootToRootCopy, /*OpIdx*/1, // Rm
44590 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
44591 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44592 GIR_RootConstrainSelectedInstOperands,
44593 // GIR_Coverage, 333,
44594 GIR_EraseRootFromParent_Done,
44595 // Label 2518: @122951
44596 GIM_Try, /*On fail goto*//*Label 2519*/ GIMT_Encode4(122985), // Rule ID 544 //
44597 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
44598 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
44599 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
44600 // (bswap:{ *:[i32] } rGPR:{ *:[i32] }:$Rm) => (t2REV:{ *:[i32] } rGPR:{ *:[i32] }:$Rm)
44601 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2REV),
44602 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
44603 GIR_RootToRootCopy, /*OpIdx*/1, // Rm
44604 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
44605 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44606 GIR_RootConstrainSelectedInstOperands,
44607 // GIR_Coverage, 544,
44608 GIR_EraseRootFromParent_Done,
44609 // Label 2519: @122985
44610 GIM_Reject,
44611 // Label 2516: @122986
44612 GIM_Reject,
44613 // Label 2513: @122987
44614 GIM_Try, /*On fail goto*//*Label 2520*/ GIMT_Encode4(123043), // Rule ID 3428 //
44615 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
44616 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
44617 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
44618 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
44619 // (bswap:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src) => (MVE_VREV32_8:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src)
44620 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
44621 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
44622 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
44623 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VREV32_8),
44624 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
44625 GIR_RootToRootCopy, /*OpIdx*/1, // src
44626 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
44627 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44628 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44629 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
44630 GIR_RootConstrainSelectedInstOperands,
44631 // GIR_Coverage, 3428,
44632 GIR_EraseRootFromParent_Done,
44633 // Label 2520: @123043
44634 GIM_Reject,
44635 // Label 2514: @123044
44636 GIM_Try, /*On fail goto*//*Label 2521*/ GIMT_Encode4(123100), // Rule ID 3427 //
44637 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
44638 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
44639 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
44640 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
44641 // (bswap:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src) => (MVE_VREV16_8:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src)
44642 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
44643 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
44644 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
44645 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VREV16_8),
44646 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
44647 GIR_RootToRootCopy, /*OpIdx*/1, // src
44648 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
44649 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44650 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44651 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
44652 GIR_RootConstrainSelectedInstOperands,
44653 // GIR_Coverage, 3427,
44654 GIR_EraseRootFromParent_Done,
44655 // Label 2521: @123100
44656 GIM_Reject,
44657 // Label 2515: @123101
44658 GIM_Reject,
44659 // Label 63: @123102
44660 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(1), GIMT_Encode2(16), /*)*//*default:*//*Label 2526*/ GIMT_Encode4(123527),
44661 /*GILLT_s32*//*Label 2522*/ GIMT_Encode4(123173), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
44662 /*GILLT_v4s32*//*Label 2523*/ GIMT_Encode4(123251), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
44663 /*GILLT_v8s16*//*Label 2524*/ GIMT_Encode4(123343), GIMT_Encode4(0), GIMT_Encode4(0),
44664 /*GILLT_v16s8*//*Label 2525*/ GIMT_Encode4(123435),
44665 // Label 2522: @123173
44666 GIM_Try, /*On fail goto*//*Label 2527*/ GIMT_Encode4(123250),
44667 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
44668 GIM_Try, /*On fail goto*//*Label 2528*/ GIMT_Encode4(123215), // Rule ID 198 //
44669 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6T2_IsARM),
44670 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
44671 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::GPRRegClassID),
44672 // (bitreverse:{ *:[i32] } GPR:{ *:[i32] }:$Rm) => (RBIT:{ *:[i32] } GPR:{ *:[i32] }:$Rm)
44673 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::RBIT),
44674 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
44675 GIR_RootToRootCopy, /*OpIdx*/1, // Rm
44676 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
44677 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44678 GIR_RootConstrainSelectedInstOperands,
44679 // GIR_Coverage, 198,
44680 GIR_EraseRootFromParent_Done,
44681 // Label 2528: @123215
44682 GIM_Try, /*On fail goto*//*Label 2529*/ GIMT_Encode4(123249), // Rule ID 543 //
44683 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
44684 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
44685 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
44686 // (bitreverse:{ *:[i32] } rGPR:{ *:[i32] }:$Rm) => (t2RBIT:{ *:[i32] } rGPR:{ *:[i32] }:$Rm)
44687 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::t2RBIT),
44688 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rd]
44689 GIR_RootToRootCopy, /*OpIdx*/1, // Rm
44690 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
44691 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44692 GIR_RootConstrainSelectedInstOperands,
44693 // GIR_Coverage, 543,
44694 GIR_EraseRootFromParent_Done,
44695 // Label 2529: @123249
44696 GIM_Reject,
44697 // Label 2527: @123250
44698 GIM_Reject,
44699 // Label 2523: @123251
44700 GIM_Try, /*On fail goto*//*Label 2530*/ GIMT_Encode4(123342), // Rule ID 4873 //
44701 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
44702 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
44703 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
44704 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
44705 // (bitreverse:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$val1) => (MVE_VBRSR32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$val1, (t2MOVi:{ *:[i32] } 32:{ *:[i32] }))
44706 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
44707 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v4s32,
44708 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
44709 GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/1,
44710 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::t2MOVi),
44711 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
44712 GIR_AddImm8, /*InsnID*/1, /*Imm*/32,
44713 GIR_AddImm8, /*InsnID*/1, /*Imm*/14,
44714 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44715 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44716 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
44717 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VBRSR32),
44718 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
44719 GIR_RootToRootCopy, /*OpIdx*/1, // val1
44720 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
44721 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
44722 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44723 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44724 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
44725 GIR_RootConstrainSelectedInstOperands,
44726 // GIR_Coverage, 4873,
44727 GIR_EraseRootFromParent_Done,
44728 // Label 2530: @123342
44729 GIM_Reject,
44730 // Label 2524: @123343
44731 GIM_Try, /*On fail goto*//*Label 2531*/ GIMT_Encode4(123434), // Rule ID 4874 //
44732 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
44733 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
44734 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
44735 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
44736 // (bitreverse:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$val1) => (MVE_VBRSR16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$val1, (t2MOVi:{ *:[i32] } 16:{ *:[i32] }))
44737 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
44738 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v4s32,
44739 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
44740 GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/1,
44741 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::t2MOVi),
44742 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
44743 GIR_AddImm8, /*InsnID*/1, /*Imm*/16,
44744 GIR_AddImm8, /*InsnID*/1, /*Imm*/14,
44745 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44746 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44747 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
44748 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VBRSR16),
44749 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
44750 GIR_RootToRootCopy, /*OpIdx*/1, // val1
44751 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
44752 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
44753 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44754 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44755 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
44756 GIR_RootConstrainSelectedInstOperands,
44757 // GIR_Coverage, 4874,
44758 GIR_EraseRootFromParent_Done,
44759 // Label 2531: @123434
44760 GIM_Reject,
44761 // Label 2525: @123435
44762 GIM_Try, /*On fail goto*//*Label 2532*/ GIMT_Encode4(123526), // Rule ID 4872 //
44763 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
44764 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v16s8,
44765 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
44766 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
44767 // (bitreverse:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$val1) => (MVE_VBRSR8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$val1, (t2MOVi:{ *:[i32] } 8:{ *:[i32] }))
44768 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
44769 GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v4s32,
44770 GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
44771 GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/1,
44772 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::t2MOVi),
44773 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
44774 GIR_AddImm8, /*InsnID*/1, /*Imm*/8,
44775 GIR_AddImm8, /*InsnID*/1, /*Imm*/14,
44776 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44777 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44778 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
44779 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VBRSR8),
44780 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
44781 GIR_RootToRootCopy, /*OpIdx*/1, // val1
44782 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
44783 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
44784 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44785 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44786 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
44787 GIR_RootConstrainSelectedInstOperands,
44788 // GIR_Coverage, 4872,
44789 GIR_EraseRootFromParent_Done,
44790 // Label 2532: @123526
44791 GIM_Reject,
44792 // Label 2526: @123527
44793 GIM_Reject,
44794 // Label 64: @123528
44795 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(0), GIMT_Encode2(13), /*)*//*default:*//*Label 2538*/ GIMT_Encode4(123786),
44796 /*GILLT_s16*//*Label 2533*/ GIMT_Encode4(123591),
44797 /*GILLT_s32*//*Label 2534*/ GIMT_Encode4(123618),
44798 /*GILLT_s64*//*Label 2535*/ GIMT_Encode4(123645), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
44799 /*GILLT_v4s32*//*Label 2536*/ GIMT_Encode4(123672), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
44800 /*GILLT_v8s16*//*Label 2537*/ GIMT_Encode4(123729),
44801 // Label 2533: @123591
44802 GIM_Try, /*On fail goto*//*Label 2539*/ GIMT_Encode4(123617), // Rule ID 697 //
44803 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16),
44804 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s16,
44805 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
44806 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
44807 // (fceil:{ *:[f16] } HPR:{ *:[f16] }:$Sm) => (VRINTPH:{ *:[f16] } HPR:{ *:[f16] }:$Sm)
44808 GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/GIMT_Encode2(ARM::VRINTPH),
44809 GIR_RootConstrainSelectedInstOperands,
44810 // GIR_Coverage, 697,
44811 GIR_Done,
44812 // Label 2539: @123617
44813 GIM_Reject,
44814 // Label 2534: @123618
44815 GIM_Try, /*On fail goto*//*Label 2540*/ GIMT_Encode4(123644), // Rule ID 698 //
44816 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFPARMv8),
44817 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
44818 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
44819 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
44820 // (fceil:{ *:[f32] } SPR:{ *:[f32] }:$Sm) => (VRINTPS:{ *:[f32] } SPR:{ *:[f32] }:$Sm)
44821 GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/GIMT_Encode2(ARM::VRINTPS),
44822 GIR_RootConstrainSelectedInstOperands,
44823 // GIR_Coverage, 698,
44824 GIR_Done,
44825 // Label 2540: @123644
44826 GIM_Reject,
44827 // Label 2535: @123645
44828 GIM_Try, /*On fail goto*//*Label 2541*/ GIMT_Encode4(123671), // Rule ID 699 //
44829 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasFPARMv8),
44830 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
44831 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
44832 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
44833 // (fceil:{ *:[f64] } DPR:{ *:[f64] }:$Dm) => (VRINTPD:{ *:[f64] } DPR:{ *:[f64] }:$Dm)
44834 GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/GIMT_Encode2(ARM::VRINTPD),
44835 GIR_RootConstrainSelectedInstOperands,
44836 // GIR_Coverage, 699,
44837 GIR_Done,
44838 // Label 2541: @123671
44839 GIM_Reject,
44840 // Label 2536: @123672
44841 GIM_Try, /*On fail goto*//*Label 2542*/ GIMT_Encode4(123728), // Rule ID 4101 //
44842 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
44843 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
44844 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
44845 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
44846 // (fceil:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$val) => (MVE_VRINTf32P:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$val)
44847 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
44848 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
44849 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
44850 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRINTf32P),
44851 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
44852 GIR_RootToRootCopy, /*OpIdx*/1, // val
44853 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
44854 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44855 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44856 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
44857 GIR_RootConstrainSelectedInstOperands,
44858 // GIR_Coverage, 4101,
44859 GIR_EraseRootFromParent_Done,
44860 // Label 2542: @123728
44861 GIM_Reject,
44862 // Label 2537: @123729
44863 GIM_Try, /*On fail goto*//*Label 2543*/ GIMT_Encode4(123785), // Rule ID 4089 //
44864 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
44865 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
44866 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
44867 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
44868 // (fceil:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$val) => (MVE_VRINTf16P:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$val)
44869 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
44870 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
44871 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
44872 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRINTf16P),
44873 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
44874 GIR_RootToRootCopy, /*OpIdx*/1, // val
44875 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
44876 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44877 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44878 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
44879 GIR_RootConstrainSelectedInstOperands,
44880 // GIR_Coverage, 4089,
44881 GIR_EraseRootFromParent_Done,
44882 // Label 2543: @123785
44883 GIM_Reject,
44884 // Label 2538: @123786
44885 GIM_Reject,
44886 // Label 65: @123787
44887 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(0), GIMT_Encode2(3), /*)*//*default:*//*Label 2547*/ GIMT_Encode4(123924),
44888 /*GILLT_s16*//*Label 2544*/ GIMT_Encode4(123810),
44889 /*GILLT_s32*//*Label 2545*/ GIMT_Encode4(123848),
44890 /*GILLT_s64*//*Label 2546*/ GIMT_Encode4(123886),
44891 // Label 2544: @123810
44892 GIM_Try, /*On fail goto*//*Label 2548*/ GIMT_Encode4(123847), // Rule ID 705 //
44893 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16),
44894 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s16,
44895 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
44896 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
44897 // (fsqrt:{ *:[f16] } HPR:{ *:[f16] }:$Sm) => (VSQRTH:{ *:[f16] } HPR:{ *:[f16] }:$Sm)
44898 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSQRTH),
44899 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
44900 GIR_RootToRootCopy, /*OpIdx*/1, // Sm
44901 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
44902 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44903 GIR_RootConstrainSelectedInstOperands,
44904 // GIR_Coverage, 705,
44905 GIR_EraseRootFromParent_Done,
44906 // Label 2548: @123847
44907 GIM_Reject,
44908 // Label 2545: @123848
44909 GIM_Try, /*On fail goto*//*Label 2549*/ GIMT_Encode4(123885), // Rule ID 704 //
44910 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasVFP2),
44911 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
44912 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
44913 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
44914 // (fsqrt:{ *:[f32] } SPR:{ *:[f32] }:$Sm) => (VSQRTS:{ *:[f32] } SPR:{ *:[f32] }:$Sm)
44915 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSQRTS),
44916 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
44917 GIR_RootToRootCopy, /*OpIdx*/1, // Sm
44918 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
44919 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44920 GIR_RootConstrainSelectedInstOperands,
44921 // GIR_Coverage, 704,
44922 GIR_EraseRootFromParent_Done,
44923 // Label 2549: @123885
44924 GIM_Reject,
44925 // Label 2546: @123886
44926 GIM_Try, /*On fail goto*//*Label 2550*/ GIMT_Encode4(123923), // Rule ID 703 //
44927 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasVFP2),
44928 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
44929 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
44930 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
44931 // (fsqrt:{ *:[f64] } DPR:{ *:[f64] }:$Dm) => (VSQRTD:{ *:[f64] } DPR:{ *:[f64] }:$Dm)
44932 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VSQRTD),
44933 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Dd]
44934 GIR_RootToRootCopy, /*OpIdx*/1, // Dm
44935 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
44936 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
44937 GIR_RootConstrainSelectedInstOperands,
44938 // GIR_Coverage, 703,
44939 GIR_EraseRootFromParent_Done,
44940 // Label 2550: @123923
44941 GIM_Reject,
44942 // Label 2547: @123924
44943 GIM_Reject,
44944 // Label 66: @123925
44945 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(0), GIMT_Encode2(13), /*)*//*default:*//*Label 2556*/ GIMT_Encode4(124183),
44946 /*GILLT_s16*//*Label 2551*/ GIMT_Encode4(123988),
44947 /*GILLT_s32*//*Label 2552*/ GIMT_Encode4(124015),
44948 /*GILLT_s64*//*Label 2553*/ GIMT_Encode4(124042), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
44949 /*GILLT_v4s32*//*Label 2554*/ GIMT_Encode4(124069), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
44950 /*GILLT_v8s16*//*Label 2555*/ GIMT_Encode4(124126),
44951 // Label 2551: @123988
44952 GIM_Try, /*On fail goto*//*Label 2557*/ GIMT_Encode4(124014), // Rule ID 700 //
44953 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16),
44954 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s16,
44955 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
44956 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
44957 // (ffloor:{ *:[f16] } HPR:{ *:[f16] }:$Sm) => (VRINTMH:{ *:[f16] } HPR:{ *:[f16] }:$Sm)
44958 GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/GIMT_Encode2(ARM::VRINTMH),
44959 GIR_RootConstrainSelectedInstOperands,
44960 // GIR_Coverage, 700,
44961 GIR_Done,
44962 // Label 2557: @124014
44963 GIM_Reject,
44964 // Label 2552: @124015
44965 GIM_Try, /*On fail goto*//*Label 2558*/ GIMT_Encode4(124041), // Rule ID 701 //
44966 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFPARMv8),
44967 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
44968 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
44969 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
44970 // (ffloor:{ *:[f32] } SPR:{ *:[f32] }:$Sm) => (VRINTMS:{ *:[f32] } SPR:{ *:[f32] }:$Sm)
44971 GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/GIMT_Encode2(ARM::VRINTMS),
44972 GIR_RootConstrainSelectedInstOperands,
44973 // GIR_Coverage, 701,
44974 GIR_Done,
44975 // Label 2558: @124041
44976 GIM_Reject,
44977 // Label 2553: @124042
44978 GIM_Try, /*On fail goto*//*Label 2559*/ GIMT_Encode4(124068), // Rule ID 702 //
44979 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasFPARMv8),
44980 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
44981 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
44982 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
44983 // (ffloor:{ *:[f64] } DPR:{ *:[f64] }:$Dm) => (VRINTMD:{ *:[f64] } DPR:{ *:[f64] }:$Dm)
44984 GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/GIMT_Encode2(ARM::VRINTMD),
44985 GIR_RootConstrainSelectedInstOperands,
44986 // GIR_Coverage, 702,
44987 GIR_Done,
44988 // Label 2559: @124068
44989 GIM_Reject,
44990 // Label 2554: @124069
44991 GIM_Try, /*On fail goto*//*Label 2560*/ GIMT_Encode4(124125), // Rule ID 4099 //
44992 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
44993 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
44994 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
44995 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
44996 // (ffloor:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$val) => (MVE_VRINTf32M:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$val)
44997 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
44998 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
44999 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
45000 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRINTf32M),
45001 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
45002 GIR_RootToRootCopy, /*OpIdx*/1, // val
45003 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
45004 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45005 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45006 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
45007 GIR_RootConstrainSelectedInstOperands,
45008 // GIR_Coverage, 4099,
45009 GIR_EraseRootFromParent_Done,
45010 // Label 2560: @124125
45011 GIM_Reject,
45012 // Label 2555: @124126
45013 GIM_Try, /*On fail goto*//*Label 2561*/ GIMT_Encode4(124182), // Rule ID 4087 //
45014 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
45015 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
45016 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
45017 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
45018 // (ffloor:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$val) => (MVE_VRINTf16M:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$val)
45019 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
45020 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
45021 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
45022 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRINTf16M),
45023 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
45024 GIR_RootToRootCopy, /*OpIdx*/1, // val
45025 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
45026 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45027 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45028 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
45029 GIR_RootConstrainSelectedInstOperands,
45030 // GIR_Coverage, 4087,
45031 GIR_EraseRootFromParent_Done,
45032 // Label 2561: @124182
45033 GIM_Reject,
45034 // Label 2556: @124183
45035 GIM_Reject,
45036 // Label 67: @124184
45037 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(0), GIMT_Encode2(13), /*)*//*default:*//*Label 2567*/ GIMT_Encode4(124475),
45038 /*GILLT_s16*//*Label 2562*/ GIMT_Encode4(124247),
45039 /*GILLT_s32*//*Label 2563*/ GIMT_Encode4(124285),
45040 /*GILLT_s64*//*Label 2564*/ GIMT_Encode4(124323), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
45041 /*GILLT_v4s32*//*Label 2565*/ GIMT_Encode4(124361), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
45042 /*GILLT_v8s16*//*Label 2566*/ GIMT_Encode4(124418),
45043 // Label 2562: @124247
45044 GIM_Try, /*On fail goto*//*Label 2568*/ GIMT_Encode4(124284), // Rule ID 688 //
45045 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16),
45046 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s16,
45047 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
45048 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
45049 // (frint:{ *:[f16] } HPR:{ *:[f16] }:$Sm) => (VRINTXH:{ *:[f16] } HPR:{ *:[f16] }:$Sm)
45050 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRINTXH),
45051 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
45052 GIR_RootToRootCopy, /*OpIdx*/1, // Sm
45053 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
45054 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45055 GIR_RootConstrainSelectedInstOperands,
45056 // GIR_Coverage, 688,
45057 GIR_EraseRootFromParent_Done,
45058 // Label 2568: @124284
45059 GIM_Reject,
45060 // Label 2563: @124285
45061 GIM_Try, /*On fail goto*//*Label 2569*/ GIMT_Encode4(124322), // Rule ID 689 //
45062 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFPARMv8),
45063 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
45064 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
45065 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
45066 // (frint:{ *:[f32] } SPR:{ *:[f32] }:$Sm) => (VRINTXS:{ *:[f32] } SPR:{ *:[f32] }:$Sm)
45067 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRINTXS),
45068 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
45069 GIR_RootToRootCopy, /*OpIdx*/1, // Sm
45070 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
45071 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45072 GIR_RootConstrainSelectedInstOperands,
45073 // GIR_Coverage, 689,
45074 GIR_EraseRootFromParent_Done,
45075 // Label 2569: @124322
45076 GIM_Reject,
45077 // Label 2564: @124323
45078 GIM_Try, /*On fail goto*//*Label 2570*/ GIMT_Encode4(124360), // Rule ID 690 //
45079 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasFPARMv8),
45080 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
45081 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
45082 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
45083 // (frint:{ *:[f64] } DPR:{ *:[f64] }:$Dm) => (VRINTXD:{ *:[f64] } DPR:{ *:[f64] }:$Dm)
45084 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRINTXD),
45085 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Dd]
45086 GIR_RootToRootCopy, /*OpIdx*/1, // Dm
45087 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
45088 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45089 GIR_RootConstrainSelectedInstOperands,
45090 // GIR_Coverage, 690,
45091 GIR_EraseRootFromParent_Done,
45092 // Label 2570: @124360
45093 GIM_Reject,
45094 // Label 2565: @124361
45095 GIM_Try, /*On fail goto*//*Label 2571*/ GIMT_Encode4(124417), // Rule ID 4093 //
45096 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
45097 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v4s32,
45098 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
45099 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
45100 // (frint:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$val) => (MVE_VRINTf32X:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$val)
45101 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
45102 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
45103 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
45104 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRINTf32X),
45105 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
45106 GIR_RootToRootCopy, /*OpIdx*/1, // val
45107 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
45108 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45109 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45110 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
45111 GIR_RootConstrainSelectedInstOperands,
45112 // GIR_Coverage, 4093,
45113 GIR_EraseRootFromParent_Done,
45114 // Label 2571: @124417
45115 GIM_Reject,
45116 // Label 2566: @124418
45117 GIM_Try, /*On fail goto*//*Label 2572*/ GIMT_Encode4(124474), // Rule ID 4081 //
45118 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
45119 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_v8s16,
45120 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
45121 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
45122 // (frint:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$val) => (MVE_VRINTf16X:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$val)
45123 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
45124 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
45125 GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
45126 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VRINTf16X),
45127 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Qd]
45128 GIR_RootToRootCopy, /*OpIdx*/1, // val
45129 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
45130 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45131 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45132 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
45133 GIR_RootConstrainSelectedInstOperands,
45134 // GIR_Coverage, 4081,
45135 GIR_EraseRootFromParent_Done,
45136 // Label 2572: @124474
45137 GIM_Reject,
45138 // Label 2567: @124475
45139 GIM_Reject,
45140 // Label 68: @124476
45141 GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(0), GIMT_Encode2(3), /*)*//*default:*//*Label 2576*/ GIMT_Encode4(124613),
45142 /*GILLT_s16*//*Label 2573*/ GIMT_Encode4(124499),
45143 /*GILLT_s32*//*Label 2574*/ GIMT_Encode4(124537),
45144 /*GILLT_s64*//*Label 2575*/ GIMT_Encode4(124575),
45145 // Label 2573: @124499
45146 GIM_Try, /*On fail goto*//*Label 2577*/ GIMT_Encode4(124536), // Rule ID 685 //
45147 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16),
45148 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s16,
45149 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
45150 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::HPRRegClassID),
45151 // (fnearbyint:{ *:[f16] } HPR:{ *:[f16] }:$Sm) => (VRINTRH:{ *:[f16] } HPR:{ *:[f16] }:$Sm)
45152 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRINTRH),
45153 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
45154 GIR_RootToRootCopy, /*OpIdx*/1, // Sm
45155 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
45156 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45157 GIR_RootConstrainSelectedInstOperands,
45158 // GIR_Coverage, 685,
45159 GIR_EraseRootFromParent_Done,
45160 // Label 2577: @124536
45161 GIM_Reject,
45162 // Label 2574: @124537
45163 GIM_Try, /*On fail goto*//*Label 2578*/ GIMT_Encode4(124574), // Rule ID 686 //
45164 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFPARMv8),
45165 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
45166 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
45167 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::SPRRegClassID),
45168 // (fnearbyint:{ *:[f32] } SPR:{ *:[f32] }:$Sm) => (VRINTRS:{ *:[f32] } SPR:{ *:[f32] }:$Sm)
45169 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRINTRS),
45170 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Sd]
45171 GIR_RootToRootCopy, /*OpIdx*/1, // Sm
45172 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
45173 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45174 GIR_RootConstrainSelectedInstOperands,
45175 // GIR_Coverage, 686,
45176 GIR_EraseRootFromParent_Done,
45177 // Label 2578: @124574
45178 GIM_Reject,
45179 // Label 2575: @124575
45180 GIM_Try, /*On fail goto*//*Label 2579*/ GIMT_Encode4(124612), // Rule ID 687 //
45181 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasFPARMv8),
45182 GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
45183 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
45184 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::DPRRegClassID),
45185 // (fnearbyint:{ *:[f64] } DPR:{ *:[f64] }:$Dm) => (VRINTRD:{ *:[f64] } DPR:{ *:[f64] }:$Dm)
45186 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::VRINTRD),
45187 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Dd]
45188 GIR_RootToRootCopy, /*OpIdx*/1, // Dm
45189 GIR_AddImm8, /*InsnID*/0, /*Imm*/14,
45190 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45191 GIR_RootConstrainSelectedInstOperands,
45192 // GIR_Coverage, 687,
45193 GIR_EraseRootFromParent_Done,
45194 // Label 2579: @124612
45195 GIM_Reject,
45196 // Label 2576: @124613
45197 GIM_Reject,
45198 // Label 69: @124614
45199 GIM_Try, /*On fail goto*//*Label 2580*/ GIMT_Encode4(124629), // Rule ID 12 //
45200 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM_UseNaClTrap),
45201 // (trap) => (TRAPNaCl)
45202 GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/GIMT_Encode2(ARM::TRAPNaCl),
45203 GIR_RootConstrainSelectedInstOperands,
45204 // GIR_Coverage, 12,
45205 GIR_Done,
45206 // Label 2580: @124629
45207 GIM_Try, /*On fail goto*//*Label 2581*/ GIMT_Encode4(124644), // Rule ID 13 //
45208 GIM_CheckFeatures, GIMT_Encode2(GIFBS_DontUseNaClTrap_IsARM),
45209 // (trap) => (TRAP)
45210 GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/GIMT_Encode2(ARM::TRAP),
45211 GIR_RootConstrainSelectedInstOperands,
45212 // GIR_Coverage, 13,
45213 GIR_Done,
45214 // Label 2581: @124644
45215 GIM_Try, /*On fail goto*//*Label 2582*/ GIMT_Encode4(124659), // Rule ID 292 //
45216 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb),
45217 // (trap) => (tTRAP)
45218 GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/GIMT_Encode2(ARM::tTRAP),
45219 GIR_RootConstrainSelectedInstOperands,
45220 // GIR_Coverage, 292,
45221 GIR_Done,
45222 // Label 2582: @124659
45223 GIM_Reject,
45224 // Label 70: @124660
45225 GIM_Try, /*On fail goto*//*Label 2583*/ GIMT_Encode4(124676), // Rule ID 1862 //
45226 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV5T_IsARM),
45227 // (debugtrap) => (BKPT 0:{ *:[i32] })
45228 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::BKPT),
45229 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
45230 GIR_RootConstrainSelectedInstOperands,
45231 // GIR_Coverage, 1862,
45232 GIR_EraseRootFromParent_Done,
45233 // Label 2583: @124676
45234 GIM_Try, /*On fail goto*//*Label 2584*/ GIMT_Encode4(124703), // Rule ID 1863 //
45235 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM_NoV5T),
45236 // (debugtrap) => (UDF 254:{ *:[i32] })
45237 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::UDF),
45238 GIR_AddImm, /*InsnID*/0, /*Imm*/GIMT_Encode8(254),
45239 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
45240 GIR_RootConstrainSelectedInstOperands,
45241 // GIR_Coverage, 1863,
45242 GIR_EraseRootFromParent_Done,
45243 // Label 2584: @124703
45244 GIM_Try, /*On fail goto*//*Label 2585*/ GIMT_Encode4(124719), // Rule ID 2036 //
45245 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV5T_IsThumb),
45246 // (debugtrap) => (tBKPT 0:{ *:[i32] })
45247 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::tBKPT),
45248 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
45249 GIR_RootConstrainSelectedInstOperands,
45250 // GIR_Coverage, 2036,
45251 GIR_EraseRootFromParent_Done,
45252 // Label 2585: @124719
45253 GIM_Try, /*On fail goto*//*Label 2586*/ GIMT_Encode4(124746), // Rule ID 2037 //
45254 GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb_NoV5T),
45255 // (debugtrap) => (tUDF 254:{ *:[i32] })
45256 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::tUDF),
45257 GIR_AddImm, /*InsnID*/0, /*Imm*/GIMT_Encode8(254),
45258 GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0,
45259 GIR_RootConstrainSelectedInstOperands,
45260 // GIR_Coverage, 2037,
45261 GIR_EraseRootFromParent_Done,
45262 // Label 2586: @124746
45263 GIM_Reject,
45264 // Label 71: @124747
45265 GIM_Try, /*On fail goto*//*Label 2587*/ GIMT_Encode4(124922),
45266 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
45267 GIM_SwitchType, /*MI*/0, /*Op*/1, /*[*/GIMT_Encode2(8), GIMT_Encode2(16), /*)*//*default:*//*Label 2591*/ GIMT_Encode4(124921),
45268 /*GILLT_v4s32*//*Label 2588*/ GIMT_Encode4(124798), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
45269 /*GILLT_v8s16*//*Label 2589*/ GIMT_Encode4(124839), GIMT_Encode4(0), GIMT_Encode4(0),
45270 /*GILLT_v16s8*//*Label 2590*/ GIMT_Encode4(124880),
45271 // Label 2588: @124798
45272 GIM_Try, /*On fail goto*//*Label 2592*/ GIMT_Encode4(124838), // Rule ID 3184 //
45273 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
45274 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
45275 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
45276 // (vecreduce_add:{ *:[i32] } MQPR:{ *:[v4i32] }:$vec) => (MVE_VADDVu32no_acc:{ *:[i32] } ?:{ *:[v4i32] }:$vec)
45277 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VADDVu32no_acc),
45278 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rda]
45279 GIR_RootToRootCopy, /*OpIdx*/1, // vec
45280 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
45281 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45282 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45283 GIR_RootConstrainSelectedInstOperands,
45284 // GIR_Coverage, 3184,
45285 GIR_EraseRootFromParent_Done,
45286 // Label 2592: @124838
45287 GIM_Reject,
45288 // Label 2589: @124839
45289 GIM_Try, /*On fail goto*//*Label 2593*/ GIMT_Encode4(124879), // Rule ID 3174 //
45290 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
45291 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
45292 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
45293 // (vecreduce_add:{ *:[i32] } MQPR:{ *:[v8i16] }:$vec) => (MVE_VADDVu16no_acc:{ *:[i32] } ?:{ *:[v8i16] }:$vec)
45294 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VADDVu16no_acc),
45295 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rda]
45296 GIR_RootToRootCopy, /*OpIdx*/1, // vec
45297 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
45298 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45299 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45300 GIR_RootConstrainSelectedInstOperands,
45301 // GIR_Coverage, 3174,
45302 GIR_EraseRootFromParent_Done,
45303 // Label 2593: @124879
45304 GIM_Reject,
45305 // Label 2590: @124880
45306 GIM_Try, /*On fail goto*//*Label 2594*/ GIMT_Encode4(124920), // Rule ID 3146 //
45307 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
45308 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::tGPREvenRegClassID),
45309 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
45310 // (vecreduce_add:{ *:[i32] } MQPR:{ *:[v16i8] }:$vec) => (MVE_VADDVu8no_acc:{ *:[i32] } ?:{ *:[v16i8] }:$vec)
45311 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VADDVu8no_acc),
45312 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[Rda]
45313 GIR_RootToRootCopy, /*OpIdx*/1, // vec
45314 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
45315 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45316 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45317 GIR_RootConstrainSelectedInstOperands,
45318 // GIR_Coverage, 3146,
45319 GIR_EraseRootFromParent_Done,
45320 // Label 2594: @124920
45321 GIM_Reject,
45322 // Label 2591: @124921
45323 GIM_Reject,
45324 // Label 2587: @124922
45325 GIM_Reject,
45326 // Label 72: @124923
45327 GIM_Try, /*On fail goto*//*Label 2595*/ GIMT_Encode4(125202),
45328 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
45329 GIM_SwitchType, /*MI*/0, /*Op*/1, /*[*/GIMT_Encode2(8), GIMT_Encode2(16), /*)*//*default:*//*Label 2599*/ GIMT_Encode4(125201),
45330 /*GILLT_v4s32*//*Label 2596*/ GIMT_Encode4(124974), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
45331 /*GILLT_v8s16*//*Label 2597*/ GIMT_Encode4(125057), GIMT_Encode4(0), GIMT_Encode4(0),
45332 /*GILLT_v16s8*//*Label 2598*/ GIMT_Encode4(125125),
45333 // Label 2596: @124974
45334 GIM_Try, /*On fail goto*//*Label 2600*/ GIMT_Encode4(125056), // Rule ID 3244 //
45335 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
45336 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
45337 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
45338 // (vecreduce_smax:{ *:[i32] } MQPR:{ *:[v4i32] }:$src) => (MVE_VMAXVs32:{ *:[i32] } (t2MOVi:{ *:[i32] } -2147483648:{ *:[i32] }), ?:{ *:[v4i32] }:$src)
45339 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
45340 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::t2MOVi),
45341 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
45342 GIR_AddImm, /*InsnID*/1, /*Imm*/GIMT_Encode8(-2147483648),
45343 GIR_AddImm8, /*InsnID*/1, /*Imm*/14,
45344 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45345 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45346 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
45347 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMAXVs32),
45348 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
45349 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
45350 GIR_RootToRootCopy, /*OpIdx*/1, // src
45351 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
45352 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45353 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45354 GIR_RootConstrainSelectedInstOperands,
45355 // GIR_Coverage, 3244,
45356 GIR_EraseRootFromParent_Done,
45357 // Label 2600: @125056
45358 GIM_Reject,
45359 // Label 2597: @125057
45360 GIM_Try, /*On fail goto*//*Label 2601*/ GIMT_Encode4(125124), // Rule ID 3243 //
45361 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
45362 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
45363 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
45364 // (vecreduce_smax:{ *:[i32] } MQPR:{ *:[v8i16] }:$src) => (MVE_VMAXVs16:{ *:[i32] } (t2MOVi32imm:{ *:[i32] } -32768:{ *:[i32] }), ?:{ *:[v8i16] }:$src)
45365 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
45366 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::t2MOVi32imm),
45367 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
45368 GIR_AddImm, /*InsnID*/1, /*Imm*/GIMT_Encode8(-32768),
45369 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
45370 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMAXVs16),
45371 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
45372 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
45373 GIR_RootToRootCopy, /*OpIdx*/1, // src
45374 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
45375 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45376 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45377 GIR_RootConstrainSelectedInstOperands,
45378 // GIR_Coverage, 3243,
45379 GIR_EraseRootFromParent_Done,
45380 // Label 2601: @125124
45381 GIM_Reject,
45382 // Label 2598: @125125
45383 GIM_Try, /*On fail goto*//*Label 2602*/ GIMT_Encode4(125200), // Rule ID 3242 //
45384 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
45385 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
45386 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
45387 // (vecreduce_smax:{ *:[i32] } MQPR:{ *:[v16i8] }:$src) => (MVE_VMAXVs8:{ *:[i32] } (t2MVNi:{ *:[i32] } 127:{ *:[i32] }), ?:{ *:[v16i8] }:$src)
45388 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
45389 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::t2MVNi),
45390 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
45391 GIR_AddImm8, /*InsnID*/1, /*Imm*/127,
45392 GIR_AddImm8, /*InsnID*/1, /*Imm*/14,
45393 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45394 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45395 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
45396 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMAXVs8),
45397 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
45398 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
45399 GIR_RootToRootCopy, /*OpIdx*/1, // src
45400 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
45401 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45402 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45403 GIR_RootConstrainSelectedInstOperands,
45404 // GIR_Coverage, 3242,
45405 GIR_EraseRootFromParent_Done,
45406 // Label 2602: @125200
45407 GIM_Reject,
45408 // Label 2599: @125201
45409 GIM_Reject,
45410 // Label 2595: @125202
45411 GIM_Reject,
45412 // Label 73: @125203
45413 GIM_Try, /*On fail goto*//*Label 2603*/ GIMT_Encode4(125491),
45414 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
45415 GIM_SwitchType, /*MI*/0, /*Op*/1, /*[*/GIMT_Encode2(8), GIMT_Encode2(16), /*)*//*default:*//*Label 2607*/ GIMT_Encode4(125490),
45416 /*GILLT_v4s32*//*Label 2604*/ GIMT_Encode4(125254), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
45417 /*GILLT_v8s16*//*Label 2605*/ GIMT_Encode4(125337), GIMT_Encode4(0), GIMT_Encode4(0),
45418 /*GILLT_v16s8*//*Label 2606*/ GIMT_Encode4(125414),
45419 // Label 2604: @125254
45420 GIM_Try, /*On fail goto*//*Label 2608*/ GIMT_Encode4(125336), // Rule ID 3250 //
45421 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
45422 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
45423 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
45424 // (vecreduce_smin:{ *:[i32] } MQPR:{ *:[v4i32] }:$src) => (MVE_VMINVs32:{ *:[i32] } (t2MVNi:{ *:[i32] } -2147483648:{ *:[i32] }), ?:{ *:[v4i32] }:$src)
45425 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
45426 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::t2MVNi),
45427 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
45428 GIR_AddImm, /*InsnID*/1, /*Imm*/GIMT_Encode8(-2147483648),
45429 GIR_AddImm8, /*InsnID*/1, /*Imm*/14,
45430 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45431 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45432 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
45433 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMINVs32),
45434 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
45435 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
45436 GIR_RootToRootCopy, /*OpIdx*/1, // src
45437 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
45438 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45439 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45440 GIR_RootConstrainSelectedInstOperands,
45441 // GIR_Coverage, 3250,
45442 GIR_EraseRootFromParent_Done,
45443 // Label 2608: @125336
45444 GIM_Reject,
45445 // Label 2605: @125337
45446 GIM_Try, /*On fail goto*//*Label 2609*/ GIMT_Encode4(125413), // Rule ID 3249 //
45447 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
45448 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
45449 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
45450 // (vecreduce_smin:{ *:[i32] } MQPR:{ *:[v8i16] }:$src) => (MVE_VMINVs16:{ *:[i32] } (t2MOVi16:{ *:[i32] } 32767:{ *:[i32] }), ?:{ *:[v8i16] }:$src)
45451 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
45452 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::t2MOVi16),
45453 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
45454 GIR_AddImm, /*InsnID*/1, /*Imm*/GIMT_Encode8(32767),
45455 GIR_AddImm8, /*InsnID*/1, /*Imm*/14,
45456 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45457 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
45458 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMINVs16),
45459 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
45460 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
45461 GIR_RootToRootCopy, /*OpIdx*/1, // src
45462 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
45463 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45464 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45465 GIR_RootConstrainSelectedInstOperands,
45466 // GIR_Coverage, 3249,
45467 GIR_EraseRootFromParent_Done,
45468 // Label 2609: @125413
45469 GIM_Reject,
45470 // Label 2606: @125414
45471 GIM_Try, /*On fail goto*//*Label 2610*/ GIMT_Encode4(125489), // Rule ID 3248 //
45472 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
45473 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
45474 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
45475 // (vecreduce_smin:{ *:[i32] } MQPR:{ *:[v16i8] }:$src) => (MVE_VMINVs8:{ *:[i32] } (t2MOVi:{ *:[i32] } 127:{ *:[i32] }), ?:{ *:[v16i8] }:$src)
45476 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
45477 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::t2MOVi),
45478 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
45479 GIR_AddImm8, /*InsnID*/1, /*Imm*/127,
45480 GIR_AddImm8, /*InsnID*/1, /*Imm*/14,
45481 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45482 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45483 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
45484 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMINVs8),
45485 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
45486 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
45487 GIR_RootToRootCopy, /*OpIdx*/1, // src
45488 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
45489 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45490 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45491 GIR_RootConstrainSelectedInstOperands,
45492 // GIR_Coverage, 3248,
45493 GIR_EraseRootFromParent_Done,
45494 // Label 2610: @125489
45495 GIM_Reject,
45496 // Label 2607: @125490
45497 GIM_Reject,
45498 // Label 2603: @125491
45499 GIM_Reject,
45500 // Label 74: @125492
45501 GIM_Try, /*On fail goto*//*Label 2611*/ GIMT_Encode4(125772),
45502 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
45503 GIM_SwitchType, /*MI*/0, /*Op*/1, /*[*/GIMT_Encode2(8), GIMT_Encode2(16), /*)*//*default:*//*Label 2615*/ GIMT_Encode4(125771),
45504 /*GILLT_v4s32*//*Label 2612*/ GIMT_Encode4(125543), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
45505 /*GILLT_v8s16*//*Label 2613*/ GIMT_Encode4(125619), GIMT_Encode4(0), GIMT_Encode4(0),
45506 /*GILLT_v16s8*//*Label 2614*/ GIMT_Encode4(125695),
45507 // Label 2612: @125543
45508 GIM_Try, /*On fail goto*//*Label 2616*/ GIMT_Encode4(125618), // Rule ID 3247 //
45509 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
45510 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
45511 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
45512 // (vecreduce_umax:{ *:[i32] } MQPR:{ *:[v4i32] }:$src) => (MVE_VMAXVu32:{ *:[i32] } (t2MOVi:{ *:[i32] } 0:{ *:[i32] }), ?:{ *:[v4i32] }:$src)
45513 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
45514 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::t2MOVi),
45515 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
45516 GIR_AddImm8, /*InsnID*/1, /*Imm*/0,
45517 GIR_AddImm8, /*InsnID*/1, /*Imm*/14,
45518 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45519 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45520 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
45521 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMAXVu32),
45522 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
45523 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
45524 GIR_RootToRootCopy, /*OpIdx*/1, // src
45525 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
45526 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45527 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45528 GIR_RootConstrainSelectedInstOperands,
45529 // GIR_Coverage, 3247,
45530 GIR_EraseRootFromParent_Done,
45531 // Label 2616: @125618
45532 GIM_Reject,
45533 // Label 2613: @125619
45534 GIM_Try, /*On fail goto*//*Label 2617*/ GIMT_Encode4(125694), // Rule ID 3246 //
45535 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
45536 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
45537 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
45538 // (vecreduce_umax:{ *:[i32] } MQPR:{ *:[v8i16] }:$src) => (MVE_VMAXVu16:{ *:[i32] } (t2MOVi:{ *:[i32] } 0:{ *:[i32] }), ?:{ *:[v8i16] }:$src)
45539 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
45540 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::t2MOVi),
45541 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
45542 GIR_AddImm8, /*InsnID*/1, /*Imm*/0,
45543 GIR_AddImm8, /*InsnID*/1, /*Imm*/14,
45544 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45545 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45546 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
45547 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMAXVu16),
45548 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
45549 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
45550 GIR_RootToRootCopy, /*OpIdx*/1, // src
45551 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
45552 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45553 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45554 GIR_RootConstrainSelectedInstOperands,
45555 // GIR_Coverage, 3246,
45556 GIR_EraseRootFromParent_Done,
45557 // Label 2617: @125694
45558 GIM_Reject,
45559 // Label 2614: @125695
45560 GIM_Try, /*On fail goto*//*Label 2618*/ GIMT_Encode4(125770), // Rule ID 3245 //
45561 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
45562 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
45563 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
45564 // (vecreduce_umax:{ *:[i32] } MQPR:{ *:[v16i8] }:$src) => (MVE_VMAXVu8:{ *:[i32] } (t2MOVi:{ *:[i32] } 0:{ *:[i32] }), ?:{ *:[v16i8] }:$src)
45565 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
45566 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::t2MOVi),
45567 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
45568 GIR_AddImm8, /*InsnID*/1, /*Imm*/0,
45569 GIR_AddImm8, /*InsnID*/1, /*Imm*/14,
45570 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45571 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45572 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
45573 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMAXVu8),
45574 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
45575 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
45576 GIR_RootToRootCopy, /*OpIdx*/1, // src
45577 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
45578 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45579 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45580 GIR_RootConstrainSelectedInstOperands,
45581 // GIR_Coverage, 3245,
45582 GIR_EraseRootFromParent_Done,
45583 // Label 2618: @125770
45584 GIM_Reject,
45585 // Label 2615: @125771
45586 GIM_Reject,
45587 // Label 2611: @125772
45588 GIM_Reject,
45589 // Label 75: @125773
45590 GIM_Try, /*On fail goto*//*Label 2619*/ GIMT_Encode4(126068),
45591 GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
45592 GIM_SwitchType, /*MI*/0, /*Op*/1, /*[*/GIMT_Encode2(8), GIMT_Encode2(16), /*)*//*default:*//*Label 2623*/ GIMT_Encode4(126067),
45593 /*GILLT_v4s32*//*Label 2620*/ GIMT_Encode4(125824), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
45594 /*GILLT_v8s16*//*Label 2621*/ GIMT_Encode4(125907), GIMT_Encode4(0), GIMT_Encode4(0),
45595 /*GILLT_v16s8*//*Label 2622*/ GIMT_Encode4(125984),
45596 // Label 2620: @125824
45597 GIM_Try, /*On fail goto*//*Label 2624*/ GIMT_Encode4(125906), // Rule ID 3253 //
45598 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
45599 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
45600 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
45601 // (vecreduce_umin:{ *:[i32] } MQPR:{ *:[v4i32] }:$src) => (MVE_VMINVu32:{ *:[i32] } (t2MOVi:{ *:[i32] } 4294967295:{ *:[i32] }), ?:{ *:[v4i32] }:$src)
45602 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
45603 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::t2MOVi),
45604 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
45605 GIR_AddImm, /*InsnID*/1, /*Imm*/GIMT_Encode8(4294967295),
45606 GIR_AddImm8, /*InsnID*/1, /*Imm*/14,
45607 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45608 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45609 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
45610 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMINVu32),
45611 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
45612 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
45613 GIR_RootToRootCopy, /*OpIdx*/1, // src
45614 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
45615 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45616 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45617 GIR_RootConstrainSelectedInstOperands,
45618 // GIR_Coverage, 3253,
45619 GIR_EraseRootFromParent_Done,
45620 // Label 2624: @125906
45621 GIM_Reject,
45622 // Label 2621: @125907
45623 GIM_Try, /*On fail goto*//*Label 2625*/ GIMT_Encode4(125983), // Rule ID 3252 //
45624 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
45625 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
45626 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
45627 // (vecreduce_umin:{ *:[i32] } MQPR:{ *:[v8i16] }:$src) => (MVE_VMINVu16:{ *:[i32] } (t2MOVi16:{ *:[i32] } 65535:{ *:[i32] }), ?:{ *:[v8i16] }:$src)
45628 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
45629 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::t2MOVi16),
45630 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
45631 GIR_AddImm, /*InsnID*/1, /*Imm*/GIMT_Encode8(65535),
45632 GIR_AddImm8, /*InsnID*/1, /*Imm*/14,
45633 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45634 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
45635 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMINVu16),
45636 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
45637 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
45638 GIR_RootToRootCopy, /*OpIdx*/1, // src
45639 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
45640 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45641 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45642 GIR_RootConstrainSelectedInstOperands,
45643 // GIR_Coverage, 3252,
45644 GIR_EraseRootFromParent_Done,
45645 // Label 2625: @125983
45646 GIM_Reject,
45647 // Label 2622: @125984
45648 GIM_Try, /*On fail goto*//*Label 2626*/ GIMT_Encode4(126066), // Rule ID 3251 //
45649 GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
45650 GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(ARM::rGPRRegClassID),
45651 GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(ARM::MQPRRegClassID),
45652 // (vecreduce_umin:{ *:[i32] } MQPR:{ *:[v16i8] }:$src) => (MVE_VMINVu8:{ *:[i32] } (t2MOVi:{ *:[i32] } 255:{ *:[i32] }), ?:{ *:[v16i8] }:$src)
45653 GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
45654 GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(ARM::t2MOVi),
45655 GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
45656 GIR_AddImm, /*InsnID*/1, /*Imm*/GIMT_Encode8(255),
45657 GIR_AddImm8, /*InsnID*/1, /*Imm*/14,
45658 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45659 GIR_AddRegister, /*InsnID*/1, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45660 GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
45661 GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(ARM::MVE_VMINVu8),
45662 GIR_RootToRootCopy, /*OpIdx*/0, // DstI[RdaDest]
45663 GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
45664 GIR_RootToRootCopy, /*OpIdx*/1, // src
45665 GIR_AddImm8, /*InsnID*/0, /*Imm*/0,
45666 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45667 GIR_AddRegister, /*InsnID*/0, GIMT_Encode2(ARM::NoRegister), /*AddRegisterRegFlags*/GIMT_Encode2(0),
45668 GIR_RootConstrainSelectedInstOperands,
45669 // GIR_Coverage, 3251,
45670 GIR_EraseRootFromParent_Done,
45671 // Label 2626: @126066
45672 GIM_Reject,
45673 // Label 2623: @126067
45674 GIM_Reject,
45675 // Label 2619: @126068
45676 GIM_Reject,
45677 // Label 76: @126069
45678 GIM_Reject,
45679 }; // Size: 126070 bytes
45680 return MatchTable0;
45681}
45682#undef GIMT_Encode2
45683#undef GIMT_Encode4
45684#undef GIMT_Encode8
45685
45686#endif // ifdef GET_GLOBALISEL_IMPL
45687
45688#ifdef GET_GLOBALISEL_PREDICATES_DECL
45689PredicateBitset AvailableModuleFeatures;
45690mutable PredicateBitset AvailableFunctionFeatures;
45691PredicateBitset getAvailableFeatures() const {
45692 return AvailableModuleFeatures | AvailableFunctionFeatures;
45693}
45694PredicateBitset
45695computeAvailableModuleFeatures(const ARMSubtarget *Subtarget) const;
45696PredicateBitset
45697computeAvailableFunctionFeatures(const ARMSubtarget *Subtarget,
45698 const MachineFunction *MF) const;
45699void setupGeneratedPerFunctionState(MachineFunction &MF) override;
45700#endif // ifdef GET_GLOBALISEL_PREDICATES_DECL
45701#ifdef GET_GLOBALISEL_PREDICATES_INIT
45702AvailableModuleFeatures(computeAvailableModuleFeatures(&STI)),
45703AvailableFunctionFeatures()
45704#endif // ifdef GET_GLOBALISEL_PREDICATES_INIT
45705