Line data Source code
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
10 : const unsigned MAX_SUBTARGET_PREDICATES = 63;
11 : using PredicateBitset = llvm::PredicateBitsetImpl<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&) const;
18 : const ISelInfoTy<PredicateBitset, ComplexMatcherMemFn, CustomRendererFn> ISelInfo;
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 int64_t *getMatchTable() const override;
25 : bool testMIPredicate_MI(unsigned PredicateID, const MachineInstr &MI) const override;
26 : #endif // ifdef GET_GLOBALISEL_TEMPORARIES_DECL
27 :
28 : #ifdef GET_GLOBALISEL_TEMPORARIES_INIT
29 : , State(0),
30 10100 : ISelInfo(TypeObjects, NumTypeObjects, FeatureBitsets, ComplexPredicateFns, CustomRenderers)
31 : #endif // ifdef GET_GLOBALISEL_TEMPORARIES_INIT
32 :
33 : #ifdef GET_GLOBALISEL_IMPL
34 : // Bits for subtarget features that participate in instruction matching.
35 : enum SubtargetFeatureBits : uint8_t {
36 : Feature_NoHonorSignDependentRoundingBit = 56,
37 : Feature_HasV4TBit = 6,
38 : Feature_NoV4TBit = 7,
39 : Feature_HasV5TBit = 8,
40 : Feature_HasV5TEBit = 12,
41 : Feature_HasV6Bit = 0,
42 : Feature_NoV6Bit = 10,
43 : Feature_HasV6MBit = 29,
44 : Feature_HasV8MBaselineBit = 33,
45 : Feature_HasV6T2Bit = 9,
46 : Feature_HasV6KBit = 19,
47 : Feature_HasV7Bit = 3,
48 : Feature_HasV8Bit = 15,
49 : Feature_PreV8Bit = 20,
50 : Feature_HasV8_1aBit = 58,
51 : Feature_NoVFPBit = 23,
52 : Feature_HasVFP2Bit = 22,
53 : Feature_HasVFP3Bit = 46,
54 : Feature_HasVFP4Bit = 44,
55 : Feature_HasDPVFPBit = 39,
56 : Feature_HasFPARMv8Bit = 41,
57 : Feature_HasNEONBit = 47,
58 : Feature_HasCryptoBit = 48,
59 : Feature_HasDotProdBit = 49,
60 : Feature_HasCRCBit = 14,
61 : Feature_HasFP16Bit = 53,
62 : Feature_HasFullFP16Bit = 38,
63 : Feature_HasDivideInThumbBit = 35,
64 : Feature_HasDivideInARMBit = 13,
65 : Feature_HasDSPBit = 34,
66 : Feature_HasDBBit = 16,
67 : Feature_HasV7ClrexBit = 18,
68 : Feature_HasAcquireReleaseBit = 17,
69 : Feature_HasMPBit = 2,
70 : Feature_HasZCZBit = 50,
71 : Feature_UseNEONForFPBit = 61,
72 : Feature_DontUseNEONForFPBit = 40,
73 : Feature_IsThumbBit = 27,
74 : Feature_IsThumb1OnlyBit = 28,
75 : Feature_IsThumb2Bit = 32,
76 : Feature_IsNotMClassBit = 36,
77 : Feature_IsARMBit = 1,
78 : Feature_IsWindowsBit = 30,
79 : Feature_IsNotWindowsBit = 31,
80 : Feature_IsReadTPHardBit = 54,
81 : Feature_IsReadTPSoftBit = 21,
82 : Feature_UseNaClTrapBit = 4,
83 : Feature_DontUseNaClTrapBit = 5,
84 : Feature_UseMovtBit = 37,
85 : Feature_DontUseMovtBit = 24,
86 : Feature_UseMovtInPicBit = 25,
87 : Feature_DontUseMovtInPicBit = 26,
88 : Feature_UseFPVMLxBit = 43,
89 : Feature_UseMulOpsBit = 11,
90 : Feature_UseFusedMACBit = 45,
91 : Feature_HasFastVGETLNi32Bit = 51,
92 : Feature_HasSlowVGETLNi32Bit = 59,
93 : Feature_HasFastVDUP32Bit = 52,
94 : Feature_HasSlowVDUP32Bit = 60,
95 : Feature_UseVMOVSRBit = 42,
96 : Feature_DontUseVMOVSRBit = 62,
97 : Feature_IsLEBit = 55,
98 : Feature_IsBEBit = 57,
99 : };
100 :
101 0 : PredicateBitset ARMInstructionSelector::
102 : computeAvailableModuleFeatures(const ARMSubtarget *Subtarget) const {
103 0 : PredicateBitset Features;
104 0 : if (!TM.Options.HonorSignDependentRoundingFPMath())
105 0 : Features[Feature_NoHonorSignDependentRoundingBit] = 1;
106 0 : if (Subtarget->hasV4TOps())
107 0 : Features[Feature_HasV4TBit] = 1;
108 0 : if (!Subtarget->hasV4TOps())
109 0 : Features[Feature_NoV4TBit] = 1;
110 0 : if (Subtarget->hasV5TOps())
111 0 : Features[Feature_HasV5TBit] = 1;
112 0 : if (Subtarget->hasV5TEOps())
113 0 : Features[Feature_HasV5TEBit] = 1;
114 0 : if (Subtarget->hasV6Ops())
115 0 : Features[Feature_HasV6Bit] = 1;
116 0 : if (!Subtarget->hasV6Ops())
117 0 : Features[Feature_NoV6Bit] = 1;
118 0 : if (Subtarget->hasV6MOps())
119 0 : Features[Feature_HasV6MBit] = 1;
120 0 : if (Subtarget->hasV8MBaselineOps())
121 0 : Features[Feature_HasV8MBaselineBit] = 1;
122 0 : if (Subtarget->hasV6T2Ops())
123 0 : Features[Feature_HasV6T2Bit] = 1;
124 0 : if (Subtarget->hasV6KOps())
125 0 : Features[Feature_HasV6KBit] = 1;
126 0 : if (Subtarget->hasV7Ops())
127 0 : Features[Feature_HasV7Bit] = 1;
128 0 : if (Subtarget->hasV8Ops())
129 0 : Features[Feature_HasV8Bit] = 1;
130 0 : if (!Subtarget->hasV8Ops())
131 0 : Features[Feature_PreV8Bit] = 1;
132 0 : if (Subtarget->hasV8_1aOps())
133 0 : Features[Feature_HasV8_1aBit] = 1;
134 0 : if (!Subtarget->hasVFP2())
135 0 : Features[Feature_NoVFPBit] = 1;
136 0 : if (Subtarget->hasVFP2())
137 0 : Features[Feature_HasVFP2Bit] = 1;
138 0 : if (Subtarget->hasVFP3())
139 0 : Features[Feature_HasVFP3Bit] = 1;
140 0 : if (Subtarget->hasVFP4())
141 0 : Features[Feature_HasVFP4Bit] = 1;
142 0 : if (!Subtarget->isFPOnlySP())
143 0 : Features[Feature_HasDPVFPBit] = 1;
144 0 : if (Subtarget->hasFPARMv8())
145 0 : Features[Feature_HasFPARMv8Bit] = 1;
146 0 : if (Subtarget->hasNEON())
147 0 : Features[Feature_HasNEONBit] = 1;
148 0 : if (Subtarget->hasCrypto())
149 0 : Features[Feature_HasCryptoBit] = 1;
150 0 : if (Subtarget->hasDotProd())
151 0 : Features[Feature_HasDotProdBit] = 1;
152 0 : if (Subtarget->hasCRC())
153 0 : Features[Feature_HasCRCBit] = 1;
154 0 : if (Subtarget->hasFP16())
155 0 : Features[Feature_HasFP16Bit] = 1;
156 0 : if (Subtarget->hasFullFP16())
157 0 : Features[Feature_HasFullFP16Bit] = 1;
158 0 : if (Subtarget->hasDivideInThumbMode())
159 0 : Features[Feature_HasDivideInThumbBit] = 1;
160 0 : if (Subtarget->hasDivideInARMMode())
161 0 : Features[Feature_HasDivideInARMBit] = 1;
162 0 : if (Subtarget->hasDSP())
163 0 : Features[Feature_HasDSPBit] = 1;
164 0 : if (Subtarget->hasDataBarrier())
165 0 : Features[Feature_HasDBBit] = 1;
166 0 : if (Subtarget->hasV7Clrex())
167 0 : Features[Feature_HasV7ClrexBit] = 1;
168 0 : if (Subtarget->hasAcquireRelease())
169 0 : Features[Feature_HasAcquireReleaseBit] = 1;
170 0 : if (Subtarget->hasMPExtension())
171 0 : Features[Feature_HasMPBit] = 1;
172 0 : if (Subtarget->hasZeroCycleZeroing())
173 0 : Features[Feature_HasZCZBit] = 1;
174 : if (Subtarget->useNEONForSinglePrecisionFP())
175 0 : Features[Feature_UseNEONForFPBit] = 1;
176 : if (!Subtarget->useNEONForSinglePrecisionFP())
177 0 : Features[Feature_DontUseNEONForFPBit] = 1;
178 0 : if (Subtarget->isThumb())
179 0 : Features[Feature_IsThumbBit] = 1;
180 : if (Subtarget->isThumb1Only())
181 0 : Features[Feature_IsThumb1OnlyBit] = 1;
182 : if (Subtarget->isThumb2())
183 0 : Features[Feature_IsThumb2Bit] = 1;
184 0 : if (!Subtarget->isMClass())
185 0 : Features[Feature_IsNotMClassBit] = 1;
186 0 : if (!Subtarget->isThumb())
187 0 : Features[Feature_IsARMBit] = 1;
188 0 : if (Subtarget->isTargetWindows())
189 0 : Features[Feature_IsWindowsBit] = 1;
190 0 : if (!Subtarget->isTargetWindows())
191 0 : Features[Feature_IsNotWindowsBit] = 1;
192 0 : if (Subtarget->isReadTPHard())
193 0 : Features[Feature_IsReadTPHardBit] = 1;
194 0 : if (!Subtarget->isReadTPHard())
195 0 : Features[Feature_IsReadTPSoftBit] = 1;
196 0 : if (Subtarget->useNaClTrap())
197 0 : Features[Feature_UseNaClTrapBit] = 1;
198 0 : if (!Subtarget->useNaClTrap())
199 0 : Features[Feature_DontUseNaClTrapBit] = 1;
200 0 : if (Subtarget->useMulOps())
201 0 : Features[Feature_UseMulOpsBit] = 1;
202 0 : if ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->hasVFP4()) && !Subtarget->isTargetDarwin() &&Subtarget->useFPVMLx())
203 0 : Features[Feature_UseFusedMACBit] = 1;
204 0 : if (!Subtarget->hasSlowVGETLNi32())
205 0 : Features[Feature_HasFastVGETLNi32Bit] = 1;
206 0 : if (Subtarget->hasSlowVGETLNi32())
207 0 : Features[Feature_HasSlowVGETLNi32Bit] = 1;
208 0 : if (!Subtarget->hasSlowVDUP32())
209 0 : Features[Feature_HasFastVDUP32Bit] = 1;
210 0 : if (Subtarget->hasSlowVDUP32())
211 0 : Features[Feature_HasSlowVDUP32Bit] = 1;
212 0 : if (Subtarget->preferVMOVSR() ||!Subtarget->useNEONForSinglePrecisionFP())
213 0 : Features[Feature_UseVMOVSRBit] = 1;
214 0 : if (!Subtarget->preferVMOVSR() &&Subtarget->useNEONForSinglePrecisionFP())
215 0 : Features[Feature_DontUseVMOVSRBit] = 1;
216 0 : return Features;
217 : }
218 :
219 0 : PredicateBitset ARMInstructionSelector::
220 : computeAvailableFunctionFeatures(const ARMSubtarget *Subtarget, const MachineFunction *MF) const {
221 0 : PredicateBitset Features;
222 0 : if (Subtarget->useMovt(*MF))
223 0 : Features[Feature_UseMovtBit] = 1;
224 0 : if (!Subtarget->useMovt(*MF))
225 0 : Features[Feature_DontUseMovtBit] = 1;
226 0 : if (Subtarget->useMovt(*MF) && Subtarget->allowPositionIndependentMovt())
227 0 : Features[Feature_UseMovtInPicBit] = 1;
228 0 : if (!Subtarget->useMovt(*MF) || !Subtarget->allowPositionIndependentMovt())
229 0 : Features[Feature_DontUseMovtInPicBit] = 1;
230 0 : if (((Subtarget->useFPVMLx() && TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||MF->getFunction().optForMinSize()))
231 0 : Features[Feature_UseFPVMLxBit] = 1;
232 0 : if (MF->getDataLayout().isLittleEndian())
233 0 : Features[Feature_IsLEBit] = 1;
234 0 : if (MF->getDataLayout().isBigEndian())
235 0 : Features[Feature_IsBEBit] = 1;
236 0 : return Features;
237 : }
238 :
239 : // LLT Objects.
240 : enum {
241 : GILLT_s16,
242 : GILLT_s32,
243 : GILLT_s64,
244 : GILLT_v2s32,
245 : GILLT_v2s64,
246 : GILLT_v4s16,
247 : GILLT_v4s32,
248 : GILLT_v8s8,
249 : GILLT_v8s16,
250 : GILLT_v16s8,
251 : };
252 : const static size_t NumTypeObjects = 10;
253 : const static LLT TypeObjects[] = {
254 : LLT::scalar(16),
255 : LLT::scalar(32),
256 : LLT::scalar(64),
257 : LLT::vector(2, 32),
258 : LLT::vector(2, 64),
259 : LLT::vector(4, 16),
260 : LLT::vector(4, 32),
261 : LLT::vector(8, 8),
262 : LLT::vector(8, 16),
263 : LLT::vector(16, 8),
264 : };
265 :
266 : // Feature bitsets.
267 : enum {
268 : GIFBS_Invalid,
269 : GIFBS_HasDotProd,
270 : GIFBS_HasFPARMv8,
271 : GIFBS_HasFullFP16,
272 : GIFBS_HasNEON,
273 : GIFBS_HasVFP2,
274 : GIFBS_HasVFP4,
275 : GIFBS_IsARM,
276 : GIFBS_IsBE,
277 : GIFBS_IsLE,
278 : GIFBS_IsThumb,
279 : GIFBS_IsThumb2,
280 : GIFBS_NoHonorSignDependentRounding,
281 : GIFBS_DontUseNEONForFP_HasVFP2,
282 : GIFBS_HasCrypto_HasV8,
283 : GIFBS_HasDB_IsARM,
284 : GIFBS_HasDB_IsThumb,
285 : GIFBS_HasDPVFP_HasFPARMv8,
286 : GIFBS_HasDPVFP_HasVFP2,
287 : GIFBS_HasDPVFP_HasVFP4,
288 : GIFBS_HasDPVFP_NoHonorSignDependentRounding,
289 : GIFBS_HasDSP_IsThumb2,
290 : GIFBS_HasDivideInARM_IsARM,
291 : GIFBS_HasFP16_HasNEON,
292 : GIFBS_HasFullFP16_HasNEON,
293 : GIFBS_HasNEON_HasV8,
294 : GIFBS_HasNEON_HasV8_1a,
295 : GIFBS_HasV5T_IsARM,
296 : GIFBS_HasV5TE_IsARM,
297 : GIFBS_HasV6_IsARM,
298 : GIFBS_HasV6K_IsARM,
299 : GIFBS_HasV6M_IsThumb,
300 : GIFBS_HasV6T2_IsARM,
301 : GIFBS_HasV6T2_IsThumb2,
302 : GIFBS_HasV7_IsARM,
303 : GIFBS_HasV7Clrex_IsThumb,
304 : GIFBS_HasV8MBaseline_IsThumb,
305 : GIFBS_HasVFP2_UseVMOVSR,
306 : GIFBS_IsARM_NoV6,
307 : GIFBS_IsARM_PreV8,
308 : GIFBS_IsThumb_IsThumb1Only,
309 : GIFBS_IsThumb_IsWindows,
310 : GIFBS_IsThumb_UseMovt,
311 : GIFBS_IsThumb2_PreV8,
312 : GIFBS_IsThumb2_UseMulOps,
313 : GIFBS_HasCRC_HasV8_IsARM,
314 : GIFBS_HasCRC_HasV8_IsThumb2,
315 : GIFBS_HasDSP_IsThumb2_UseMulOps,
316 : GIFBS_HasDivideInThumb_HasV8MBaseline_IsThumb,
317 : GIFBS_HasFullFP16_HasNEON_HasV8,
318 : GIFBS_HasFullFP16_HasNEON_UseFPVMLx,
319 : GIFBS_HasFullFP16_HasNEON_UseFusedMAC,
320 : GIFBS_HasV5TE_IsARM_UseMulOps,
321 : GIFBS_HasV6_IsARM_UseMulOps,
322 : GIFBS_HasV6_IsThumb_IsThumb1Only,
323 : GIFBS_HasV6T2_IsARM_UseMulOps,
324 : GIFBS_IsARM_NoV6_UseMulOps,
325 : };
326 : const static PredicateBitset FeatureBitsets[] {
327 : {}, // GIFBS_Invalid
328 : {Feature_HasDotProdBit, },
329 : {Feature_HasFPARMv8Bit, },
330 : {Feature_HasFullFP16Bit, },
331 : {Feature_HasNEONBit, },
332 : {Feature_HasVFP2Bit, },
333 : {Feature_HasVFP4Bit, },
334 : {Feature_IsARMBit, },
335 : {Feature_IsBEBit, },
336 : {Feature_IsLEBit, },
337 : {Feature_IsThumbBit, },
338 : {Feature_IsThumb2Bit, },
339 : {Feature_NoHonorSignDependentRoundingBit, },
340 : {Feature_DontUseNEONForFPBit, Feature_HasVFP2Bit, },
341 : {Feature_HasCryptoBit, Feature_HasV8Bit, },
342 : {Feature_HasDBBit, Feature_IsARMBit, },
343 : {Feature_HasDBBit, Feature_IsThumbBit, },
344 : {Feature_HasDPVFPBit, Feature_HasFPARMv8Bit, },
345 : {Feature_HasDPVFPBit, Feature_HasVFP2Bit, },
346 : {Feature_HasDPVFPBit, Feature_HasVFP4Bit, },
347 : {Feature_HasDPVFPBit, Feature_NoHonorSignDependentRoundingBit, },
348 : {Feature_HasDSPBit, Feature_IsThumb2Bit, },
349 : {Feature_HasDivideInARMBit, Feature_IsARMBit, },
350 : {Feature_HasFP16Bit, Feature_HasNEONBit, },
351 : {Feature_HasFullFP16Bit, Feature_HasNEONBit, },
352 : {Feature_HasNEONBit, Feature_HasV8Bit, },
353 : {Feature_HasNEONBit, Feature_HasV8_1aBit, },
354 : {Feature_HasV5TBit, Feature_IsARMBit, },
355 : {Feature_HasV5TEBit, Feature_IsARMBit, },
356 : {Feature_HasV6Bit, Feature_IsARMBit, },
357 : {Feature_HasV6KBit, Feature_IsARMBit, },
358 : {Feature_HasV6MBit, Feature_IsThumbBit, },
359 : {Feature_HasV6T2Bit, Feature_IsARMBit, },
360 : {Feature_HasV6T2Bit, Feature_IsThumb2Bit, },
361 : {Feature_HasV7Bit, Feature_IsARMBit, },
362 : {Feature_HasV7ClrexBit, Feature_IsThumbBit, },
363 : {Feature_HasV8MBaselineBit, Feature_IsThumbBit, },
364 : {Feature_HasVFP2Bit, Feature_UseVMOVSRBit, },
365 : {Feature_IsARMBit, Feature_NoV6Bit, },
366 : {Feature_IsARMBit, Feature_PreV8Bit, },
367 : {Feature_IsThumbBit, Feature_IsThumb1OnlyBit, },
368 : {Feature_IsThumbBit, Feature_IsWindowsBit, },
369 : {Feature_IsThumbBit, Feature_UseMovtBit, },
370 : {Feature_IsThumb2Bit, Feature_PreV8Bit, },
371 : {Feature_IsThumb2Bit, Feature_UseMulOpsBit, },
372 : {Feature_HasCRCBit, Feature_HasV8Bit, Feature_IsARMBit, },
373 : {Feature_HasCRCBit, Feature_HasV8Bit, Feature_IsThumb2Bit, },
374 : {Feature_HasDSPBit, Feature_IsThumb2Bit, Feature_UseMulOpsBit, },
375 : {Feature_HasDivideInThumbBit, Feature_HasV8MBaselineBit, Feature_IsThumbBit, },
376 : {Feature_HasFullFP16Bit, Feature_HasNEONBit, Feature_HasV8Bit, },
377 : {Feature_HasFullFP16Bit, Feature_HasNEONBit, Feature_UseFPVMLxBit, },
378 : {Feature_HasFullFP16Bit, Feature_HasNEONBit, Feature_UseFusedMACBit, },
379 : {Feature_HasV5TEBit, Feature_IsARMBit, Feature_UseMulOpsBit, },
380 : {Feature_HasV6Bit, Feature_IsARMBit, Feature_UseMulOpsBit, },
381 : {Feature_HasV6Bit, Feature_IsThumbBit, Feature_IsThumb1OnlyBit, },
382 : {Feature_HasV6T2Bit, Feature_IsARMBit, Feature_UseMulOpsBit, },
383 : {Feature_IsARMBit, Feature_NoV6Bit, Feature_UseMulOpsBit, },
384 : };
385 :
386 : // ComplexPattern predicates.
387 : enum {
388 : GICP_Invalid,
389 : };
390 : // See constructor for table contents
391 :
392 : // PatFrag predicates.
393 : enum {
394 : GIPFP_I64_Predicate_VectorIndex16 = GIPFP_I64_Invalid + 1,
395 : GIPFP_I64_Predicate_VectorIndex32,
396 : GIPFP_I64_Predicate_VectorIndex64,
397 : GIPFP_I64_Predicate_VectorIndex8,
398 : GIPFP_I64_Predicate_imm0_15,
399 : GIPFP_I64_Predicate_imm0_239,
400 : GIPFP_I64_Predicate_imm0_255,
401 : GIPFP_I64_Predicate_imm0_31,
402 : GIPFP_I64_Predicate_imm0_32,
403 : GIPFP_I64_Predicate_imm0_4095,
404 : GIPFP_I64_Predicate_imm0_63,
405 : GIPFP_I64_Predicate_imm0_65535,
406 : GIPFP_I64_Predicate_imm0_65535_neg,
407 : GIPFP_I64_Predicate_imm0_7,
408 : GIPFP_I64_Predicate_imm16,
409 : GIPFP_I64_Predicate_imm16_31,
410 : GIPFP_I64_Predicate_imm1_15,
411 : GIPFP_I64_Predicate_imm1_16,
412 : GIPFP_I64_Predicate_imm1_31,
413 : GIPFP_I64_Predicate_imm1_7,
414 : GIPFP_I64_Predicate_imm24b,
415 : GIPFP_I64_Predicate_imm256_510,
416 : GIPFP_I64_Predicate_imm32,
417 : GIPFP_I64_Predicate_imm8,
418 : GIPFP_I64_Predicate_imm8_255,
419 : GIPFP_I64_Predicate_imm8_or_16,
420 : GIPFP_I64_Predicate_mod_imm,
421 : GIPFP_I64_Predicate_pkh_asr_amt,
422 : GIPFP_I64_Predicate_pkh_lsl_amt,
423 : GIPFP_I64_Predicate_shr_imm16,
424 : GIPFP_I64_Predicate_shr_imm32,
425 : GIPFP_I64_Predicate_shr_imm64,
426 : GIPFP_I64_Predicate_shr_imm8,
427 : GIPFP_I64_Predicate_t2_so_imm,
428 : GIPFP_I64_Predicate_t2_so_imm_neg,
429 : };
430 71 : bool ARMInstructionSelector::testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const {
431 71 : switch (PredicateID) {
432 0 : case GIPFP_I64_Predicate_VectorIndex16: {
433 :
434 0 : return ((uint64_t)Imm) < 4;
435 :
436 : llvm_unreachable("ImmediateCode should have returned");
437 : return false;
438 : }
439 0 : case GIPFP_I64_Predicate_VectorIndex32: {
440 :
441 0 : return ((uint64_t)Imm) < 2;
442 :
443 : llvm_unreachable("ImmediateCode should have returned");
444 : return false;
445 : }
446 0 : case GIPFP_I64_Predicate_VectorIndex64: {
447 :
448 0 : return ((uint64_t)Imm) < 1;
449 :
450 : llvm_unreachable("ImmediateCode should have returned");
451 : return false;
452 : }
453 0 : case GIPFP_I64_Predicate_VectorIndex8: {
454 :
455 0 : return ((uint64_t)Imm) < 8;
456 :
457 : llvm_unreachable("ImmediateCode should have returned");
458 : return false;
459 : }
460 0 : case GIPFP_I64_Predicate_imm0_15: {
461 :
462 0 : return Imm >= 0 && Imm < 16;
463 :
464 : llvm_unreachable("ImmediateCode should have returned");
465 : return false;
466 : }
467 0 : case GIPFP_I64_Predicate_imm0_239: {
468 0 : return Imm >= 0 && Imm < 240;
469 : llvm_unreachable("ImmediateCode should have returned");
470 : return false;
471 : }
472 0 : case GIPFP_I64_Predicate_imm0_255: {
473 0 : return Imm >= 0 && Imm < 256;
474 : llvm_unreachable("ImmediateCode should have returned");
475 : return false;
476 : }
477 0 : case GIPFP_I64_Predicate_imm0_31: {
478 :
479 0 : return Imm >= 0 && Imm < 32;
480 :
481 : llvm_unreachable("ImmediateCode should have returned");
482 : return false;
483 : }
484 0 : case GIPFP_I64_Predicate_imm0_32: {
485 :
486 0 : return Imm >= 0 && Imm < 33;
487 :
488 : llvm_unreachable("ImmediateCode should have returned");
489 : return false;
490 : }
491 0 : case GIPFP_I64_Predicate_imm0_4095: {
492 :
493 0 : return Imm >= 0 && Imm < 4096;
494 :
495 : llvm_unreachable("ImmediateCode should have returned");
496 : return false;
497 : }
498 0 : case GIPFP_I64_Predicate_imm0_63: {
499 :
500 0 : return Imm >= 0 && Imm < 64;
501 :
502 : llvm_unreachable("ImmediateCode should have returned");
503 : return false;
504 : }
505 1 : case GIPFP_I64_Predicate_imm0_65535: {
506 :
507 1 : return Imm >= 0 && Imm < 65536;
508 :
509 : llvm_unreachable("ImmediateCode should have returned");
510 : return false;
511 : }
512 0 : case GIPFP_I64_Predicate_imm0_65535_neg: {
513 :
514 0 : return -Imm >= 0 && -Imm < 65536;
515 :
516 : llvm_unreachable("ImmediateCode should have returned");
517 : return false;
518 : }
519 0 : case GIPFP_I64_Predicate_imm0_7: {
520 :
521 0 : return Imm >= 0 && Imm < 8;
522 :
523 : llvm_unreachable("ImmediateCode should have returned");
524 : return false;
525 : }
526 1 : case GIPFP_I64_Predicate_imm16: {
527 1 : return Imm == 16;
528 : llvm_unreachable("ImmediateCode should have returned");
529 : return false;
530 : }
531 2 : case GIPFP_I64_Predicate_imm16_31: {
532 :
533 2 : return (int32_t)Imm >= 16 && (int32_t)Imm < 32;
534 :
535 : llvm_unreachable("ImmediateCode should have returned");
536 : return false;
537 : }
538 1 : case GIPFP_I64_Predicate_imm1_15: {
539 1 : return Imm > 0 && Imm < 16;
540 : llvm_unreachable("ImmediateCode should have returned");
541 : return false;
542 : }
543 0 : case GIPFP_I64_Predicate_imm1_16: {
544 :
545 0 : return Imm > 0 && Imm <= 16;
546 :
547 : llvm_unreachable("ImmediateCode should have returned");
548 : return false;
549 : }
550 0 : case GIPFP_I64_Predicate_imm1_31: {
551 0 : return Imm > 0 && Imm < 32;
552 : llvm_unreachable("ImmediateCode should have returned");
553 : return false;
554 : }
555 0 : case GIPFP_I64_Predicate_imm1_7: {
556 0 : return Imm > 0 && Imm < 8;
557 : llvm_unreachable("ImmediateCode should have returned");
558 : return false;
559 : }
560 0 : case GIPFP_I64_Predicate_imm24b: {
561 :
562 0 : return Imm >= 0 && Imm <= 0xffffff;
563 :
564 : llvm_unreachable("ImmediateCode should have returned");
565 : return false;
566 : }
567 0 : case GIPFP_I64_Predicate_imm256_510: {
568 :
569 0 : return Imm >= 256 && Imm < 511;
570 :
571 : llvm_unreachable("ImmediateCode should have returned");
572 : return false;
573 : }
574 0 : case GIPFP_I64_Predicate_imm32: {
575 0 : return Imm == 32;
576 : llvm_unreachable("ImmediateCode should have returned");
577 : return false;
578 : }
579 0 : case GIPFP_I64_Predicate_imm8: {
580 0 : return Imm == 8;
581 : llvm_unreachable("ImmediateCode should have returned");
582 : return false;
583 : }
584 0 : case GIPFP_I64_Predicate_imm8_255: {
585 :
586 0 : return Imm >= 8 && Imm < 256;
587 :
588 : llvm_unreachable("ImmediateCode should have returned");
589 : return false;
590 : }
591 0 : case GIPFP_I64_Predicate_imm8_or_16: {
592 0 : return Imm == 8 || Imm == 16;
593 : llvm_unreachable("ImmediateCode should have returned");
594 : return false;
595 : }
596 63 : case GIPFP_I64_Predicate_mod_imm: {
597 :
598 63 : return ARM_AM::getSOImmVal(Imm) != -1;
599 :
600 : llvm_unreachable("ImmediateCode should have returned");
601 : return false;
602 : }
603 0 : case GIPFP_I64_Predicate_pkh_asr_amt: {
604 0 : return Imm > 0 && Imm <= 32;
605 : llvm_unreachable("ImmediateCode should have returned");
606 : return false;
607 : }
608 3 : case GIPFP_I64_Predicate_pkh_lsl_amt: {
609 3 : return Imm >= 0 && Imm < 32;
610 : llvm_unreachable("ImmediateCode should have returned");
611 : return false;
612 : }
613 0 : case GIPFP_I64_Predicate_shr_imm16: {
614 0 : return Imm > 0 && Imm <= 16;
615 : llvm_unreachable("ImmediateCode should have returned");
616 : return false;
617 : }
618 0 : case GIPFP_I64_Predicate_shr_imm32: {
619 0 : return Imm > 0 && Imm <= 32;
620 : llvm_unreachable("ImmediateCode should have returned");
621 : return false;
622 : }
623 0 : case GIPFP_I64_Predicate_shr_imm64: {
624 0 : return Imm > 0 && Imm <= 64;
625 : llvm_unreachable("ImmediateCode should have returned");
626 : return false;
627 : }
628 0 : case GIPFP_I64_Predicate_shr_imm8: {
629 0 : return Imm > 0 && Imm <= 8;
630 : llvm_unreachable("ImmediateCode should have returned");
631 : return false;
632 : }
633 0 : case GIPFP_I64_Predicate_t2_so_imm: {
634 :
635 0 : return ARM_AM::getT2SOImmVal(Imm) != -1;
636 :
637 : llvm_unreachable("ImmediateCode should have returned");
638 : return false;
639 : }
640 0 : case GIPFP_I64_Predicate_t2_so_imm_neg: {
641 :
642 0 : return Imm && ARM_AM::getT2SOImmVal(-(uint32_t)Imm) != -1;
643 :
644 : llvm_unreachable("ImmediateCode should have returned");
645 : return false;
646 : }
647 : }
648 0 : llvm_unreachable("Unknown predicate");
649 : return false;
650 : }
651 0 : bool ARMInstructionSelector::testImmPredicate_APFloat(unsigned PredicateID, const APFloat & Imm) const {
652 0 : llvm_unreachable("Unknown predicate");
653 : return false;
654 : }
655 0 : bool ARMInstructionSelector::testImmPredicate_APInt(unsigned PredicateID, const APInt & Imm) const {
656 0 : llvm_unreachable("Unknown predicate");
657 : return false;
658 : }
659 : // PatFrag predicates.
660 : enum {
661 : GIPFP_MI_Predicate_bf_inv_mask_imm = GIPFP_MI_Invalid + 1,
662 : };
663 0 : bool ARMInstructionSelector::testMIPredicate_MI(unsigned PredicateID, const MachineInstr & MI) const {
664 : const MachineFunction &MF = *MI.getParent()->getParent();
665 : const MachineRegisterInfo &MRI = MF.getRegInfo();
666 : (void)MRI;
667 0 : switch (PredicateID) {
668 0 : case GIPFP_MI_Predicate_bf_inv_mask_imm: {
669 :
670 : // There's better methods of implementing this check. IntImmLeaf<> would be
671 : // equivalent and have less boilerplate but we need a test for C++
672 : // predicates and this one causes new rules to be imported into GlobalISel
673 : // without requiring additional features first.
674 0 : const auto &MO = MI.getOperand(1);
675 0 : if (!MO.isCImm())
676 : return false;
677 0 : return ARM::isBitFieldInvertedMask(MO.getCImm()->getZExtValue());
678 :
679 : llvm_unreachable("GISelPredicateCode should have returned");
680 : return false;
681 : }
682 : }
683 0 : llvm_unreachable("Unknown predicate");
684 : return false;
685 : }
686 :
687 : ARMInstructionSelector::ComplexMatcherMemFn
688 : ARMInstructionSelector::ComplexPredicateFns[] = {
689 : nullptr, // GICP_Invalid
690 : };
691 :
692 : // Custom renderers.
693 : enum {
694 : GICR_Invalid,
695 : };
696 : ARMInstructionSelector::CustomRendererFn
697 : ARMInstructionSelector::CustomRenderers[] = {
698 : nullptr, // GICP_Invalid
699 : };
700 :
701 706 : bool ARMInstructionSelector::selectImpl(MachineInstr &I, CodeGenCoverage &CoverageInfo) const {
702 706 : MachineFunction &MF = *I.getParent()->getParent();
703 706 : MachineRegisterInfo &MRI = MF.getRegInfo();
704 : // FIXME: This should be computed on a per-function basis rather than per-insn.
705 706 : AvailableFunctionFeatures = computeAvailableFunctionFeatures(&STI, &MF);
706 706 : const PredicateBitset AvailableFeatures = getAvailableFeatures();
707 : NewMIVector OutMIs;
708 : State.MIs.clear();
709 706 : State.MIs.push_back(&I);
710 :
711 706 : if (executeMatchTable(*this, OutMIs, State, ISelInfo, getMatchTable(), TII, MRI, TRI, RBI, AvailableFeatures, CoverageInfo)) {
712 233 : return true;
713 : }
714 :
715 : return false;
716 : }
717 :
718 0 : const int64_t *ARMInstructionSelector::getMatchTable() const {
719 : constexpr static int64_t MatchTable0[] = {
720 : GIM_SwitchOpcode, /*MI*/0, /*[*/34, 135, /*)*//*default:*//*Label 35*/ 61588,
721 : /*TargetOpcode::G_ADD*//*Label 0*/ 106,
722 : /*TargetOpcode::G_SUB*//*Label 1*/ 6657,
723 : /*TargetOpcode::G_MUL*//*Label 2*/ 8647,
724 : /*TargetOpcode::G_SDIV*//*Label 3*/ 9281,
725 : /*TargetOpcode::G_UDIV*//*Label 4*/ 9381, 0, 0,
726 : /*TargetOpcode::G_AND*//*Label 5*/ 9481,
727 : /*TargetOpcode::G_OR*//*Label 6*/ 11194,
728 : /*TargetOpcode::G_XOR*//*Label 7*/ 15377, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
729 : /*TargetOpcode::G_BITCAST*//*Label 8*/ 15876, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
730 : /*TargetOpcode::G_INTRINSIC*//*Label 9*/ 20264,
731 : /*TargetOpcode::G_INTRINSIC_W_SIDE_EFFECTS*//*Label 10*/ 49635,
732 : /*TargetOpcode::G_ANYEXT*//*Label 11*/ 53964,
733 : /*TargetOpcode::G_TRUNC*//*Label 12*/ 54087,
734 : /*TargetOpcode::G_CONSTANT*//*Label 13*/ 54216, 0, 0, 0,
735 : /*TargetOpcode::G_SEXT*//*Label 14*/ 54381,
736 : /*TargetOpcode::G_ZEXT*//*Label 15*/ 54510,
737 : /*TargetOpcode::G_SHL*//*Label 16*/ 55020,
738 : /*TargetOpcode::G_LSHR*//*Label 17*/ 55125,
739 : /*TargetOpcode::G_ASHR*//*Label 18*/ 55183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
740 : /*TargetOpcode::G_FADD*//*Label 19*/ 55396,
741 : /*TargetOpcode::G_FSUB*//*Label 20*/ 56027,
742 : /*TargetOpcode::G_FMUL*//*Label 21*/ 56642,
743 : /*TargetOpcode::G_FMA*//*Label 22*/ 57225,
744 : /*TargetOpcode::G_FDIV*//*Label 23*/ 58246, 0, 0, 0, 0, 0, 0,
745 : /*TargetOpcode::G_FNEG*//*Label 24*/ 58409,
746 : /*TargetOpcode::G_FPEXT*//*Label 25*/ 59326,
747 : /*TargetOpcode::G_FPTRUNC*//*Label 26*/ 59483,
748 : /*TargetOpcode::G_FPTOSI*//*Label 27*/ 59644,
749 : /*TargetOpcode::G_FPTOUI*//*Label 28*/ 59984,
750 : /*TargetOpcode::G_SITOFP*//*Label 29*/ 60324,
751 : /*TargetOpcode::G_UITOFP*//*Label 30*/ 60661, 0, 0, 0,
752 : /*TargetOpcode::G_BR*//*Label 31*/ 60998, 0, 0, 0, 0, 0,
753 : /*TargetOpcode::G_CTLZ*//*Label 32*/ 61060, 0,
754 : /*TargetOpcode::G_CTPOP*//*Label 33*/ 61386,
755 : /*TargetOpcode::G_BSWAP*//*Label 34*/ 61474,
756 : // Label 0: @106
757 : GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 10, /*)*//*default:*//*Label 45*/ 6656,
758 : /*GILLT_s32*//*Label 36*/ 121,
759 : /*GILLT_s64*//*Label 37*/ 1799,
760 : /*GILLT_v2s32*//*Label 38*/ 1850,
761 : /*GILLT_v2s64*//*Label 39*/ 2310,
762 : /*GILLT_v4s16*//*Label 40*/ 3028,
763 : /*GILLT_v4s32*//*Label 41*/ 3488,
764 : /*GILLT_v8s8*//*Label 42*/ 4612,
765 : /*GILLT_v8s16*//*Label 43*/ 5072,
766 : /*GILLT_v16s8*//*Label 44*/ 6196,
767 : // Label 36: @121
768 : GIM_Try, /*On fail goto*//*Label 46*/ 1798,
769 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
770 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
771 : GIM_Try, /*On fail goto*//*Label 47*/ 197, // Rule ID 2759 //
772 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
773 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
774 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
775 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
776 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
777 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
778 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRRegClassID,
779 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 255,
780 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
781 : GIM_CheckIsSafeToFold, /*InsnID*/1,
782 : // (add:{ *:[i32] } (and:{ *:[i32] } GPR:{ *:[i32] }:$Rm, 255:{ *:[i32] }), GPR:{ *:[i32] }:$Rn) => (UXTAB:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
783 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UXTAB,
784 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
785 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
786 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
787 : GIR_AddImm, /*InsnID*/0, /*Imm*/0,
788 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
789 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
790 : GIR_EraseFromParent, /*InsnID*/0,
791 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
792 : // GIR_Coverage, 2759,
793 : GIR_Done,
794 : // Label 47: @197
795 : GIM_Try, /*On fail goto*//*Label 48*/ 263, // Rule ID 2760 //
796 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
797 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
798 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
799 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
800 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
801 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
802 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRRegClassID,
803 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 65535,
804 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
805 : GIM_CheckIsSafeToFold, /*InsnID*/1,
806 : // (add:{ *:[i32] } (and:{ *:[i32] } GPR:{ *:[i32] }:$Rm, 65535:{ *:[i32] }), GPR:{ *:[i32] }:$Rn) => (UXTAH:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
807 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UXTAH,
808 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
809 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
810 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
811 : GIR_AddImm, /*InsnID*/0, /*Imm*/0,
812 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
813 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
814 : GIR_EraseFromParent, /*InsnID*/0,
815 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
816 : // GIR_Coverage, 2760,
817 : GIR_Done,
818 : // Label 48: @263
819 : GIM_Try, /*On fail goto*//*Label 49*/ 329, // Rule ID 2789 //
820 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
821 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
822 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
823 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
824 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
825 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
826 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
827 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 255,
828 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
829 : GIM_CheckIsSafeToFold, /*InsnID*/1,
830 : // (add:{ *:[i32] } (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 255:{ *:[i32] }), rGPR:{ *:[i32] }:$Rn) => (t2UXTAB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
831 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UXTAB,
832 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
833 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
834 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
835 : GIR_AddImm, /*InsnID*/0, /*Imm*/0,
836 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
837 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
838 : GIR_EraseFromParent, /*InsnID*/0,
839 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
840 : // GIR_Coverage, 2789,
841 : GIR_Done,
842 : // Label 49: @329
843 : GIM_Try, /*On fail goto*//*Label 50*/ 395, // Rule ID 2790 //
844 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
845 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
846 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
847 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
848 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
849 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
850 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
851 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 65535,
852 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
853 : GIM_CheckIsSafeToFold, /*InsnID*/1,
854 : // (add:{ *:[i32] } (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 65535:{ *:[i32] }), rGPR:{ *:[i32] }:$Rn) => (t2UXTAH:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
855 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UXTAH,
856 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
857 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
858 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
859 : GIR_AddImm, /*InsnID*/0, /*Imm*/0,
860 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
861 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
862 : GIR_EraseFromParent, /*InsnID*/0,
863 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
864 : // GIR_Coverage, 2790,
865 : GIR_Done,
866 : // Label 50: @395
867 : GIM_Try, /*On fail goto*//*Label 51*/ 461, // Rule ID 1817 //
868 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
869 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
870 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
871 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
872 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
873 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
874 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
875 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRRegClassID,
876 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 255,
877 : GIM_CheckIsSafeToFold, /*InsnID*/1,
878 : // (add:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (and:{ *:[i32] } GPR:{ *:[i32] }:$Rm, 255:{ *:[i32] })) => (UXTAB:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
879 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UXTAB,
880 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
881 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
882 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
883 : GIR_AddImm, /*InsnID*/0, /*Imm*/0,
884 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
885 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
886 : GIR_EraseFromParent, /*InsnID*/0,
887 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
888 : // GIR_Coverage, 1817,
889 : GIR_Done,
890 : // Label 51: @461
891 : GIM_Try, /*On fail goto*//*Label 52*/ 527, // Rule ID 1818 //
892 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
893 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
894 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
895 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
896 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
897 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
898 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
899 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRRegClassID,
900 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 65535,
901 : GIM_CheckIsSafeToFold, /*InsnID*/1,
902 : // (add:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (and:{ *:[i32] } GPR:{ *:[i32] }:$Rm, 65535:{ *:[i32] })) => (UXTAH:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
903 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UXTAH,
904 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
905 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
906 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
907 : GIR_AddImm, /*InsnID*/0, /*Imm*/0,
908 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
909 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
910 : GIR_EraseFromParent, /*InsnID*/0,
911 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
912 : // GIR_Coverage, 1818,
913 : GIR_Done,
914 : // Label 52: @527
915 : GIM_Try, /*On fail goto*//*Label 53*/ 593, // Rule ID 2007 //
916 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
917 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
918 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
919 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
920 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
921 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
922 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
923 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
924 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 255,
925 : GIM_CheckIsSafeToFold, /*InsnID*/1,
926 : // (add:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 255:{ *:[i32] })) => (t2UXTAB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
927 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UXTAB,
928 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
929 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
930 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
931 : GIR_AddImm, /*InsnID*/0, /*Imm*/0,
932 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
933 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
934 : GIR_EraseFromParent, /*InsnID*/0,
935 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
936 : // GIR_Coverage, 2007,
937 : GIR_Done,
938 : // Label 53: @593
939 : GIM_Try, /*On fail goto*//*Label 54*/ 659, // Rule ID 2008 //
940 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
941 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
942 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
943 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
944 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
945 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
946 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
947 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
948 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 65535,
949 : GIM_CheckIsSafeToFold, /*InsnID*/1,
950 : // (add:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 65535:{ *:[i32] })) => (t2UXTAH:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
951 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UXTAH,
952 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
953 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
954 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
955 : GIR_AddImm, /*InsnID*/0, /*Imm*/0,
956 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
957 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
958 : GIR_EraseFromParent, /*InsnID*/0,
959 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
960 : // GIR_Coverage, 2008,
961 : GIR_Done,
962 : // Label 54: @659
963 : GIM_Try, /*On fail goto*//*Label 55*/ 768, // Rule ID 2544 //
964 : GIM_CheckFeatures, GIFBS_HasV5TE_IsARM_UseMulOps,
965 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
966 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
967 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
968 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
969 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
970 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
971 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ASHR,
972 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
973 : GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
974 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
975 : GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 16,
976 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/1, /*OpIdx*/2, // MIs[3]
977 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_ASHR,
978 : GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
979 : GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
980 : GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
981 : GIM_CheckConstantInt, /*MI*/3, /*Op*/2, 16,
982 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
983 : GIM_CheckIsSafeToFold, /*InsnID*/1,
984 : GIM_CheckIsSafeToFold, /*InsnID*/2,
985 : GIM_CheckIsSafeToFold, /*InsnID*/3,
986 : // (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)
987 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMLATT,
988 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
989 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rn
990 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // Rm
991 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Ra
992 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
993 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
994 : GIR_EraseFromParent, /*InsnID*/0,
995 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
996 : // GIR_Coverage, 2544,
997 : GIR_Done,
998 : // Label 55: @768
999 : GIM_Try, /*On fail goto*//*Label 56*/ 877, // Rule ID 2581 //
1000 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2_UseMulOps,
1001 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
1002 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1003 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
1004 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
1005 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
1006 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
1007 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ASHR,
1008 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
1009 : GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
1010 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
1011 : GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 16,
1012 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/1, /*OpIdx*/2, // MIs[3]
1013 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_ASHR,
1014 : GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
1015 : GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
1016 : GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
1017 : GIM_CheckConstantInt, /*MI*/3, /*Op*/2, 16,
1018 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
1019 : GIM_CheckIsSafeToFold, /*InsnID*/1,
1020 : GIM_CheckIsSafeToFold, /*InsnID*/2,
1021 : GIM_CheckIsSafeToFold, /*InsnID*/3,
1022 : // (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)
1023 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMLATT,
1024 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
1025 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rn
1026 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // Rm
1027 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Ra
1028 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
1029 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1030 : GIR_EraseFromParent, /*InsnID*/0,
1031 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1032 : // GIR_Coverage, 2581,
1033 : GIR_Done,
1034 : // Label 56: @877
1035 : GIM_Try, /*On fail goto*//*Label 57*/ 986, // Rule ID 194 //
1036 : GIM_CheckFeatures, GIFBS_HasV5TE_IsARM_UseMulOps,
1037 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
1038 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
1039 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1040 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
1041 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
1042 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
1043 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
1044 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ASHR,
1045 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
1046 : GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
1047 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
1048 : GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 16,
1049 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/1, /*OpIdx*/2, // MIs[3]
1050 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_ASHR,
1051 : GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
1052 : GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
1053 : GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
1054 : GIM_CheckConstantInt, /*MI*/3, /*Op*/2, 16,
1055 : GIM_CheckIsSafeToFold, /*InsnID*/1,
1056 : GIM_CheckIsSafeToFold, /*InsnID*/2,
1057 : GIM_CheckIsSafeToFold, /*InsnID*/3,
1058 : // (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)
1059 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMLATT,
1060 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
1061 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rn
1062 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // Rm
1063 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Ra
1064 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
1065 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1066 : GIR_EraseFromParent, /*InsnID*/0,
1067 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1068 : // GIR_Coverage, 194,
1069 : GIR_Done,
1070 : // Label 57: @986
1071 : GIM_Try, /*On fail goto*//*Label 58*/ 1095, // Rule ID 525 //
1072 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2_UseMulOps,
1073 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
1074 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
1075 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1076 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
1077 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
1078 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
1079 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
1080 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ASHR,
1081 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
1082 : GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
1083 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
1084 : GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 16,
1085 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/1, /*OpIdx*/2, // MIs[3]
1086 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_ASHR,
1087 : GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
1088 : GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
1089 : GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
1090 : GIM_CheckConstantInt, /*MI*/3, /*Op*/2, 16,
1091 : GIM_CheckIsSafeToFold, /*InsnID*/1,
1092 : GIM_CheckIsSafeToFold, /*InsnID*/2,
1093 : GIM_CheckIsSafeToFold, /*InsnID*/3,
1094 : // (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)
1095 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMLATT,
1096 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
1097 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rn
1098 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // Rm
1099 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Ra
1100 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
1101 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1102 : GIR_EraseFromParent, /*InsnID*/0,
1103 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1104 : // GIR_Coverage, 525,
1105 : GIR_Done,
1106 : // Label 58: @1095
1107 : GIM_Try, /*On fail goto*//*Label 59*/ 1147, // Rule ID 74 //
1108 : GIM_CheckFeatures, GIFBS_IsARM,
1109 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
1110 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
1111 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1112 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
1113 : GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_mod_imm,
1114 : // MIs[1] Operand 1
1115 : // No operand predicates
1116 : GIM_CheckIsSafeToFold, /*InsnID*/1,
1117 : // (add:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm) => (ADDri:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
1118 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::ADDri,
1119 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
1120 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
1121 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
1122 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
1123 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1124 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1125 : GIR_EraseFromParent, /*InsnID*/0,
1126 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1127 : // GIR_Coverage, 74,
1128 : GIR_Done,
1129 : // Label 59: @1147
1130 : GIM_Try, /*On fail goto*//*Label 60*/ 1199, // Rule ID 411 //
1131 : GIM_CheckFeatures, GIFBS_IsThumb2,
1132 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
1133 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
1134 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1135 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
1136 : GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_t2_so_imm,
1137 : // MIs[1] Operand 1
1138 : // No operand predicates
1139 : GIM_CheckIsSafeToFold, /*InsnID*/1,
1140 : // (add:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm) => (t2ADDri:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
1141 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2ADDri,
1142 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
1143 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
1144 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
1145 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
1146 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1147 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1148 : GIR_EraseFromParent, /*InsnID*/0,
1149 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1150 : // GIR_Coverage, 411,
1151 : GIR_Done,
1152 : // Label 60: @1199
1153 : GIM_Try, /*On fail goto*//*Label 61*/ 1248, // Rule ID 412 //
1154 : GIM_CheckFeatures, GIFBS_IsThumb2,
1155 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
1156 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
1157 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1158 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
1159 : GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_4095,
1160 : // MIs[1] Operand 1
1161 : // No operand predicates
1162 : GIM_CheckIsSafeToFold, /*InsnID*/1,
1163 : // (add:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_imm0_4095>>:$imm) => (t2ADDri12:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
1164 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2ADDri12,
1165 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
1166 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
1167 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
1168 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
1169 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1170 : GIR_EraseFromParent, /*InsnID*/0,
1171 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1172 : // GIR_Coverage, 412,
1173 : GIR_Done,
1174 : // Label 61: @1248
1175 : GIM_Try, /*On fail goto*//*Label 62*/ 1318, // Rule ID 173 //
1176 : GIM_CheckFeatures, GIFBS_HasV6_IsARM_UseMulOps,
1177 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
1178 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1179 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
1180 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
1181 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
1182 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
1183 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
1184 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
1185 : GIM_CheckIsSafeToFold, /*InsnID*/1,
1186 : // (add:{ *:[i32] } (mul:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm), GPRnopc:{ *:[i32] }:$Ra) => (MLA:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Ra)
1187 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MLA,
1188 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
1189 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
1190 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rm
1191 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Ra
1192 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
1193 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1194 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1195 : GIR_EraseFromParent, /*InsnID*/0,
1196 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1197 : // GIR_Coverage, 173,
1198 : GIR_Done,
1199 : // Label 62: @1318
1200 : GIM_Try, /*On fail goto*//*Label 63*/ 1388, // Rule ID 174 //
1201 : GIM_CheckFeatures, GIFBS_IsARM_NoV6,
1202 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
1203 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1204 : GIM_CheckOpcode, /*MI*/1, 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_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
1208 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
1209 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
1210 : GIM_CheckIsSafeToFold, /*InsnID*/1,
1211 : // (add:{ *:[i32] } (mul:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm), GPRnopc:{ *:[i32] }:$Ra) => (MLAv5:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Ra)
1212 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MLAv5,
1213 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
1214 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
1215 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rm
1216 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Ra
1217 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
1218 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1219 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1220 : GIR_EraseFromParent, /*InsnID*/0,
1221 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1222 : // GIR_Coverage, 174,
1223 : GIR_Done,
1224 : // Label 63: @1388
1225 : GIM_Try, /*On fail goto*//*Label 64*/ 1455, // Rule ID 507 //
1226 : GIM_CheckFeatures, GIFBS_IsThumb2_UseMulOps,
1227 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
1228 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1229 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
1230 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
1231 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
1232 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
1233 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
1234 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
1235 : GIM_CheckIsSafeToFold, /*InsnID*/1,
1236 : // (add:{ *:[i32] } (mul:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm), rGPR:{ *:[i32] }:$Ra) => (t2MLA:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
1237 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2MLA,
1238 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
1239 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
1240 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rm
1241 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Ra
1242 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
1243 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1244 : GIR_EraseFromParent, /*InsnID*/0,
1245 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1246 : // GIR_Coverage, 507,
1247 : GIR_Done,
1248 : // Label 64: @1455
1249 : GIM_Try, /*On fail goto*//*Label 65*/ 1525, // Rule ID 2538 //
1250 : GIM_CheckFeatures, GIFBS_HasV6_IsARM_UseMulOps,
1251 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
1252 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
1253 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1254 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
1255 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
1256 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
1257 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
1258 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
1259 : GIM_CheckIsSafeToFold, /*InsnID*/1,
1260 : // (add:{ *:[i32] } GPRnopc:{ *:[i32] }:$Ra, (mul:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)) => (MLA:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Ra)
1261 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MLA,
1262 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
1263 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
1264 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rm
1265 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Ra
1266 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
1267 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1268 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1269 : GIR_EraseFromParent, /*InsnID*/0,
1270 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1271 : // GIR_Coverage, 2538,
1272 : GIR_Done,
1273 : // Label 65: @1525
1274 : GIM_Try, /*On fail goto*//*Label 66*/ 1595, // Rule ID 2539 //
1275 : GIM_CheckFeatures, GIFBS_IsARM_NoV6,
1276 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
1277 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
1278 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1279 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
1280 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
1281 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
1282 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
1283 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
1284 : GIM_CheckIsSafeToFold, /*InsnID*/1,
1285 : // (add:{ *:[i32] } GPRnopc:{ *:[i32] }:$Ra, (mul:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)) => (MLAv5:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Ra)
1286 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MLAv5,
1287 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
1288 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
1289 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rm
1290 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Ra
1291 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
1292 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1293 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1294 : GIR_EraseFromParent, /*InsnID*/0,
1295 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1296 : // GIR_Coverage, 2539,
1297 : GIR_Done,
1298 : // Label 66: @1595
1299 : GIM_Try, /*On fail goto*//*Label 67*/ 1662, // Rule ID 2576 //
1300 : GIM_CheckFeatures, GIFBS_IsThumb2_UseMulOps,
1301 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
1302 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
1303 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1304 : GIM_CheckOpcode, /*MI*/1, 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_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
1308 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
1309 : GIM_CheckIsSafeToFold, /*InsnID*/1,
1310 : // (add:{ *:[i32] } rGPR:{ *:[i32] }:$Ra, (mul:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)) => (t2MLA:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
1311 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2MLA,
1312 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
1313 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
1314 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rm
1315 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Ra
1316 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
1317 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1318 : GIR_EraseFromParent, /*InsnID*/0,
1319 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1320 : // GIR_Coverage, 2576,
1321 : GIR_Done,
1322 : // Label 67: @1662
1323 : GIM_Try, /*On fail goto*//*Label 68*/ 1707, // Rule ID 75 //
1324 : GIM_CheckFeatures, GIFBS_IsARM,
1325 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
1326 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
1327 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
1328 : // (add:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) => (ADDrr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
1329 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::ADDrr,
1330 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
1331 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
1332 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
1333 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
1334 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1335 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1336 : GIR_EraseFromParent, /*InsnID*/0,
1337 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1338 : // GIR_Coverage, 75,
1339 : GIR_Done,
1340 : // Label 68: @1707
1341 : GIM_Try, /*On fail goto*//*Label 69*/ 1752, // Rule ID 413 //
1342 : GIM_CheckFeatures, GIFBS_IsThumb2,
1343 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
1344 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
1345 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
1346 : // (add:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2ADDrr:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
1347 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2ADDrr,
1348 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
1349 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
1350 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
1351 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
1352 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1353 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1354 : GIR_EraseFromParent, /*InsnID*/0,
1355 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1356 : // GIR_Coverage, 413,
1357 : GIR_Done,
1358 : // Label 69: @1752
1359 : GIM_Try, /*On fail goto*//*Label 70*/ 1797, // Rule ID 2558 //
1360 : GIM_CheckFeatures, GIFBS_IsThumb2,
1361 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
1362 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
1363 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
1364 : // (add:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rn) => (t2ADDrr:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
1365 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2ADDrr,
1366 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
1367 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
1368 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rm
1369 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
1370 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1371 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1372 : GIR_EraseFromParent, /*InsnID*/0,
1373 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1374 : // GIR_Coverage, 2558,
1375 : GIR_Done,
1376 : // Label 70: @1797
1377 : GIM_Reject,
1378 : // Label 46: @1798
1379 : GIM_Reject,
1380 : // Label 37: @1799
1381 : GIM_Try, /*On fail goto*//*Label 71*/ 1849, // Rule ID 760 //
1382 : GIM_CheckFeatures, GIFBS_HasNEON,
1383 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
1384 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
1385 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
1386 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
1387 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
1388 : // (add:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm) => (VADDv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
1389 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDv1i64,
1390 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
1391 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
1392 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
1393 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
1394 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1395 : GIR_EraseFromParent, /*InsnID*/0,
1396 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1397 : // GIR_Coverage, 760,
1398 : GIR_Done,
1399 : // Label 71: @1849
1400 : GIM_Reject,
1401 : // Label 38: @1850
1402 : GIM_Try, /*On fail goto*//*Label 72*/ 2309,
1403 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
1404 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
1405 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
1406 : GIM_Try, /*On fail goto*//*Label 73*/ 1934, // Rule ID 2696 //
1407 : GIM_CheckFeatures, GIFBS_HasNEON,
1408 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1409 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
1410 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
1411 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabds,
1412 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s32,
1413 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v2s32,
1414 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
1415 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
1416 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
1417 : GIM_CheckIsSafeToFold, /*InsnID*/1,
1418 : // (add:{ *:[v2i32] } (intrinsic_wo_chain:{ *:[v2i32] } 1054:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm), DPR:{ *:[v2i32] }:$src1) => (VABAsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
1419 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAsv2i32,
1420 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
1421 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
1422 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
1423 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
1424 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
1425 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1426 : GIR_EraseFromParent, /*InsnID*/0,
1427 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1428 : // GIR_Coverage, 2696,
1429 : GIR_Done,
1430 : // Label 73: @1934
1431 : GIM_Try, /*On fail goto*//*Label 74*/ 2004, // Rule ID 2702 //
1432 : GIM_CheckFeatures, GIFBS_HasNEON,
1433 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1434 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
1435 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
1436 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabdu,
1437 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s32,
1438 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v2s32,
1439 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
1440 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
1441 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
1442 : GIM_CheckIsSafeToFold, /*InsnID*/1,
1443 : // (add:{ *:[v2i32] } (intrinsic_wo_chain:{ *:[v2i32] } 1055:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm), DPR:{ *:[v2i32] }:$src1) => (VABAuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
1444 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAuv2i32,
1445 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
1446 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
1447 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
1448 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
1449 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
1450 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1451 : GIR_EraseFromParent, /*InsnID*/0,
1452 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1453 : // GIR_Coverage, 2702,
1454 : GIR_Done,
1455 : // Label 74: @2004
1456 : GIM_Try, /*On fail goto*//*Label 75*/ 2074, // Rule ID 1152 //
1457 : GIM_CheckFeatures, GIFBS_HasNEON,
1458 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
1459 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1460 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
1461 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
1462 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabds,
1463 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s32,
1464 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v2s32,
1465 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
1466 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
1467 : GIM_CheckIsSafeToFold, /*InsnID*/1,
1468 : // (add:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, (intrinsic_wo_chain:{ *:[v2i32] } 1054:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)) => (VABAsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
1469 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAsv2i32,
1470 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
1471 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
1472 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
1473 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
1474 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
1475 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1476 : GIR_EraseFromParent, /*InsnID*/0,
1477 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1478 : // GIR_Coverage, 1152,
1479 : GIR_Done,
1480 : // Label 75: @2074
1481 : GIM_Try, /*On fail goto*//*Label 76*/ 2144, // Rule ID 1158 //
1482 : GIM_CheckFeatures, GIFBS_HasNEON,
1483 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
1484 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1485 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
1486 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
1487 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabdu,
1488 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s32,
1489 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v2s32,
1490 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
1491 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
1492 : GIM_CheckIsSafeToFold, /*InsnID*/1,
1493 : // (add:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, (intrinsic_wo_chain:{ *:[v2i32] } 1055:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)) => (VABAuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
1494 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAuv2i32,
1495 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
1496 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
1497 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
1498 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
1499 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
1500 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1501 : GIR_EraseFromParent, /*InsnID*/0,
1502 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1503 : // GIR_Coverage, 1158,
1504 : GIR_Done,
1505 : // Label 76: @2144
1506 : GIM_Try, /*On fail goto*//*Label 77*/ 2207, // Rule ID 2626 //
1507 : GIM_CheckFeatures, GIFBS_HasNEON,
1508 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1509 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
1510 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
1511 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s32,
1512 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
1513 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
1514 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
1515 : GIM_CheckIsSafeToFold, /*InsnID*/1,
1516 : // (add:{ *:[v2i32] } (mul:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm), DPR:{ *:[v2i32] }:$src1) => (VMLAv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
1517 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMLAv2i32,
1518 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
1519 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
1520 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
1521 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
1522 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
1523 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1524 : GIR_EraseFromParent, /*InsnID*/0,
1525 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1526 : // GIR_Coverage, 2626,
1527 : GIR_Done,
1528 : // Label 77: @2207
1529 : GIM_Try, /*On fail goto*//*Label 78*/ 2270, // Rule ID 875 //
1530 : GIM_CheckFeatures, GIFBS_HasNEON,
1531 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
1532 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1533 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
1534 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
1535 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s32,
1536 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
1537 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
1538 : GIM_CheckIsSafeToFold, /*InsnID*/1,
1539 : // (add:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, (mul:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)) => (VMLAv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
1540 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMLAv2i32,
1541 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
1542 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
1543 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
1544 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
1545 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
1546 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1547 : GIR_EraseFromParent, /*InsnID*/0,
1548 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1549 : // GIR_Coverage, 875,
1550 : GIR_Done,
1551 : // Label 78: @2270
1552 : GIM_Try, /*On fail goto*//*Label 79*/ 2308, // Rule ID 756 //
1553 : GIM_CheckFeatures, GIFBS_HasNEON,
1554 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
1555 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
1556 : // (add:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VADDv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
1557 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDv2i32,
1558 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
1559 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
1560 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
1561 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
1562 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1563 : GIR_EraseFromParent, /*InsnID*/0,
1564 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1565 : // GIR_Coverage, 756,
1566 : GIR_Done,
1567 : // Label 79: @2308
1568 : GIM_Reject,
1569 : // Label 72: @2309
1570 : GIM_Reject,
1571 : // Label 39: @2310
1572 : GIM_Try, /*On fail goto*//*Label 80*/ 3027,
1573 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
1574 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
1575 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
1576 : GIM_Try, /*On fail goto*//*Label 81*/ 2407, // Rule ID 2708 //
1577 : GIM_CheckFeatures, GIFBS_HasNEON,
1578 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1579 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
1580 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
1581 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
1582 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_INTRINSIC,
1583 : GIM_CheckNumOperands, /*MI*/2, /*Expected*/4,
1584 : GIM_CheckIntrinsicID, /*MI*/2, /*Op*/1, Intrinsic::arm_neon_vabds,
1585 : GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_v2s32,
1586 : GIM_CheckType, /*MI*/2, /*Op*/3, /*Type*/GILLT_v2s32,
1587 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/2, /*RC*/ARM::DPRRegClassID,
1588 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/3, /*RC*/ARM::DPRRegClassID,
1589 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
1590 : GIM_CheckIsSafeToFold, /*InsnID*/1,
1591 : GIM_CheckIsSafeToFold, /*InsnID*/2,
1592 : // (add:{ *:[v2i64] } (zext:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i32] } 1054:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)), QPR:{ *:[v2i64] }:$src1) => (VABALsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
1593 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABALsv2i64,
1594 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
1595 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
1596 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // Vn
1597 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/3, // Vm
1598 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
1599 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1600 : GIR_EraseFromParent, /*InsnID*/0,
1601 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1602 : // GIR_Coverage, 2708,
1603 : GIR_Done,
1604 : // Label 81: @2407
1605 : GIM_Try, /*On fail goto*//*Label 82*/ 2490, // Rule ID 2711 //
1606 : GIM_CheckFeatures, GIFBS_HasNEON,
1607 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1608 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
1609 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
1610 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
1611 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_INTRINSIC,
1612 : GIM_CheckNumOperands, /*MI*/2, /*Expected*/4,
1613 : GIM_CheckIntrinsicID, /*MI*/2, /*Op*/1, Intrinsic::arm_neon_vabdu,
1614 : GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_v2s32,
1615 : GIM_CheckType, /*MI*/2, /*Op*/3, /*Type*/GILLT_v2s32,
1616 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/2, /*RC*/ARM::DPRRegClassID,
1617 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/3, /*RC*/ARM::DPRRegClassID,
1618 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
1619 : GIM_CheckIsSafeToFold, /*InsnID*/1,
1620 : GIM_CheckIsSafeToFold, /*InsnID*/2,
1621 : // (add:{ *:[v2i64] } (zext:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i32] } 1055:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)), QPR:{ *:[v2i64] }:$src1) => (VABALuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
1622 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABALuv2i64,
1623 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
1624 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
1625 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // Vn
1626 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/3, // Vm
1627 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
1628 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1629 : GIR_EraseFromParent, /*InsnID*/0,
1630 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1631 : // GIR_Coverage, 2711,
1632 : GIR_Done,
1633 : // Label 82: @2490
1634 : GIM_Try, /*On fail goto*//*Label 83*/ 2573, // Rule ID 1164 //
1635 : GIM_CheckFeatures, GIFBS_HasNEON,
1636 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
1637 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1638 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
1639 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
1640 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
1641 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_INTRINSIC,
1642 : GIM_CheckNumOperands, /*MI*/2, /*Expected*/4,
1643 : GIM_CheckIntrinsicID, /*MI*/2, /*Op*/1, Intrinsic::arm_neon_vabds,
1644 : GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_v2s32,
1645 : GIM_CheckType, /*MI*/2, /*Op*/3, /*Type*/GILLT_v2s32,
1646 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/2, /*RC*/ARM::DPRRegClassID,
1647 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/3, /*RC*/ARM::DPRRegClassID,
1648 : GIM_CheckIsSafeToFold, /*InsnID*/1,
1649 : GIM_CheckIsSafeToFold, /*InsnID*/2,
1650 : // (add:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, (zext:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i32] } 1054:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm))) => (VABALsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
1651 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABALsv2i64,
1652 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
1653 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
1654 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // Vn
1655 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/3, // Vm
1656 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
1657 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1658 : GIR_EraseFromParent, /*InsnID*/0,
1659 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1660 : // GIR_Coverage, 1164,
1661 : GIR_Done,
1662 : // Label 83: @2573
1663 : GIM_Try, /*On fail goto*//*Label 84*/ 2656, // Rule ID 1167 //
1664 : GIM_CheckFeatures, GIFBS_HasNEON,
1665 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
1666 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1667 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
1668 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
1669 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
1670 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_INTRINSIC,
1671 : GIM_CheckNumOperands, /*MI*/2, /*Expected*/4,
1672 : GIM_CheckIntrinsicID, /*MI*/2, /*Op*/1, Intrinsic::arm_neon_vabdu,
1673 : GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_v2s32,
1674 : GIM_CheckType, /*MI*/2, /*Op*/3, /*Type*/GILLT_v2s32,
1675 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/2, /*RC*/ARM::DPRRegClassID,
1676 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/3, /*RC*/ARM::DPRRegClassID,
1677 : GIM_CheckIsSafeToFold, /*InsnID*/1,
1678 : GIM_CheckIsSafeToFold, /*InsnID*/2,
1679 : // (add:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, (zext:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i32] } 1055:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm))) => (VABALuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
1680 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABALuv2i64,
1681 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
1682 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
1683 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // Vn
1684 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/3, // Vm
1685 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
1686 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1687 : GIR_EraseFromParent, /*InsnID*/0,
1688 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1689 : // GIR_Coverage, 1167,
1690 : GIR_Done,
1691 : // Label 84: @2656
1692 : GIM_Try, /*On fail goto*//*Label 85*/ 2720, // Rule ID 768 //
1693 : GIM_CheckFeatures, GIFBS_HasNEON,
1694 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1695 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SEXT,
1696 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
1697 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
1698 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
1699 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_SEXT,
1700 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v2s32,
1701 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
1702 : GIM_CheckIsSafeToFold, /*InsnID*/1,
1703 : GIM_CheckIsSafeToFold, /*InsnID*/2,
1704 : // (add:{ *:[v2i64] } (sext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn), (sext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) => (VADDLsv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
1705 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDLsv2i64,
1706 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
1707 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
1708 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
1709 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
1710 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1711 : GIR_EraseFromParent, /*InsnID*/0,
1712 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1713 : // GIR_Coverage, 768,
1714 : GIR_Done,
1715 : // Label 85: @2720
1716 : GIM_Try, /*On fail goto*//*Label 86*/ 2784, // Rule ID 771 //
1717 : GIM_CheckFeatures, GIFBS_HasNEON,
1718 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1719 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
1720 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
1721 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
1722 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
1723 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ZEXT,
1724 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v2s32,
1725 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
1726 : GIM_CheckIsSafeToFold, /*InsnID*/1,
1727 : GIM_CheckIsSafeToFold, /*InsnID*/2,
1728 : // (add:{ *:[v2i64] } (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn), (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) => (VADDLuv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
1729 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDLuv2i64,
1730 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
1731 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
1732 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
1733 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
1734 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1735 : GIR_EraseFromParent, /*InsnID*/0,
1736 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1737 : // GIR_Coverage, 771,
1738 : GIR_Done,
1739 : // Label 86: @2784
1740 : GIM_Try, /*On fail goto*//*Label 87*/ 2835, // Rule ID 2602 //
1741 : GIM_CheckFeatures, GIFBS_HasNEON,
1742 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1743 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SEXT,
1744 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
1745 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
1746 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
1747 : GIM_CheckIsSafeToFold, /*InsnID*/1,
1748 : // (add:{ *:[v2i64] } (sext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm), QPR:{ *:[v2i64] }:$Vn) => (VADDWsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
1749 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDWsv2i64,
1750 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
1751 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
1752 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
1753 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
1754 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1755 : GIR_EraseFromParent, /*InsnID*/0,
1756 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1757 : // GIR_Coverage, 2602,
1758 : GIR_Done,
1759 : // Label 87: @2835
1760 : GIM_Try, /*On fail goto*//*Label 88*/ 2886, // Rule ID 2605 //
1761 : GIM_CheckFeatures, GIFBS_HasNEON,
1762 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1763 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
1764 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
1765 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
1766 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
1767 : GIM_CheckIsSafeToFold, /*InsnID*/1,
1768 : // (add:{ *:[v2i64] } (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm), QPR:{ *:[v2i64] }:$Vn) => (VADDWuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
1769 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDWuv2i64,
1770 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
1771 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
1772 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
1773 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
1774 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1775 : GIR_EraseFromParent, /*InsnID*/0,
1776 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1777 : // GIR_Coverage, 2605,
1778 : GIR_Done,
1779 : // Label 88: @2886
1780 : GIM_Try, /*On fail goto*//*Label 89*/ 2937, // Rule ID 774 //
1781 : GIM_CheckFeatures, GIFBS_HasNEON,
1782 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
1783 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1784 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SEXT,
1785 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
1786 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
1787 : GIM_CheckIsSafeToFold, /*InsnID*/1,
1788 : // (add:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, (sext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) => (VADDWsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
1789 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDWsv2i64,
1790 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
1791 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
1792 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
1793 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
1794 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1795 : GIR_EraseFromParent, /*InsnID*/0,
1796 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1797 : // GIR_Coverage, 774,
1798 : GIR_Done,
1799 : // Label 89: @2937
1800 : GIM_Try, /*On fail goto*//*Label 90*/ 2988, // Rule ID 777 //
1801 : GIM_CheckFeatures, GIFBS_HasNEON,
1802 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
1803 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1804 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
1805 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
1806 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
1807 : GIM_CheckIsSafeToFold, /*InsnID*/1,
1808 : // (add:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) => (VADDWuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
1809 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDWuv2i64,
1810 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
1811 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
1812 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
1813 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
1814 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1815 : GIR_EraseFromParent, /*InsnID*/0,
1816 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1817 : // GIR_Coverage, 777,
1818 : GIR_Done,
1819 : // Label 90: @2988
1820 : GIM_Try, /*On fail goto*//*Label 91*/ 3026, // Rule ID 761 //
1821 : GIM_CheckFeatures, GIFBS_HasNEON,
1822 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
1823 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
1824 : // (add:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm) => (VADDv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
1825 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDv2i64,
1826 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
1827 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
1828 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
1829 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
1830 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1831 : GIR_EraseFromParent, /*InsnID*/0,
1832 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1833 : // GIR_Coverage, 761,
1834 : GIR_Done,
1835 : // Label 91: @3026
1836 : GIM_Reject,
1837 : // Label 80: @3027
1838 : GIM_Reject,
1839 : // Label 40: @3028
1840 : GIM_Try, /*On fail goto*//*Label 92*/ 3487,
1841 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
1842 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
1843 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
1844 : GIM_Try, /*On fail goto*//*Label 93*/ 3112, // Rule ID 2695 //
1845 : GIM_CheckFeatures, GIFBS_HasNEON,
1846 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1847 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
1848 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
1849 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabds,
1850 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
1851 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v4s16,
1852 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
1853 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
1854 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
1855 : GIM_CheckIsSafeToFold, /*InsnID*/1,
1856 : // (add:{ *:[v4i16] } (intrinsic_wo_chain:{ *:[v4i16] } 1054:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm), DPR:{ *:[v4i16] }:$src1) => (VABAsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
1857 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAsv4i16,
1858 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
1859 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
1860 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
1861 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
1862 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
1863 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1864 : GIR_EraseFromParent, /*InsnID*/0,
1865 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1866 : // GIR_Coverage, 2695,
1867 : GIR_Done,
1868 : // Label 93: @3112
1869 : GIM_Try, /*On fail goto*//*Label 94*/ 3182, // Rule ID 2701 //
1870 : GIM_CheckFeatures, GIFBS_HasNEON,
1871 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1872 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
1873 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
1874 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabdu,
1875 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
1876 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v4s16,
1877 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
1878 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
1879 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
1880 : GIM_CheckIsSafeToFold, /*InsnID*/1,
1881 : // (add:{ *:[v4i16] } (intrinsic_wo_chain:{ *:[v4i16] } 1055:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm), DPR:{ *:[v4i16] }:$src1) => (VABAuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
1882 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAuv4i16,
1883 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
1884 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
1885 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
1886 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
1887 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
1888 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1889 : GIR_EraseFromParent, /*InsnID*/0,
1890 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1891 : // GIR_Coverage, 2701,
1892 : GIR_Done,
1893 : // Label 94: @3182
1894 : GIM_Try, /*On fail goto*//*Label 95*/ 3252, // Rule ID 1151 //
1895 : GIM_CheckFeatures, GIFBS_HasNEON,
1896 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
1897 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1898 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
1899 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
1900 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabds,
1901 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
1902 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v4s16,
1903 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
1904 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
1905 : GIM_CheckIsSafeToFold, /*InsnID*/1,
1906 : // (add:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, (intrinsic_wo_chain:{ *:[v4i16] } 1054:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)) => (VABAsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
1907 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAsv4i16,
1908 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
1909 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
1910 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
1911 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
1912 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
1913 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1914 : GIR_EraseFromParent, /*InsnID*/0,
1915 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1916 : // GIR_Coverage, 1151,
1917 : GIR_Done,
1918 : // Label 95: @3252
1919 : GIM_Try, /*On fail goto*//*Label 96*/ 3322, // Rule ID 1157 //
1920 : GIM_CheckFeatures, GIFBS_HasNEON,
1921 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
1922 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1923 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
1924 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
1925 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabdu,
1926 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
1927 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v4s16,
1928 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
1929 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
1930 : GIM_CheckIsSafeToFold, /*InsnID*/1,
1931 : // (add:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, (intrinsic_wo_chain:{ *:[v4i16] } 1055:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)) => (VABAuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
1932 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAuv4i16,
1933 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
1934 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
1935 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
1936 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
1937 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
1938 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1939 : GIR_EraseFromParent, /*InsnID*/0,
1940 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1941 : // GIR_Coverage, 1157,
1942 : GIR_Done,
1943 : // Label 96: @3322
1944 : GIM_Try, /*On fail goto*//*Label 97*/ 3385, // Rule ID 2625 //
1945 : GIM_CheckFeatures, GIFBS_HasNEON,
1946 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1947 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
1948 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
1949 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
1950 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
1951 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
1952 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
1953 : GIM_CheckIsSafeToFold, /*InsnID*/1,
1954 : // (add:{ *:[v4i16] } (mul:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm), DPR:{ *:[v4i16] }:$src1) => (VMLAv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
1955 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMLAv4i16,
1956 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
1957 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
1958 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
1959 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
1960 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
1961 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1962 : GIR_EraseFromParent, /*InsnID*/0,
1963 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1964 : // GIR_Coverage, 2625,
1965 : GIR_Done,
1966 : // Label 97: @3385
1967 : GIM_Try, /*On fail goto*//*Label 98*/ 3448, // Rule ID 874 //
1968 : GIM_CheckFeatures, GIFBS_HasNEON,
1969 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
1970 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1971 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
1972 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
1973 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
1974 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
1975 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
1976 : GIM_CheckIsSafeToFold, /*InsnID*/1,
1977 : // (add:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, (mul:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)) => (VMLAv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
1978 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMLAv4i16,
1979 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
1980 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
1981 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
1982 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
1983 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
1984 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
1985 : GIR_EraseFromParent, /*InsnID*/0,
1986 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1987 : // GIR_Coverage, 874,
1988 : GIR_Done,
1989 : // Label 98: @3448
1990 : GIM_Try, /*On fail goto*//*Label 99*/ 3486, // Rule ID 755 //
1991 : GIM_CheckFeatures, GIFBS_HasNEON,
1992 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
1993 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
1994 : // (add:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VADDv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
1995 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDv4i16,
1996 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
1997 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
1998 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
1999 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
2000 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
2001 : GIR_EraseFromParent, /*InsnID*/0,
2002 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
2003 : // GIR_Coverage, 755,
2004 : GIR_Done,
2005 : // Label 99: @3486
2006 : GIM_Reject,
2007 : // Label 92: @3487
2008 : GIM_Reject,
2009 : // Label 41: @3488
2010 : GIM_Try, /*On fail goto*//*Label 100*/ 4611,
2011 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
2012 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
2013 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
2014 : GIM_Try, /*On fail goto*//*Label 101*/ 3585, // Rule ID 2707 //
2015 : GIM_CheckFeatures, GIFBS_HasNEON,
2016 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2017 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
2018 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
2019 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
2020 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_INTRINSIC,
2021 : GIM_CheckNumOperands, /*MI*/2, /*Expected*/4,
2022 : GIM_CheckIntrinsicID, /*MI*/2, /*Op*/1, Intrinsic::arm_neon_vabds,
2023 : GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_v4s16,
2024 : GIM_CheckType, /*MI*/2, /*Op*/3, /*Type*/GILLT_v4s16,
2025 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/2, /*RC*/ARM::DPRRegClassID,
2026 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/3, /*RC*/ARM::DPRRegClassID,
2027 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
2028 : GIM_CheckIsSafeToFold, /*InsnID*/1,
2029 : GIM_CheckIsSafeToFold, /*InsnID*/2,
2030 : // (add:{ *:[v4i32] } (zext:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i16] } 1054:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)), QPR:{ *:[v4i32] }:$src1) => (VABALsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
2031 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABALsv4i32,
2032 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
2033 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
2034 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // Vn
2035 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/3, // Vm
2036 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
2037 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
2038 : GIR_EraseFromParent, /*InsnID*/0,
2039 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
2040 : // GIR_Coverage, 2707,
2041 : GIR_Done,
2042 : // Label 101: @3585
2043 : GIM_Try, /*On fail goto*//*Label 102*/ 3668, // Rule ID 2710 //
2044 : GIM_CheckFeatures, GIFBS_HasNEON,
2045 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2046 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
2047 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
2048 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
2049 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_INTRINSIC,
2050 : GIM_CheckNumOperands, /*MI*/2, /*Expected*/4,
2051 : GIM_CheckIntrinsicID, /*MI*/2, /*Op*/1, Intrinsic::arm_neon_vabdu,
2052 : GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_v4s16,
2053 : GIM_CheckType, /*MI*/2, /*Op*/3, /*Type*/GILLT_v4s16,
2054 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/2, /*RC*/ARM::DPRRegClassID,
2055 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/3, /*RC*/ARM::DPRRegClassID,
2056 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
2057 : GIM_CheckIsSafeToFold, /*InsnID*/1,
2058 : GIM_CheckIsSafeToFold, /*InsnID*/2,
2059 : // (add:{ *:[v4i32] } (zext:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i16] } 1055:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)), QPR:{ *:[v4i32] }:$src1) => (VABALuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
2060 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABALuv4i32,
2061 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
2062 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
2063 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // Vn
2064 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/3, // Vm
2065 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
2066 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
2067 : GIR_EraseFromParent, /*InsnID*/0,
2068 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
2069 : // GIR_Coverage, 2710,
2070 : GIR_Done,
2071 : // Label 102: @3668
2072 : GIM_Try, /*On fail goto*//*Label 103*/ 3751, // Rule ID 1163 //
2073 : GIM_CheckFeatures, GIFBS_HasNEON,
2074 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
2075 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
2076 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
2077 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
2078 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
2079 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_INTRINSIC,
2080 : GIM_CheckNumOperands, /*MI*/2, /*Expected*/4,
2081 : GIM_CheckIntrinsicID, /*MI*/2, /*Op*/1, Intrinsic::arm_neon_vabds,
2082 : GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_v4s16,
2083 : GIM_CheckType, /*MI*/2, /*Op*/3, /*Type*/GILLT_v4s16,
2084 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/2, /*RC*/ARM::DPRRegClassID,
2085 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/3, /*RC*/ARM::DPRRegClassID,
2086 : GIM_CheckIsSafeToFold, /*InsnID*/1,
2087 : GIM_CheckIsSafeToFold, /*InsnID*/2,
2088 : // (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (zext:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i16] } 1054:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm))) => (VABALsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
2089 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABALsv4i32,
2090 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
2091 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
2092 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // Vn
2093 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/3, // Vm
2094 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
2095 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
2096 : GIR_EraseFromParent, /*InsnID*/0,
2097 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
2098 : // GIR_Coverage, 1163,
2099 : GIR_Done,
2100 : // Label 103: @3751
2101 : GIM_Try, /*On fail goto*//*Label 104*/ 3834, // Rule ID 1166 //
2102 : GIM_CheckFeatures, GIFBS_HasNEON,
2103 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
2104 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
2105 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
2106 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
2107 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
2108 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_INTRINSIC,
2109 : GIM_CheckNumOperands, /*MI*/2, /*Expected*/4,
2110 : GIM_CheckIntrinsicID, /*MI*/2, /*Op*/1, Intrinsic::arm_neon_vabdu,
2111 : GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_v4s16,
2112 : GIM_CheckType, /*MI*/2, /*Op*/3, /*Type*/GILLT_v4s16,
2113 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/2, /*RC*/ARM::DPRRegClassID,
2114 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/3, /*RC*/ARM::DPRRegClassID,
2115 : GIM_CheckIsSafeToFold, /*InsnID*/1,
2116 : GIM_CheckIsSafeToFold, /*InsnID*/2,
2117 : // (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (zext:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i16] } 1055:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm))) => (VABALuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
2118 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABALuv4i32,
2119 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
2120 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
2121 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // Vn
2122 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/3, // Vm
2123 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
2124 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
2125 : GIR_EraseFromParent, /*InsnID*/0,
2126 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
2127 : // GIR_Coverage, 1166,
2128 : GIR_Done,
2129 : // Label 104: @3834
2130 : GIM_Try, /*On fail goto*//*Label 105*/ 3904, // Rule ID 2699 //
2131 : GIM_CheckFeatures, GIFBS_HasNEON,
2132 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2133 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
2134 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
2135 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabds,
2136 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s32,
2137 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v4s32,
2138 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
2139 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::QPRRegClassID,
2140 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
2141 : GIM_CheckIsSafeToFold, /*InsnID*/1,
2142 : // (add:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i32] } 1054:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm), QPR:{ *:[v4i32] }:$src1) => (VABAsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
2143 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAsv4i32,
2144 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
2145 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
2146 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
2147 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
2148 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
2149 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
2150 : GIR_EraseFromParent, /*InsnID*/0,
2151 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
2152 : // GIR_Coverage, 2699,
2153 : GIR_Done,
2154 : // Label 105: @3904
2155 : GIM_Try, /*On fail goto*//*Label 106*/ 3974, // Rule ID 2705 //
2156 : GIM_CheckFeatures, GIFBS_HasNEON,
2157 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2158 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
2159 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
2160 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabdu,
2161 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s32,
2162 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v4s32,
2163 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
2164 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::QPRRegClassID,
2165 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
2166 : GIM_CheckIsSafeToFold, /*InsnID*/1,
2167 : // (add:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i32] } 1055:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm), QPR:{ *:[v4i32] }:$src1) => (VABAuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
2168 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAuv4i32,
2169 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
2170 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
2171 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
2172 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
2173 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
2174 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
2175 : GIR_EraseFromParent, /*InsnID*/0,
2176 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
2177 : // GIR_Coverage, 2705,
2178 : GIR_Done,
2179 : // Label 106: @3974
2180 : GIM_Try, /*On fail goto*//*Label 107*/ 4044, // Rule ID 1155 //
2181 : GIM_CheckFeatures, GIFBS_HasNEON,
2182 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
2183 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
2184 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
2185 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
2186 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabds,
2187 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s32,
2188 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v4s32,
2189 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
2190 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::QPRRegClassID,
2191 : GIM_CheckIsSafeToFold, /*InsnID*/1,
2192 : // (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (intrinsic_wo_chain:{ *:[v4i32] } 1054:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)) => (VABAsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
2193 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAsv4i32,
2194 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
2195 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
2196 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
2197 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
2198 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
2199 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
2200 : GIR_EraseFromParent, /*InsnID*/0,
2201 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
2202 : // GIR_Coverage, 1155,
2203 : GIR_Done,
2204 : // Label 107: @4044
2205 : GIM_Try, /*On fail goto*//*Label 108*/ 4114, // Rule ID 1161 //
2206 : GIM_CheckFeatures, GIFBS_HasNEON,
2207 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
2208 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
2209 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
2210 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
2211 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabdu,
2212 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s32,
2213 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v4s32,
2214 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
2215 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::QPRRegClassID,
2216 : GIM_CheckIsSafeToFold, /*InsnID*/1,
2217 : // (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (intrinsic_wo_chain:{ *:[v4i32] } 1055:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)) => (VABAuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
2218 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAuv4i32,
2219 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
2220 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
2221 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
2222 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
2223 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
2224 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
2225 : GIR_EraseFromParent, /*InsnID*/0,
2226 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
2227 : // GIR_Coverage, 1161,
2228 : GIR_Done,
2229 : // Label 108: @4114
2230 : GIM_Try, /*On fail goto*//*Label 109*/ 4178, // Rule ID 767 //
2231 : GIM_CheckFeatures, GIFBS_HasNEON,
2232 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2233 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SEXT,
2234 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
2235 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
2236 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
2237 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_SEXT,
2238 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v4s16,
2239 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
2240 : GIM_CheckIsSafeToFold, /*InsnID*/1,
2241 : GIM_CheckIsSafeToFold, /*InsnID*/2,
2242 : // (add:{ *:[v4i32] } (sext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn), (sext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) => (VADDLsv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
2243 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDLsv4i32,
2244 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
2245 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
2246 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
2247 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
2248 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
2249 : GIR_EraseFromParent, /*InsnID*/0,
2250 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
2251 : // GIR_Coverage, 767,
2252 : GIR_Done,
2253 : // Label 109: @4178
2254 : GIM_Try, /*On fail goto*//*Label 110*/ 4242, // Rule ID 770 //
2255 : GIM_CheckFeatures, GIFBS_HasNEON,
2256 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2257 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
2258 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
2259 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
2260 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
2261 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ZEXT,
2262 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v4s16,
2263 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
2264 : GIM_CheckIsSafeToFold, /*InsnID*/1,
2265 : GIM_CheckIsSafeToFold, /*InsnID*/2,
2266 : // (add:{ *:[v4i32] } (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn), (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) => (VADDLuv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
2267 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDLuv4i32,
2268 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
2269 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
2270 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
2271 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
2272 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
2273 : GIR_EraseFromParent, /*InsnID*/0,
2274 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
2275 : // GIR_Coverage, 770,
2276 : GIR_Done,
2277 : // Label 110: @4242
2278 : GIM_Try, /*On fail goto*//*Label 111*/ 4305, // Rule ID 2629 //
2279 : GIM_CheckFeatures, GIFBS_HasNEON,
2280 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2281 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
2282 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s32,
2283 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s32,
2284 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::QPRRegClassID,
2285 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
2286 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
2287 : GIM_CheckIsSafeToFold, /*InsnID*/1,
2288 : // (add:{ *:[v4i32] } (mul:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm), QPR:{ *:[v4i32] }:$src1) => (VMLAv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
2289 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMLAv4i32,
2290 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
2291 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
2292 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
2293 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
2294 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
2295 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
2296 : GIR_EraseFromParent, /*InsnID*/0,
2297 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
2298 : // GIR_Coverage, 2629,
2299 : GIR_Done,
2300 : // Label 111: @4305
2301 : GIM_Try, /*On fail goto*//*Label 112*/ 4356, // Rule ID 2601 //
2302 : GIM_CheckFeatures, GIFBS_HasNEON,
2303 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2304 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SEXT,
2305 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
2306 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
2307 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
2308 : GIM_CheckIsSafeToFold, /*InsnID*/1,
2309 : // (add:{ *:[v4i32] } (sext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm), QPR:{ *:[v4i32] }:$Vn) => (VADDWsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
2310 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDWsv4i32,
2311 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
2312 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
2313 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
2314 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
2315 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
2316 : GIR_EraseFromParent, /*InsnID*/0,
2317 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
2318 : // GIR_Coverage, 2601,
2319 : GIR_Done,
2320 : // Label 112: @4356
2321 : GIM_Try, /*On fail goto*//*Label 113*/ 4407, // Rule ID 2604 //
2322 : GIM_CheckFeatures, GIFBS_HasNEON,
2323 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2324 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
2325 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
2326 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
2327 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
2328 : GIM_CheckIsSafeToFold, /*InsnID*/1,
2329 : // (add:{ *:[v4i32] } (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm), QPR:{ *:[v4i32] }:$Vn) => (VADDWuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
2330 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDWuv4i32,
2331 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
2332 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
2333 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
2334 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
2335 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
2336 : GIR_EraseFromParent, /*InsnID*/0,
2337 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
2338 : // GIR_Coverage, 2604,
2339 : GIR_Done,
2340 : // Label 113: @4407
2341 : GIM_Try, /*On fail goto*//*Label 114*/ 4470, // Rule ID 878 //
2342 : GIM_CheckFeatures, GIFBS_HasNEON,
2343 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
2344 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
2345 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
2346 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s32,
2347 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s32,
2348 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::QPRRegClassID,
2349 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
2350 : GIM_CheckIsSafeToFold, /*InsnID*/1,
2351 : // (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (mul:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)) => (VMLAv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
2352 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMLAv4i32,
2353 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
2354 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
2355 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
2356 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
2357 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
2358 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
2359 : GIR_EraseFromParent, /*InsnID*/0,
2360 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
2361 : // GIR_Coverage, 878,
2362 : GIR_Done,
2363 : // Label 114: @4470
2364 : GIM_Try, /*On fail goto*//*Label 115*/ 4521, // Rule ID 773 //
2365 : GIM_CheckFeatures, GIFBS_HasNEON,
2366 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
2367 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
2368 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SEXT,
2369 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
2370 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
2371 : GIM_CheckIsSafeToFold, /*InsnID*/1,
2372 : // (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, (sext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) => (VADDWsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
2373 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDWsv4i32,
2374 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
2375 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
2376 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
2377 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
2378 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
2379 : GIR_EraseFromParent, /*InsnID*/0,
2380 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
2381 : // GIR_Coverage, 773,
2382 : GIR_Done,
2383 : // Label 115: @4521
2384 : GIM_Try, /*On fail goto*//*Label 116*/ 4572, // Rule ID 776 //
2385 : GIM_CheckFeatures, GIFBS_HasNEON,
2386 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
2387 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
2388 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
2389 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
2390 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
2391 : GIM_CheckIsSafeToFold, /*InsnID*/1,
2392 : // (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) => (VADDWuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
2393 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDWuv4i32,
2394 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
2395 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
2396 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
2397 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
2398 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
2399 : GIR_EraseFromParent, /*InsnID*/0,
2400 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
2401 : // GIR_Coverage, 776,
2402 : GIR_Done,
2403 : // Label 116: @4572
2404 : GIM_Try, /*On fail goto*//*Label 117*/ 4610, // Rule ID 759 //
2405 : GIM_CheckFeatures, GIFBS_HasNEON,
2406 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
2407 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
2408 : // (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VADDv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
2409 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDv4i32,
2410 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
2411 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
2412 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
2413 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
2414 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
2415 : GIR_EraseFromParent, /*InsnID*/0,
2416 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
2417 : // GIR_Coverage, 759,
2418 : GIR_Done,
2419 : // Label 117: @4610
2420 : GIM_Reject,
2421 : // Label 100: @4611
2422 : GIM_Reject,
2423 : // Label 42: @4612
2424 : GIM_Try, /*On fail goto*//*Label 118*/ 5071,
2425 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
2426 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
2427 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
2428 : GIM_Try, /*On fail goto*//*Label 119*/ 4696, // Rule ID 2694 //
2429 : GIM_CheckFeatures, GIFBS_HasNEON,
2430 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2431 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
2432 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
2433 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabds,
2434 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s8,
2435 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v8s8,
2436 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
2437 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
2438 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
2439 : GIM_CheckIsSafeToFold, /*InsnID*/1,
2440 : // (add:{ *:[v8i8] } (intrinsic_wo_chain:{ *:[v8i8] } 1054:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm), DPR:{ *:[v8i8] }:$src1) => (VABAsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
2441 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAsv8i8,
2442 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
2443 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
2444 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
2445 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
2446 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
2447 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
2448 : GIR_EraseFromParent, /*InsnID*/0,
2449 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
2450 : // GIR_Coverage, 2694,
2451 : GIR_Done,
2452 : // Label 119: @4696
2453 : GIM_Try, /*On fail goto*//*Label 120*/ 4766, // Rule ID 2700 //
2454 : GIM_CheckFeatures, GIFBS_HasNEON,
2455 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2456 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
2457 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
2458 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabdu,
2459 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s8,
2460 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v8s8,
2461 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
2462 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
2463 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
2464 : GIM_CheckIsSafeToFold, /*InsnID*/1,
2465 : // (add:{ *:[v8i8] } (intrinsic_wo_chain:{ *:[v8i8] } 1055:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm), DPR:{ *:[v8i8] }:$src1) => (VABAuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
2466 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAuv8i8,
2467 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
2468 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
2469 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
2470 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
2471 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
2472 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
2473 : GIR_EraseFromParent, /*InsnID*/0,
2474 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
2475 : // GIR_Coverage, 2700,
2476 : GIR_Done,
2477 : // Label 120: @4766
2478 : GIM_Try, /*On fail goto*//*Label 121*/ 4836, // Rule ID 1150 //
2479 : GIM_CheckFeatures, GIFBS_HasNEON,
2480 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
2481 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
2482 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
2483 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
2484 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabds,
2485 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s8,
2486 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v8s8,
2487 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
2488 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
2489 : GIM_CheckIsSafeToFold, /*InsnID*/1,
2490 : // (add:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, (intrinsic_wo_chain:{ *:[v8i8] } 1054:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)) => (VABAsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
2491 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAsv8i8,
2492 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
2493 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
2494 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
2495 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
2496 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
2497 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
2498 : GIR_EraseFromParent, /*InsnID*/0,
2499 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
2500 : // GIR_Coverage, 1150,
2501 : GIR_Done,
2502 : // Label 121: @4836
2503 : GIM_Try, /*On fail goto*//*Label 122*/ 4906, // Rule ID 1156 //
2504 : GIM_CheckFeatures, GIFBS_HasNEON,
2505 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
2506 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
2507 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
2508 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
2509 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabdu,
2510 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s8,
2511 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v8s8,
2512 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
2513 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
2514 : GIM_CheckIsSafeToFold, /*InsnID*/1,
2515 : // (add:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, (intrinsic_wo_chain:{ *:[v8i8] } 1055:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)) => (VABAuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
2516 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAuv8i8,
2517 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
2518 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
2519 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
2520 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
2521 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
2522 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
2523 : GIR_EraseFromParent, /*InsnID*/0,
2524 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
2525 : // GIR_Coverage, 1156,
2526 : GIR_Done,
2527 : // Label 122: @4906
2528 : GIM_Try, /*On fail goto*//*Label 123*/ 4969, // Rule ID 2624 //
2529 : GIM_CheckFeatures, GIFBS_HasNEON,
2530 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2531 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
2532 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
2533 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s8,
2534 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
2535 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
2536 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
2537 : GIM_CheckIsSafeToFold, /*InsnID*/1,
2538 : // (add:{ *:[v8i8] } (mul:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm), DPR:{ *:[v8i8] }:$src1) => (VMLAv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
2539 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMLAv8i8,
2540 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
2541 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
2542 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
2543 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
2544 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
2545 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
2546 : GIR_EraseFromParent, /*InsnID*/0,
2547 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
2548 : // GIR_Coverage, 2624,
2549 : GIR_Done,
2550 : // Label 123: @4969
2551 : GIM_Try, /*On fail goto*//*Label 124*/ 5032, // Rule ID 873 //
2552 : GIM_CheckFeatures, GIFBS_HasNEON,
2553 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
2554 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
2555 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
2556 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
2557 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s8,
2558 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
2559 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
2560 : GIM_CheckIsSafeToFold, /*InsnID*/1,
2561 : // (add:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, (mul:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)) => (VMLAv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
2562 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMLAv8i8,
2563 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
2564 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
2565 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
2566 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
2567 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
2568 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
2569 : GIR_EraseFromParent, /*InsnID*/0,
2570 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
2571 : // GIR_Coverage, 873,
2572 : GIR_Done,
2573 : // Label 124: @5032
2574 : GIM_Try, /*On fail goto*//*Label 125*/ 5070, // Rule ID 754 //
2575 : GIM_CheckFeatures, GIFBS_HasNEON,
2576 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
2577 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
2578 : // (add:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VADDv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
2579 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDv8i8,
2580 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
2581 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
2582 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
2583 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
2584 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
2585 : GIR_EraseFromParent, /*InsnID*/0,
2586 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
2587 : // GIR_Coverage, 754,
2588 : GIR_Done,
2589 : // Label 125: @5070
2590 : GIM_Reject,
2591 : // Label 118: @5071
2592 : GIM_Reject,
2593 : // Label 43: @5072
2594 : GIM_Try, /*On fail goto*//*Label 126*/ 6195,
2595 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
2596 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
2597 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
2598 : GIM_Try, /*On fail goto*//*Label 127*/ 5169, // Rule ID 2706 //
2599 : GIM_CheckFeatures, GIFBS_HasNEON,
2600 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2601 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
2602 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
2603 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
2604 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_INTRINSIC,
2605 : GIM_CheckNumOperands, /*MI*/2, /*Expected*/4,
2606 : GIM_CheckIntrinsicID, /*MI*/2, /*Op*/1, Intrinsic::arm_neon_vabds,
2607 : GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_v8s8,
2608 : GIM_CheckType, /*MI*/2, /*Op*/3, /*Type*/GILLT_v8s8,
2609 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/2, /*RC*/ARM::DPRRegClassID,
2610 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/3, /*RC*/ARM::DPRRegClassID,
2611 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
2612 : GIM_CheckIsSafeToFold, /*InsnID*/1,
2613 : GIM_CheckIsSafeToFold, /*InsnID*/2,
2614 : // (add:{ *:[v8i16] } (zext:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i8] } 1054:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)), QPR:{ *:[v8i16] }:$src1) => (VABALsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
2615 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABALsv8i16,
2616 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
2617 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
2618 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // Vn
2619 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/3, // Vm
2620 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
2621 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
2622 : GIR_EraseFromParent, /*InsnID*/0,
2623 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
2624 : // GIR_Coverage, 2706,
2625 : GIR_Done,
2626 : // Label 127: @5169
2627 : GIM_Try, /*On fail goto*//*Label 128*/ 5252, // Rule ID 2709 //
2628 : GIM_CheckFeatures, GIFBS_HasNEON,
2629 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2630 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
2631 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
2632 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
2633 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_INTRINSIC,
2634 : GIM_CheckNumOperands, /*MI*/2, /*Expected*/4,
2635 : GIM_CheckIntrinsicID, /*MI*/2, /*Op*/1, Intrinsic::arm_neon_vabdu,
2636 : GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_v8s8,
2637 : GIM_CheckType, /*MI*/2, /*Op*/3, /*Type*/GILLT_v8s8,
2638 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/2, /*RC*/ARM::DPRRegClassID,
2639 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/3, /*RC*/ARM::DPRRegClassID,
2640 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
2641 : GIM_CheckIsSafeToFold, /*InsnID*/1,
2642 : GIM_CheckIsSafeToFold, /*InsnID*/2,
2643 : // (add:{ *:[v8i16] } (zext:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i8] } 1055:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)), QPR:{ *:[v8i16] }:$src1) => (VABALuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
2644 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABALuv8i16,
2645 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
2646 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
2647 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // Vn
2648 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/3, // Vm
2649 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
2650 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
2651 : GIR_EraseFromParent, /*InsnID*/0,
2652 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
2653 : // GIR_Coverage, 2709,
2654 : GIR_Done,
2655 : // Label 128: @5252
2656 : GIM_Try, /*On fail goto*//*Label 129*/ 5335, // Rule ID 1162 //
2657 : GIM_CheckFeatures, GIFBS_HasNEON,
2658 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
2659 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
2660 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
2661 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
2662 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
2663 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_INTRINSIC,
2664 : GIM_CheckNumOperands, /*MI*/2, /*Expected*/4,
2665 : GIM_CheckIntrinsicID, /*MI*/2, /*Op*/1, Intrinsic::arm_neon_vabds,
2666 : GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_v8s8,
2667 : GIM_CheckType, /*MI*/2, /*Op*/3, /*Type*/GILLT_v8s8,
2668 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/2, /*RC*/ARM::DPRRegClassID,
2669 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/3, /*RC*/ARM::DPRRegClassID,
2670 : GIM_CheckIsSafeToFold, /*InsnID*/1,
2671 : GIM_CheckIsSafeToFold, /*InsnID*/2,
2672 : // (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (zext:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i8] } 1054:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm))) => (VABALsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
2673 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABALsv8i16,
2674 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
2675 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
2676 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // Vn
2677 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/3, // Vm
2678 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
2679 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
2680 : GIR_EraseFromParent, /*InsnID*/0,
2681 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
2682 : // GIR_Coverage, 1162,
2683 : GIR_Done,
2684 : // Label 129: @5335
2685 : GIM_Try, /*On fail goto*//*Label 130*/ 5418, // Rule ID 1165 //
2686 : GIM_CheckFeatures, GIFBS_HasNEON,
2687 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
2688 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
2689 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
2690 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
2691 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
2692 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_INTRINSIC,
2693 : GIM_CheckNumOperands, /*MI*/2, /*Expected*/4,
2694 : GIM_CheckIntrinsicID, /*MI*/2, /*Op*/1, Intrinsic::arm_neon_vabdu,
2695 : GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_v8s8,
2696 : GIM_CheckType, /*MI*/2, /*Op*/3, /*Type*/GILLT_v8s8,
2697 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/2, /*RC*/ARM::DPRRegClassID,
2698 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/3, /*RC*/ARM::DPRRegClassID,
2699 : GIM_CheckIsSafeToFold, /*InsnID*/1,
2700 : GIM_CheckIsSafeToFold, /*InsnID*/2,
2701 : // (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (zext:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i8] } 1055:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm))) => (VABALuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
2702 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABALuv8i16,
2703 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
2704 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
2705 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // Vn
2706 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/3, // Vm
2707 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
2708 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
2709 : GIR_EraseFromParent, /*InsnID*/0,
2710 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
2711 : // GIR_Coverage, 1165,
2712 : GIR_Done,
2713 : // Label 130: @5418
2714 : GIM_Try, /*On fail goto*//*Label 131*/ 5488, // Rule ID 2698 //
2715 : GIM_CheckFeatures, GIFBS_HasNEON,
2716 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2717 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
2718 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
2719 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabds,
2720 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s16,
2721 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v8s16,
2722 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
2723 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::QPRRegClassID,
2724 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
2725 : GIM_CheckIsSafeToFold, /*InsnID*/1,
2726 : // (add:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i16] } 1054:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm), QPR:{ *:[v8i16] }:$src1) => (VABAsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
2727 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAsv8i16,
2728 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
2729 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
2730 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
2731 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
2732 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
2733 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
2734 : GIR_EraseFromParent, /*InsnID*/0,
2735 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
2736 : // GIR_Coverage, 2698,
2737 : GIR_Done,
2738 : // Label 131: @5488
2739 : GIM_Try, /*On fail goto*//*Label 132*/ 5558, // Rule ID 2704 //
2740 : GIM_CheckFeatures, GIFBS_HasNEON,
2741 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2742 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
2743 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
2744 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabdu,
2745 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s16,
2746 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v8s16,
2747 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
2748 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::QPRRegClassID,
2749 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
2750 : GIM_CheckIsSafeToFold, /*InsnID*/1,
2751 : // (add:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i16] } 1055:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm), QPR:{ *:[v8i16] }:$src1) => (VABAuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
2752 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAuv8i16,
2753 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
2754 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
2755 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
2756 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
2757 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
2758 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
2759 : GIR_EraseFromParent, /*InsnID*/0,
2760 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
2761 : // GIR_Coverage, 2704,
2762 : GIR_Done,
2763 : // Label 132: @5558
2764 : GIM_Try, /*On fail goto*//*Label 133*/ 5628, // Rule ID 1154 //
2765 : GIM_CheckFeatures, GIFBS_HasNEON,
2766 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
2767 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
2768 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
2769 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
2770 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabds,
2771 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s16,
2772 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v8s16,
2773 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
2774 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::QPRRegClassID,
2775 : GIM_CheckIsSafeToFold, /*InsnID*/1,
2776 : // (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (intrinsic_wo_chain:{ *:[v8i16] } 1054:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)) => (VABAsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
2777 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAsv8i16,
2778 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
2779 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
2780 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
2781 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
2782 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
2783 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
2784 : GIR_EraseFromParent, /*InsnID*/0,
2785 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
2786 : // GIR_Coverage, 1154,
2787 : GIR_Done,
2788 : // Label 133: @5628
2789 : GIM_Try, /*On fail goto*//*Label 134*/ 5698, // Rule ID 1160 //
2790 : GIM_CheckFeatures, GIFBS_HasNEON,
2791 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
2792 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
2793 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
2794 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
2795 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabdu,
2796 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s16,
2797 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v8s16,
2798 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
2799 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::QPRRegClassID,
2800 : GIM_CheckIsSafeToFold, /*InsnID*/1,
2801 : // (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (intrinsic_wo_chain:{ *:[v8i16] } 1055:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)) => (VABAuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
2802 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAuv8i16,
2803 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
2804 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
2805 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
2806 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
2807 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
2808 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
2809 : GIR_EraseFromParent, /*InsnID*/0,
2810 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
2811 : // GIR_Coverage, 1160,
2812 : GIR_Done,
2813 : // Label 134: @5698
2814 : GIM_Try, /*On fail goto*//*Label 135*/ 5762, // Rule ID 766 //
2815 : GIM_CheckFeatures, GIFBS_HasNEON,
2816 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2817 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SEXT,
2818 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
2819 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
2820 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
2821 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_SEXT,
2822 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v8s8,
2823 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
2824 : GIM_CheckIsSafeToFold, /*InsnID*/1,
2825 : GIM_CheckIsSafeToFold, /*InsnID*/2,
2826 : // (add:{ *:[v8i16] } (sext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn), (sext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) => (VADDLsv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
2827 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDLsv8i16,
2828 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
2829 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
2830 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
2831 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
2832 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
2833 : GIR_EraseFromParent, /*InsnID*/0,
2834 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
2835 : // GIR_Coverage, 766,
2836 : GIR_Done,
2837 : // Label 135: @5762
2838 : GIM_Try, /*On fail goto*//*Label 136*/ 5826, // Rule ID 769 //
2839 : GIM_CheckFeatures, GIFBS_HasNEON,
2840 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2841 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
2842 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
2843 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
2844 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
2845 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ZEXT,
2846 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v8s8,
2847 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
2848 : GIM_CheckIsSafeToFold, /*InsnID*/1,
2849 : GIM_CheckIsSafeToFold, /*InsnID*/2,
2850 : // (add:{ *:[v8i16] } (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn), (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) => (VADDLuv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
2851 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDLuv8i16,
2852 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
2853 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
2854 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
2855 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
2856 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
2857 : GIR_EraseFromParent, /*InsnID*/0,
2858 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
2859 : // GIR_Coverage, 769,
2860 : GIR_Done,
2861 : // Label 136: @5826
2862 : GIM_Try, /*On fail goto*//*Label 137*/ 5889, // Rule ID 2628 //
2863 : GIM_CheckFeatures, GIFBS_HasNEON,
2864 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2865 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
2866 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s16,
2867 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s16,
2868 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::QPRRegClassID,
2869 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
2870 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
2871 : GIM_CheckIsSafeToFold, /*InsnID*/1,
2872 : // (add:{ *:[v8i16] } (mul:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm), QPR:{ *:[v8i16] }:$src1) => (VMLAv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
2873 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMLAv8i16,
2874 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
2875 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
2876 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
2877 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
2878 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
2879 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
2880 : GIR_EraseFromParent, /*InsnID*/0,
2881 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
2882 : // GIR_Coverage, 2628,
2883 : GIR_Done,
2884 : // Label 137: @5889
2885 : GIM_Try, /*On fail goto*//*Label 138*/ 5940, // Rule ID 2600 //
2886 : GIM_CheckFeatures, GIFBS_HasNEON,
2887 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2888 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SEXT,
2889 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
2890 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
2891 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
2892 : GIM_CheckIsSafeToFold, /*InsnID*/1,
2893 : // (add:{ *:[v8i16] } (sext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm), QPR:{ *:[v8i16] }:$Vn) => (VADDWsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
2894 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDWsv8i16,
2895 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
2896 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
2897 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
2898 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
2899 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
2900 : GIR_EraseFromParent, /*InsnID*/0,
2901 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
2902 : // GIR_Coverage, 2600,
2903 : GIR_Done,
2904 : // Label 138: @5940
2905 : GIM_Try, /*On fail goto*//*Label 139*/ 5991, // Rule ID 2603 //
2906 : GIM_CheckFeatures, GIFBS_HasNEON,
2907 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2908 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
2909 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
2910 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
2911 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
2912 : GIM_CheckIsSafeToFold, /*InsnID*/1,
2913 : // (add:{ *:[v8i16] } (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm), QPR:{ *:[v8i16] }:$Vn) => (VADDWuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
2914 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDWuv8i16,
2915 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
2916 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
2917 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
2918 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
2919 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
2920 : GIR_EraseFromParent, /*InsnID*/0,
2921 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
2922 : // GIR_Coverage, 2603,
2923 : GIR_Done,
2924 : // Label 139: @5991
2925 : GIM_Try, /*On fail goto*//*Label 140*/ 6054, // Rule ID 877 //
2926 : GIM_CheckFeatures, GIFBS_HasNEON,
2927 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
2928 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
2929 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
2930 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s16,
2931 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s16,
2932 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::QPRRegClassID,
2933 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
2934 : GIM_CheckIsSafeToFold, /*InsnID*/1,
2935 : // (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (mul:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)) => (VMLAv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
2936 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMLAv8i16,
2937 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
2938 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
2939 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
2940 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
2941 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
2942 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
2943 : GIR_EraseFromParent, /*InsnID*/0,
2944 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
2945 : // GIR_Coverage, 877,
2946 : GIR_Done,
2947 : // Label 140: @6054
2948 : GIM_Try, /*On fail goto*//*Label 141*/ 6105, // Rule ID 772 //
2949 : GIM_CheckFeatures, GIFBS_HasNEON,
2950 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
2951 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
2952 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SEXT,
2953 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
2954 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
2955 : GIM_CheckIsSafeToFold, /*InsnID*/1,
2956 : // (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, (sext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) => (VADDWsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
2957 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDWsv8i16,
2958 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
2959 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
2960 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
2961 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
2962 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
2963 : GIR_EraseFromParent, /*InsnID*/0,
2964 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
2965 : // GIR_Coverage, 772,
2966 : GIR_Done,
2967 : // Label 141: @6105
2968 : GIM_Try, /*On fail goto*//*Label 142*/ 6156, // Rule ID 775 //
2969 : GIM_CheckFeatures, GIFBS_HasNEON,
2970 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
2971 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
2972 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
2973 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
2974 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
2975 : GIM_CheckIsSafeToFold, /*InsnID*/1,
2976 : // (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) => (VADDWuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
2977 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDWuv8i16,
2978 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
2979 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
2980 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
2981 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
2982 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
2983 : GIR_EraseFromParent, /*InsnID*/0,
2984 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
2985 : // GIR_Coverage, 775,
2986 : GIR_Done,
2987 : // Label 142: @6156
2988 : GIM_Try, /*On fail goto*//*Label 143*/ 6194, // Rule ID 758 //
2989 : GIM_CheckFeatures, GIFBS_HasNEON,
2990 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
2991 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
2992 : // (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VADDv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
2993 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDv8i16,
2994 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
2995 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
2996 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
2997 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
2998 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
2999 : GIR_EraseFromParent, /*InsnID*/0,
3000 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
3001 : // GIR_Coverage, 758,
3002 : GIR_Done,
3003 : // Label 143: @6194
3004 : GIM_Reject,
3005 : // Label 126: @6195
3006 : GIM_Reject,
3007 : // Label 44: @6196
3008 : GIM_Try, /*On fail goto*//*Label 144*/ 6655,
3009 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
3010 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
3011 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
3012 : GIM_Try, /*On fail goto*//*Label 145*/ 6280, // Rule ID 2697 //
3013 : GIM_CheckFeatures, GIFBS_HasNEON,
3014 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3015 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
3016 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
3017 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabds,
3018 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v16s8,
3019 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v16s8,
3020 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
3021 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::QPRRegClassID,
3022 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
3023 : GIM_CheckIsSafeToFold, /*InsnID*/1,
3024 : // (add:{ *:[v16i8] } (intrinsic_wo_chain:{ *:[v16i8] } 1054:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm), QPR:{ *:[v16i8] }:$src1) => (VABAsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
3025 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAsv16i8,
3026 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
3027 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
3028 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
3029 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
3030 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
3031 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3032 : GIR_EraseFromParent, /*InsnID*/0,
3033 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
3034 : // GIR_Coverage, 2697,
3035 : GIR_Done,
3036 : // Label 145: @6280
3037 : GIM_Try, /*On fail goto*//*Label 146*/ 6350, // Rule ID 2703 //
3038 : GIM_CheckFeatures, GIFBS_HasNEON,
3039 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3040 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
3041 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
3042 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabdu,
3043 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v16s8,
3044 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v16s8,
3045 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
3046 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::QPRRegClassID,
3047 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
3048 : GIM_CheckIsSafeToFold, /*InsnID*/1,
3049 : // (add:{ *:[v16i8] } (intrinsic_wo_chain:{ *:[v16i8] } 1055:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm), QPR:{ *:[v16i8] }:$src1) => (VABAuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
3050 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAuv16i8,
3051 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
3052 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
3053 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
3054 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
3055 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
3056 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3057 : GIR_EraseFromParent, /*InsnID*/0,
3058 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
3059 : // GIR_Coverage, 2703,
3060 : GIR_Done,
3061 : // Label 146: @6350
3062 : GIM_Try, /*On fail goto*//*Label 147*/ 6420, // Rule ID 1153 //
3063 : GIM_CheckFeatures, GIFBS_HasNEON,
3064 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
3065 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
3066 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
3067 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
3068 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabds,
3069 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v16s8,
3070 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v16s8,
3071 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
3072 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::QPRRegClassID,
3073 : GIM_CheckIsSafeToFold, /*InsnID*/1,
3074 : // (add:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, (intrinsic_wo_chain:{ *:[v16i8] } 1054:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)) => (VABAsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
3075 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAsv16i8,
3076 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
3077 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
3078 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
3079 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
3080 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
3081 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3082 : GIR_EraseFromParent, /*InsnID*/0,
3083 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
3084 : // GIR_Coverage, 1153,
3085 : GIR_Done,
3086 : // Label 147: @6420
3087 : GIM_Try, /*On fail goto*//*Label 148*/ 6490, // Rule ID 1159 //
3088 : GIM_CheckFeatures, GIFBS_HasNEON,
3089 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
3090 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
3091 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
3092 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
3093 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabdu,
3094 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v16s8,
3095 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v16s8,
3096 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
3097 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::QPRRegClassID,
3098 : GIM_CheckIsSafeToFold, /*InsnID*/1,
3099 : // (add:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, (intrinsic_wo_chain:{ *:[v16i8] } 1055:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)) => (VABAuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
3100 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAuv16i8,
3101 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
3102 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
3103 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
3104 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
3105 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
3106 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3107 : GIR_EraseFromParent, /*InsnID*/0,
3108 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
3109 : // GIR_Coverage, 1159,
3110 : GIR_Done,
3111 : // Label 148: @6490
3112 : GIM_Try, /*On fail goto*//*Label 149*/ 6553, // Rule ID 2627 //
3113 : GIM_CheckFeatures, GIFBS_HasNEON,
3114 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3115 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
3116 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v16s8,
3117 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v16s8,
3118 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::QPRRegClassID,
3119 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
3120 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
3121 : GIM_CheckIsSafeToFold, /*InsnID*/1,
3122 : // (add:{ *:[v16i8] } (mul:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm), QPR:{ *:[v16i8] }:$src1) => (VMLAv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
3123 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMLAv16i8,
3124 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
3125 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
3126 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
3127 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
3128 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
3129 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3130 : GIR_EraseFromParent, /*InsnID*/0,
3131 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
3132 : // GIR_Coverage, 2627,
3133 : GIR_Done,
3134 : // Label 149: @6553
3135 : GIM_Try, /*On fail goto*//*Label 150*/ 6616, // Rule ID 876 //
3136 : GIM_CheckFeatures, GIFBS_HasNEON,
3137 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
3138 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
3139 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
3140 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v16s8,
3141 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v16s8,
3142 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::QPRRegClassID,
3143 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
3144 : GIM_CheckIsSafeToFold, /*InsnID*/1,
3145 : // (add:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, (mul:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)) => (VMLAv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
3146 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMLAv16i8,
3147 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
3148 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
3149 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
3150 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
3151 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
3152 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3153 : GIR_EraseFromParent, /*InsnID*/0,
3154 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
3155 : // GIR_Coverage, 876,
3156 : GIR_Done,
3157 : // Label 150: @6616
3158 : GIM_Try, /*On fail goto*//*Label 151*/ 6654, // Rule ID 757 //
3159 : GIM_CheckFeatures, GIFBS_HasNEON,
3160 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
3161 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
3162 : // (add:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VADDv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
3163 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDv16i8,
3164 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
3165 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
3166 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
3167 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
3168 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3169 : GIR_EraseFromParent, /*InsnID*/0,
3170 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
3171 : // GIR_Coverage, 757,
3172 : GIR_Done,
3173 : // Label 151: @6654
3174 : GIM_Reject,
3175 : // Label 144: @6655
3176 : GIM_Reject,
3177 : // Label 45: @6656
3178 : GIM_Reject,
3179 : // Label 1: @6657
3180 : GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 10, /*)*//*default:*//*Label 161*/ 8646,
3181 : /*GILLT_s32*//*Label 152*/ 6672,
3182 : /*GILLT_s64*//*Label 153*/ 7165,
3183 : /*GILLT_v2s32*//*Label 154*/ 7216,
3184 : /*GILLT_v2s64*//*Label 155*/ 7329,
3185 : /*GILLT_v4s16*//*Label 156*/ 7613,
3186 : /*GILLT_v4s32*//*Label 157*/ 7726,
3187 : /*GILLT_v8s8*//*Label 158*/ 8073,
3188 : /*GILLT_v8s16*//*Label 159*/ 8186,
3189 : /*GILLT_v16s8*//*Label 160*/ 8533,
3190 : // Label 152: @6672
3191 : GIM_Try, /*On fail goto*//*Label 162*/ 7164,
3192 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
3193 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
3194 : GIM_Try, /*On fail goto*//*Label 163*/ 6734, // Rule ID 98 //
3195 : GIM_CheckFeatures, GIFBS_IsARM,
3196 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
3197 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3198 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
3199 : GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_mod_imm,
3200 : // MIs[1] Operand 1
3201 : // No operand predicates
3202 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
3203 : GIM_CheckIsSafeToFold, /*InsnID*/1,
3204 : // (sub:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm, GPR:{ *:[i32] }:$Rn) => (RSBri:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
3205 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::RSBri,
3206 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
3207 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
3208 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
3209 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
3210 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3211 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3212 : GIR_EraseFromParent, /*InsnID*/0,
3213 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
3214 : // GIR_Coverage, 98,
3215 : GIR_Done,
3216 : // Label 163: @6734
3217 : GIM_Try, /*On fail goto*//*Label 164*/ 6786, // Rule ID 431 //
3218 : GIM_CheckFeatures, GIFBS_IsThumb2,
3219 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
3220 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3221 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
3222 : GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_t2_so_imm,
3223 : // MIs[1] Operand 1
3224 : // No operand predicates
3225 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
3226 : GIM_CheckIsSafeToFold, /*InsnID*/1,
3227 : // (sub:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm, rGPR:{ *:[i32] }:$Rn) => (t2RSBri:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
3228 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2RSBri,
3229 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
3230 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
3231 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
3232 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
3233 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3234 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3235 : GIR_EraseFromParent, /*InsnID*/0,
3236 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
3237 : // GIR_Coverage, 431,
3238 : GIR_Done,
3239 : // Label 164: @6786
3240 : GIM_Try, /*On fail goto*//*Label 165*/ 6838, // Rule ID 78 //
3241 : GIM_CheckFeatures, GIFBS_IsARM,
3242 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
3243 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
3244 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
3245 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
3246 : GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_mod_imm,
3247 : // MIs[1] Operand 1
3248 : // No operand predicates
3249 : GIM_CheckIsSafeToFold, /*InsnID*/1,
3250 : // (sub:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm) => (SUBri:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
3251 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SUBri,
3252 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
3253 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
3254 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
3255 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
3256 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3257 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3258 : GIR_EraseFromParent, /*InsnID*/0,
3259 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
3260 : // GIR_Coverage, 78,
3261 : GIR_Done,
3262 : // Label 165: @6838
3263 : GIM_Try, /*On fail goto*//*Label 166*/ 6890, // Rule ID 415 //
3264 : GIM_CheckFeatures, GIFBS_IsThumb2,
3265 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
3266 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
3267 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
3268 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
3269 : GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_t2_so_imm,
3270 : // MIs[1] Operand 1
3271 : // No operand predicates
3272 : GIM_CheckIsSafeToFold, /*InsnID*/1,
3273 : // (sub:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm) => (t2SUBri:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
3274 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SUBri,
3275 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
3276 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
3277 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
3278 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
3279 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3280 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3281 : GIR_EraseFromParent, /*InsnID*/0,
3282 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
3283 : // GIR_Coverage, 415,
3284 : GIR_Done,
3285 : // Label 166: @6890
3286 : GIM_Try, /*On fail goto*//*Label 167*/ 6939, // Rule ID 416 //
3287 : GIM_CheckFeatures, GIFBS_IsThumb2,
3288 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
3289 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
3290 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
3291 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
3292 : GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_4095,
3293 : // MIs[1] Operand 1
3294 : // No operand predicates
3295 : GIM_CheckIsSafeToFold, /*InsnID*/1,
3296 : // (sub:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_imm0_4095>>:$imm) => (t2SUBri12:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
3297 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SUBri12,
3298 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
3299 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
3300 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
3301 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
3302 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3303 : GIR_EraseFromParent, /*InsnID*/0,
3304 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
3305 : // GIR_Coverage, 416,
3306 : GIR_Done,
3307 : // Label 167: @6939
3308 : GIM_Try, /*On fail goto*//*Label 168*/ 7006, // Rule ID 175 //
3309 : GIM_CheckFeatures, GIFBS_HasV6T2_IsARM_UseMulOps,
3310 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
3311 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
3312 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
3313 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
3314 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
3315 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
3316 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRRegClassID,
3317 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::GPRRegClassID,
3318 : GIM_CheckIsSafeToFold, /*InsnID*/1,
3319 : // (sub:{ *:[i32] } GPR:{ *:[i32] }:$Ra, (mul:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)) => (MLS:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra)
3320 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MLS,
3321 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
3322 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
3323 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rm
3324 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Ra
3325 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
3326 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3327 : GIR_EraseFromParent, /*InsnID*/0,
3328 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
3329 : // GIR_Coverage, 175,
3330 : GIR_Done,
3331 : // Label 168: @7006
3332 : GIM_Try, /*On fail goto*//*Label 169*/ 7073, // Rule ID 508 //
3333 : GIM_CheckFeatures, GIFBS_IsThumb2_UseMulOps,
3334 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
3335 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
3336 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
3337 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
3338 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
3339 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
3340 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
3341 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
3342 : GIM_CheckIsSafeToFold, /*InsnID*/1,
3343 : // (sub:{ *:[i32] } rGPR:{ *:[i32] }:$Ra, (mul:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)) => (t2MLS:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
3344 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2MLS,
3345 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
3346 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
3347 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rm
3348 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Ra
3349 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
3350 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3351 : GIR_EraseFromParent, /*InsnID*/0,
3352 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
3353 : // GIR_Coverage, 508,
3354 : GIR_Done,
3355 : // Label 169: @7073
3356 : GIM_Try, /*On fail goto*//*Label 170*/ 7118, // Rule ID 79 //
3357 : GIM_CheckFeatures, GIFBS_IsARM,
3358 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
3359 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
3360 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
3361 : // (sub:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) => (SUBrr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
3362 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SUBrr,
3363 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
3364 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
3365 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
3366 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
3367 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3368 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3369 : GIR_EraseFromParent, /*InsnID*/0,
3370 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
3371 : // GIR_Coverage, 79,
3372 : GIR_Done,
3373 : // Label 170: @7118
3374 : GIM_Try, /*On fail goto*//*Label 171*/ 7163, // Rule ID 417 //
3375 : GIM_CheckFeatures, GIFBS_IsThumb2,
3376 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
3377 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
3378 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
3379 : // (sub:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SUBrr:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
3380 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SUBrr,
3381 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
3382 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
3383 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
3384 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
3385 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3386 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3387 : GIR_EraseFromParent, /*InsnID*/0,
3388 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
3389 : // GIR_Coverage, 417,
3390 : GIR_Done,
3391 : // Label 171: @7163
3392 : GIM_Reject,
3393 : // Label 162: @7164
3394 : GIM_Reject,
3395 : // Label 153: @7165
3396 : GIM_Try, /*On fail goto*//*Label 172*/ 7215, // Rule ID 947 //
3397 : GIM_CheckFeatures, GIFBS_HasNEON,
3398 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
3399 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
3400 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
3401 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
3402 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
3403 : // (sub:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm) => (VSUBv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
3404 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBv1i64,
3405 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
3406 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
3407 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
3408 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
3409 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3410 : GIR_EraseFromParent, /*InsnID*/0,
3411 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
3412 : // GIR_Coverage, 947,
3413 : GIR_Done,
3414 : // Label 172: @7215
3415 : GIM_Reject,
3416 : // Label 154: @7216
3417 : GIM_Try, /*On fail goto*//*Label 173*/ 7328,
3418 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
3419 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
3420 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
3421 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
3422 : GIM_Try, /*On fail goto*//*Label 174*/ 7293, // Rule ID 903 //
3423 : GIM_CheckFeatures, GIFBS_HasNEON,
3424 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
3425 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
3426 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
3427 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s32,
3428 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
3429 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
3430 : GIM_CheckIsSafeToFold, /*InsnID*/1,
3431 : // (sub:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, (mul:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)) => (VMLSv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
3432 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMLSv2i32,
3433 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
3434 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
3435 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
3436 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
3437 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
3438 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3439 : GIR_EraseFromParent, /*InsnID*/0,
3440 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
3441 : // GIR_Coverage, 903,
3442 : GIR_Done,
3443 : // Label 174: @7293
3444 : GIM_Try, /*On fail goto*//*Label 175*/ 7327, // Rule ID 943 //
3445 : GIM_CheckFeatures, GIFBS_HasNEON,
3446 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
3447 : // (sub:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VSUBv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
3448 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBv2i32,
3449 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
3450 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
3451 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
3452 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
3453 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3454 : GIR_EraseFromParent, /*InsnID*/0,
3455 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
3456 : // GIR_Coverage, 943,
3457 : GIR_Done,
3458 : // Label 175: @7327
3459 : GIM_Reject,
3460 : // Label 173: @7328
3461 : GIM_Reject,
3462 : // Label 155: @7329
3463 : GIM_Try, /*On fail goto*//*Label 176*/ 7612,
3464 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
3465 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
3466 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
3467 : GIM_Try, /*On fail goto*//*Label 177*/ 7407, // Rule ID 955 //
3468 : GIM_CheckFeatures, GIFBS_HasNEON,
3469 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3470 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SEXT,
3471 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
3472 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
3473 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
3474 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_SEXT,
3475 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v2s32,
3476 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
3477 : GIM_CheckIsSafeToFold, /*InsnID*/1,
3478 : GIM_CheckIsSafeToFold, /*InsnID*/2,
3479 : // (sub:{ *:[v2i64] } (sext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn), (sext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) => (VSUBLsv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
3480 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBLsv2i64,
3481 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
3482 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
3483 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
3484 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
3485 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3486 : GIR_EraseFromParent, /*InsnID*/0,
3487 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
3488 : // GIR_Coverage, 955,
3489 : GIR_Done,
3490 : // Label 177: @7407
3491 : GIM_Try, /*On fail goto*//*Label 178*/ 7471, // Rule ID 958 //
3492 : GIM_CheckFeatures, GIFBS_HasNEON,
3493 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3494 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
3495 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
3496 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
3497 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
3498 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ZEXT,
3499 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v2s32,
3500 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
3501 : GIM_CheckIsSafeToFold, /*InsnID*/1,
3502 : GIM_CheckIsSafeToFold, /*InsnID*/2,
3503 : // (sub:{ *:[v2i64] } (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn), (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) => (VSUBLuv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
3504 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBLuv2i64,
3505 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
3506 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
3507 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
3508 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
3509 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3510 : GIR_EraseFromParent, /*InsnID*/0,
3511 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
3512 : // GIR_Coverage, 958,
3513 : GIR_Done,
3514 : // Label 178: @7471
3515 : GIM_Try, /*On fail goto*//*Label 179*/ 7522, // Rule ID 961 //
3516 : GIM_CheckFeatures, GIFBS_HasNEON,
3517 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
3518 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
3519 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SEXT,
3520 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
3521 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
3522 : GIM_CheckIsSafeToFold, /*InsnID*/1,
3523 : // (sub:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, (sext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) => (VSUBWsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
3524 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBWsv2i64,
3525 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
3526 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
3527 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
3528 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
3529 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3530 : GIR_EraseFromParent, /*InsnID*/0,
3531 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
3532 : // GIR_Coverage, 961,
3533 : GIR_Done,
3534 : // Label 179: @7522
3535 : GIM_Try, /*On fail goto*//*Label 180*/ 7573, // Rule ID 964 //
3536 : GIM_CheckFeatures, GIFBS_HasNEON,
3537 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
3538 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
3539 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
3540 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
3541 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
3542 : GIM_CheckIsSafeToFold, /*InsnID*/1,
3543 : // (sub:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) => (VSUBWuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
3544 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBWuv2i64,
3545 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
3546 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
3547 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
3548 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
3549 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3550 : GIR_EraseFromParent, /*InsnID*/0,
3551 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
3552 : // GIR_Coverage, 964,
3553 : GIR_Done,
3554 : // Label 180: @7573
3555 : GIM_Try, /*On fail goto*//*Label 181*/ 7611, // Rule ID 948 //
3556 : GIM_CheckFeatures, GIFBS_HasNEON,
3557 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
3558 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
3559 : // (sub:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm) => (VSUBv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
3560 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBv2i64,
3561 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
3562 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
3563 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
3564 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
3565 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3566 : GIR_EraseFromParent, /*InsnID*/0,
3567 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
3568 : // GIR_Coverage, 948,
3569 : GIR_Done,
3570 : // Label 181: @7611
3571 : GIM_Reject,
3572 : // Label 176: @7612
3573 : GIM_Reject,
3574 : // Label 156: @7613
3575 : GIM_Try, /*On fail goto*//*Label 182*/ 7725,
3576 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
3577 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
3578 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
3579 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
3580 : GIM_Try, /*On fail goto*//*Label 183*/ 7690, // Rule ID 902 //
3581 : GIM_CheckFeatures, GIFBS_HasNEON,
3582 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
3583 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
3584 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
3585 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
3586 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
3587 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
3588 : GIM_CheckIsSafeToFold, /*InsnID*/1,
3589 : // (sub:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, (mul:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)) => (VMLSv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
3590 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMLSv4i16,
3591 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
3592 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
3593 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
3594 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
3595 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
3596 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3597 : GIR_EraseFromParent, /*InsnID*/0,
3598 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
3599 : // GIR_Coverage, 902,
3600 : GIR_Done,
3601 : // Label 183: @7690
3602 : GIM_Try, /*On fail goto*//*Label 184*/ 7724, // Rule ID 942 //
3603 : GIM_CheckFeatures, GIFBS_HasNEON,
3604 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
3605 : // (sub:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VSUBv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
3606 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBv4i16,
3607 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
3608 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
3609 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
3610 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
3611 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3612 : GIR_EraseFromParent, /*InsnID*/0,
3613 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
3614 : // GIR_Coverage, 942,
3615 : GIR_Done,
3616 : // Label 184: @7724
3617 : GIM_Reject,
3618 : // Label 182: @7725
3619 : GIM_Reject,
3620 : // Label 157: @7726
3621 : GIM_Try, /*On fail goto*//*Label 185*/ 8072,
3622 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
3623 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
3624 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
3625 : GIM_Try, /*On fail goto*//*Label 186*/ 7804, // Rule ID 954 //
3626 : GIM_CheckFeatures, GIFBS_HasNEON,
3627 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3628 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SEXT,
3629 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
3630 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
3631 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
3632 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_SEXT,
3633 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v4s16,
3634 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
3635 : GIM_CheckIsSafeToFold, /*InsnID*/1,
3636 : GIM_CheckIsSafeToFold, /*InsnID*/2,
3637 : // (sub:{ *:[v4i32] } (sext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn), (sext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) => (VSUBLsv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
3638 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBLsv4i32,
3639 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
3640 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
3641 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
3642 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
3643 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3644 : GIR_EraseFromParent, /*InsnID*/0,
3645 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
3646 : // GIR_Coverage, 954,
3647 : GIR_Done,
3648 : // Label 186: @7804
3649 : GIM_Try, /*On fail goto*//*Label 187*/ 7868, // Rule ID 957 //
3650 : GIM_CheckFeatures, GIFBS_HasNEON,
3651 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3652 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
3653 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
3654 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
3655 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
3656 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ZEXT,
3657 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v4s16,
3658 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
3659 : GIM_CheckIsSafeToFold, /*InsnID*/1,
3660 : GIM_CheckIsSafeToFold, /*InsnID*/2,
3661 : // (sub:{ *:[v4i32] } (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn), (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) => (VSUBLuv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
3662 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBLuv4i32,
3663 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
3664 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
3665 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
3666 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
3667 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3668 : GIR_EraseFromParent, /*InsnID*/0,
3669 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
3670 : // GIR_Coverage, 957,
3671 : GIR_Done,
3672 : // Label 187: @7868
3673 : GIM_Try, /*On fail goto*//*Label 188*/ 7931, // Rule ID 906 //
3674 : GIM_CheckFeatures, GIFBS_HasNEON,
3675 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
3676 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
3677 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
3678 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s32,
3679 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s32,
3680 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::QPRRegClassID,
3681 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
3682 : GIM_CheckIsSafeToFold, /*InsnID*/1,
3683 : // (sub:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (mul:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)) => (VMLSv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
3684 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMLSv4i32,
3685 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
3686 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
3687 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
3688 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
3689 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
3690 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3691 : GIR_EraseFromParent, /*InsnID*/0,
3692 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
3693 : // GIR_Coverage, 906,
3694 : GIR_Done,
3695 : // Label 188: @7931
3696 : GIM_Try, /*On fail goto*//*Label 189*/ 7982, // Rule ID 960 //
3697 : GIM_CheckFeatures, GIFBS_HasNEON,
3698 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
3699 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
3700 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SEXT,
3701 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
3702 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
3703 : GIM_CheckIsSafeToFold, /*InsnID*/1,
3704 : // (sub:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, (sext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) => (VSUBWsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
3705 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBWsv4i32,
3706 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
3707 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
3708 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
3709 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
3710 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3711 : GIR_EraseFromParent, /*InsnID*/0,
3712 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
3713 : // GIR_Coverage, 960,
3714 : GIR_Done,
3715 : // Label 189: @7982
3716 : GIM_Try, /*On fail goto*//*Label 190*/ 8033, // Rule ID 963 //
3717 : GIM_CheckFeatures, GIFBS_HasNEON,
3718 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
3719 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
3720 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
3721 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
3722 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
3723 : GIM_CheckIsSafeToFold, /*InsnID*/1,
3724 : // (sub:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) => (VSUBWuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
3725 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBWuv4i32,
3726 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
3727 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
3728 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
3729 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
3730 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3731 : GIR_EraseFromParent, /*InsnID*/0,
3732 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
3733 : // GIR_Coverage, 963,
3734 : GIR_Done,
3735 : // Label 190: @8033
3736 : GIM_Try, /*On fail goto*//*Label 191*/ 8071, // Rule ID 946 //
3737 : GIM_CheckFeatures, GIFBS_HasNEON,
3738 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
3739 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
3740 : // (sub:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VSUBv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
3741 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBv4i32,
3742 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
3743 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
3744 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
3745 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
3746 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3747 : GIR_EraseFromParent, /*InsnID*/0,
3748 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
3749 : // GIR_Coverage, 946,
3750 : GIR_Done,
3751 : // Label 191: @8071
3752 : GIM_Reject,
3753 : // Label 185: @8072
3754 : GIM_Reject,
3755 : // Label 158: @8073
3756 : GIM_Try, /*On fail goto*//*Label 192*/ 8185,
3757 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
3758 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
3759 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
3760 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
3761 : GIM_Try, /*On fail goto*//*Label 193*/ 8150, // Rule ID 901 //
3762 : GIM_CheckFeatures, GIFBS_HasNEON,
3763 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
3764 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
3765 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
3766 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s8,
3767 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
3768 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
3769 : GIM_CheckIsSafeToFold, /*InsnID*/1,
3770 : // (sub:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, (mul:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)) => (VMLSv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
3771 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMLSv8i8,
3772 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
3773 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
3774 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
3775 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
3776 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
3777 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3778 : GIR_EraseFromParent, /*InsnID*/0,
3779 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
3780 : // GIR_Coverage, 901,
3781 : GIR_Done,
3782 : // Label 193: @8150
3783 : GIM_Try, /*On fail goto*//*Label 194*/ 8184, // Rule ID 941 //
3784 : GIM_CheckFeatures, GIFBS_HasNEON,
3785 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
3786 : // (sub:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VSUBv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
3787 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBv8i8,
3788 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
3789 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
3790 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
3791 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
3792 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3793 : GIR_EraseFromParent, /*InsnID*/0,
3794 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
3795 : // GIR_Coverage, 941,
3796 : GIR_Done,
3797 : // Label 194: @8184
3798 : GIM_Reject,
3799 : // Label 192: @8185
3800 : GIM_Reject,
3801 : // Label 159: @8186
3802 : GIM_Try, /*On fail goto*//*Label 195*/ 8532,
3803 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
3804 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
3805 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
3806 : GIM_Try, /*On fail goto*//*Label 196*/ 8264, // Rule ID 953 //
3807 : GIM_CheckFeatures, GIFBS_HasNEON,
3808 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3809 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SEXT,
3810 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
3811 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
3812 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
3813 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_SEXT,
3814 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v8s8,
3815 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
3816 : GIM_CheckIsSafeToFold, /*InsnID*/1,
3817 : GIM_CheckIsSafeToFold, /*InsnID*/2,
3818 : // (sub:{ *:[v8i16] } (sext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn), (sext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) => (VSUBLsv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
3819 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBLsv8i16,
3820 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
3821 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
3822 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
3823 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
3824 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3825 : GIR_EraseFromParent, /*InsnID*/0,
3826 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
3827 : // GIR_Coverage, 953,
3828 : GIR_Done,
3829 : // Label 196: @8264
3830 : GIM_Try, /*On fail goto*//*Label 197*/ 8328, // Rule ID 956 //
3831 : GIM_CheckFeatures, GIFBS_HasNEON,
3832 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3833 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
3834 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
3835 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
3836 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
3837 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ZEXT,
3838 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v8s8,
3839 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
3840 : GIM_CheckIsSafeToFold, /*InsnID*/1,
3841 : GIM_CheckIsSafeToFold, /*InsnID*/2,
3842 : // (sub:{ *:[v8i16] } (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn), (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) => (VSUBLuv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
3843 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBLuv8i16,
3844 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
3845 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
3846 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
3847 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
3848 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3849 : GIR_EraseFromParent, /*InsnID*/0,
3850 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
3851 : // GIR_Coverage, 956,
3852 : GIR_Done,
3853 : // Label 197: @8328
3854 : GIM_Try, /*On fail goto*//*Label 198*/ 8391, // Rule ID 905 //
3855 : GIM_CheckFeatures, GIFBS_HasNEON,
3856 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
3857 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
3858 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
3859 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s16,
3860 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s16,
3861 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::QPRRegClassID,
3862 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
3863 : GIM_CheckIsSafeToFold, /*InsnID*/1,
3864 : // (sub:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (mul:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)) => (VMLSv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
3865 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMLSv8i16,
3866 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
3867 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
3868 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
3869 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
3870 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
3871 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3872 : GIR_EraseFromParent, /*InsnID*/0,
3873 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
3874 : // GIR_Coverage, 905,
3875 : GIR_Done,
3876 : // Label 198: @8391
3877 : GIM_Try, /*On fail goto*//*Label 199*/ 8442, // Rule ID 959 //
3878 : GIM_CheckFeatures, GIFBS_HasNEON,
3879 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
3880 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
3881 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SEXT,
3882 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
3883 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
3884 : GIM_CheckIsSafeToFold, /*InsnID*/1,
3885 : // (sub:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, (sext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) => (VSUBWsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
3886 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBWsv8i16,
3887 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
3888 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
3889 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
3890 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
3891 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3892 : GIR_EraseFromParent, /*InsnID*/0,
3893 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
3894 : // GIR_Coverage, 959,
3895 : GIR_Done,
3896 : // Label 199: @8442
3897 : GIM_Try, /*On fail goto*//*Label 200*/ 8493, // Rule ID 962 //
3898 : GIM_CheckFeatures, GIFBS_HasNEON,
3899 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
3900 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
3901 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
3902 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
3903 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
3904 : GIM_CheckIsSafeToFold, /*InsnID*/1,
3905 : // (sub:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) => (VSUBWuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
3906 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBWuv8i16,
3907 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
3908 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
3909 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
3910 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
3911 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3912 : GIR_EraseFromParent, /*InsnID*/0,
3913 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
3914 : // GIR_Coverage, 962,
3915 : GIR_Done,
3916 : // Label 200: @8493
3917 : GIM_Try, /*On fail goto*//*Label 201*/ 8531, // Rule ID 945 //
3918 : GIM_CheckFeatures, GIFBS_HasNEON,
3919 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
3920 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
3921 : // (sub:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VSUBv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
3922 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBv8i16,
3923 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
3924 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
3925 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
3926 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
3927 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3928 : GIR_EraseFromParent, /*InsnID*/0,
3929 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
3930 : // GIR_Coverage, 945,
3931 : GIR_Done,
3932 : // Label 201: @8531
3933 : GIM_Reject,
3934 : // Label 195: @8532
3935 : GIM_Reject,
3936 : // Label 160: @8533
3937 : GIM_Try, /*On fail goto*//*Label 202*/ 8645,
3938 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
3939 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
3940 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
3941 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
3942 : GIM_Try, /*On fail goto*//*Label 203*/ 8610, // Rule ID 904 //
3943 : GIM_CheckFeatures, GIFBS_HasNEON,
3944 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
3945 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
3946 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v16s8,
3947 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v16s8,
3948 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::QPRRegClassID,
3949 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
3950 : GIM_CheckIsSafeToFold, /*InsnID*/1,
3951 : // (sub:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, (mul:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)) => (VMLSv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
3952 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMLSv16i8,
3953 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
3954 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
3955 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
3956 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
3957 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
3958 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3959 : GIR_EraseFromParent, /*InsnID*/0,
3960 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
3961 : // GIR_Coverage, 904,
3962 : GIR_Done,
3963 : // Label 203: @8610
3964 : GIM_Try, /*On fail goto*//*Label 204*/ 8644, // Rule ID 944 //
3965 : GIM_CheckFeatures, GIFBS_HasNEON,
3966 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
3967 : // (sub:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VSUBv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
3968 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBv16i8,
3969 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
3970 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
3971 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
3972 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
3973 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
3974 : GIR_EraseFromParent, /*InsnID*/0,
3975 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
3976 : // GIR_Coverage, 944,
3977 : GIR_Done,
3978 : // Label 204: @8644
3979 : GIM_Reject,
3980 : // Label 202: @8645
3981 : GIM_Reject,
3982 : // Label 161: @8646
3983 : GIM_Reject,
3984 : // Label 2: @8647
3985 : GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 10, /*)*//*default:*//*Label 212*/ 9280,
3986 : /*GILLT_s32*//*Label 205*/ 8662, 0,
3987 : /*GILLT_v2s32*//*Label 206*/ 8974, 0,
3988 : /*GILLT_v4s16*//*Label 207*/ 9025,
3989 : /*GILLT_v4s32*//*Label 208*/ 9076,
3990 : /*GILLT_v8s8*//*Label 209*/ 9127,
3991 : /*GILLT_v8s16*//*Label 210*/ 9178,
3992 : /*GILLT_v16s8*//*Label 211*/ 9229,
3993 : // Label 205: @8662
3994 : GIM_Try, /*On fail goto*//*Label 213*/ 8973,
3995 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
3996 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
3997 : GIM_Try, /*On fail goto*//*Label 214*/ 8756, // Rule ID 188 //
3998 : GIM_CheckFeatures, GIFBS_HasV5TE_IsARM,
3999 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
4000 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4001 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ASHR,
4002 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
4003 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
4004 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRRegClassID,
4005 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 16,
4006 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4007 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ASHR,
4008 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
4009 : GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
4010 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::GPRRegClassID,
4011 : GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 16,
4012 : GIM_CheckIsSafeToFold, /*InsnID*/1,
4013 : GIM_CheckIsSafeToFold, /*InsnID*/2,
4014 : // (mul:{ *:[i32] } (sra:{ *:[i32] } GPR:{ *:[i32] }:$Rn, 16:{ *:[i32] }), (sra:{ *:[i32] } GPR:{ *:[i32] }:$Rm, 16:{ *:[i32] })) => (SMULTT:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
4015 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMULTT,
4016 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
4017 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
4018 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rm
4019 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
4020 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4021 : GIR_EraseFromParent, /*InsnID*/0,
4022 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
4023 : // GIR_Coverage, 188,
4024 : GIR_Done,
4025 : // Label 214: @8756
4026 : GIM_Try, /*On fail goto*//*Label 215*/ 8840, // Rule ID 519 //
4027 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
4028 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
4029 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4030 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ASHR,
4031 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
4032 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
4033 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
4034 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 16,
4035 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4036 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ASHR,
4037 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
4038 : GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
4039 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
4040 : GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 16,
4041 : GIM_CheckIsSafeToFold, /*InsnID*/1,
4042 : GIM_CheckIsSafeToFold, /*InsnID*/2,
4043 : // (mul:{ *:[i32] } (sra:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, 16:{ *:[i32] }), (sra:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 16:{ *:[i32] })) => (t2SMULTT:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
4044 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMULTT,
4045 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
4046 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
4047 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rm
4048 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
4049 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4050 : GIR_EraseFromParent, /*InsnID*/0,
4051 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
4052 : // GIR_Coverage, 519,
4053 : GIR_Done,
4054 : // Label 215: @8840
4055 : GIM_Try, /*On fail goto*//*Label 216*/ 8885, // Rule ID 171 //
4056 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
4057 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
4058 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
4059 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
4060 : // (mul:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (MUL:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
4061 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MUL,
4062 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
4063 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
4064 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
4065 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
4066 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4067 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4068 : GIR_EraseFromParent, /*InsnID*/0,
4069 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
4070 : // GIR_Coverage, 171,
4071 : GIR_Done,
4072 : // Label 216: @8885
4073 : GIM_Try, /*On fail goto*//*Label 217*/ 8930, // Rule ID 172 //
4074 : GIM_CheckFeatures, GIFBS_IsARM_NoV6_UseMulOps,
4075 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
4076 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
4077 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
4078 : // (mul:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (MULv5:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
4079 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MULv5,
4080 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
4081 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
4082 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
4083 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
4084 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4085 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4086 : GIR_EraseFromParent, /*InsnID*/0,
4087 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
4088 : // GIR_Coverage, 172,
4089 : GIR_Done,
4090 : // Label 217: @8930
4091 : GIM_Try, /*On fail goto*//*Label 218*/ 8972, // Rule ID 506 //
4092 : GIM_CheckFeatures, GIFBS_IsThumb2,
4093 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
4094 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
4095 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
4096 : // (mul:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2MUL:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
4097 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2MUL,
4098 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
4099 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
4100 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
4101 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
4102 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4103 : GIR_EraseFromParent, /*InsnID*/0,
4104 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
4105 : // GIR_Coverage, 506,
4106 : GIR_Done,
4107 : // Label 218: @8972
4108 : GIM_Reject,
4109 : // Label 213: @8973
4110 : GIM_Reject,
4111 : // Label 206: @8974
4112 : GIM_Try, /*On fail goto*//*Label 219*/ 9024, // Rule ID 823 //
4113 : GIM_CheckFeatures, GIFBS_HasNEON,
4114 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
4115 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
4116 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
4117 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
4118 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
4119 : // (mul:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VMULv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
4120 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMULv2i32,
4121 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
4122 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
4123 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
4124 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
4125 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4126 : GIR_EraseFromParent, /*InsnID*/0,
4127 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
4128 : // GIR_Coverage, 823,
4129 : GIR_Done,
4130 : // Label 219: @9024
4131 : GIM_Reject,
4132 : // Label 207: @9025
4133 : GIM_Try, /*On fail goto*//*Label 220*/ 9075, // Rule ID 822 //
4134 : GIM_CheckFeatures, GIFBS_HasNEON,
4135 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
4136 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
4137 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
4138 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
4139 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
4140 : // (mul:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VMULv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
4141 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMULv4i16,
4142 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
4143 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
4144 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
4145 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
4146 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4147 : GIR_EraseFromParent, /*InsnID*/0,
4148 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
4149 : // GIR_Coverage, 822,
4150 : GIR_Done,
4151 : // Label 220: @9075
4152 : GIM_Reject,
4153 : // Label 208: @9076
4154 : GIM_Try, /*On fail goto*//*Label 221*/ 9126, // Rule ID 826 //
4155 : GIM_CheckFeatures, GIFBS_HasNEON,
4156 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
4157 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
4158 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
4159 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
4160 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
4161 : // (mul:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VMULv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
4162 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMULv4i32,
4163 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
4164 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
4165 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
4166 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
4167 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4168 : GIR_EraseFromParent, /*InsnID*/0,
4169 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
4170 : // GIR_Coverage, 826,
4171 : GIR_Done,
4172 : // Label 221: @9126
4173 : GIM_Reject,
4174 : // Label 209: @9127
4175 : GIM_Try, /*On fail goto*//*Label 222*/ 9177, // Rule ID 821 //
4176 : GIM_CheckFeatures, GIFBS_HasNEON,
4177 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
4178 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
4179 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
4180 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
4181 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
4182 : // (mul:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VMULv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
4183 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMULv8i8,
4184 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
4185 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
4186 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
4187 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
4188 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4189 : GIR_EraseFromParent, /*InsnID*/0,
4190 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
4191 : // GIR_Coverage, 821,
4192 : GIR_Done,
4193 : // Label 222: @9177
4194 : GIM_Reject,
4195 : // Label 210: @9178
4196 : GIM_Try, /*On fail goto*//*Label 223*/ 9228, // Rule ID 825 //
4197 : GIM_CheckFeatures, GIFBS_HasNEON,
4198 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
4199 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
4200 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
4201 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
4202 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
4203 : // (mul:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VMULv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
4204 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMULv8i16,
4205 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
4206 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
4207 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
4208 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
4209 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4210 : GIR_EraseFromParent, /*InsnID*/0,
4211 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
4212 : // GIR_Coverage, 825,
4213 : GIR_Done,
4214 : // Label 223: @9228
4215 : GIM_Reject,
4216 : // Label 211: @9229
4217 : GIM_Try, /*On fail goto*//*Label 224*/ 9279, // Rule ID 824 //
4218 : GIM_CheckFeatures, GIFBS_HasNEON,
4219 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
4220 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
4221 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
4222 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
4223 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
4224 : // (mul:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VMULv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
4225 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMULv16i8,
4226 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
4227 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
4228 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
4229 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
4230 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4231 : GIR_EraseFromParent, /*InsnID*/0,
4232 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
4233 : // GIR_Coverage, 824,
4234 : GIR_Done,
4235 : // Label 224: @9279
4236 : GIM_Reject,
4237 : // Label 212: @9280
4238 : GIM_Reject,
4239 : // Label 3: @9281
4240 : GIM_Try, /*On fail goto*//*Label 225*/ 9380,
4241 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
4242 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
4243 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
4244 : GIM_Try, /*On fail goto*//*Label 226*/ 9337, // Rule ID 197 //
4245 : GIM_CheckFeatures, GIFBS_HasDivideInARM_IsARM,
4246 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
4247 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
4248 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
4249 : // (sdiv:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) => (SDIV:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
4250 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SDIV,
4251 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
4252 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
4253 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
4254 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
4255 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4256 : GIR_EraseFromParent, /*InsnID*/0,
4257 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
4258 : // GIR_Coverage, 197,
4259 : GIR_Done,
4260 : // Label 226: @9337
4261 : GIM_Try, /*On fail goto*//*Label 227*/ 9379, // Rule ID 536 //
4262 : GIM_CheckFeatures, GIFBS_HasDivideInThumb_HasV8MBaseline_IsThumb,
4263 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
4264 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
4265 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
4266 : // (sdiv:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SDIV:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
4267 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SDIV,
4268 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
4269 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
4270 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
4271 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
4272 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4273 : GIR_EraseFromParent, /*InsnID*/0,
4274 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
4275 : // GIR_Coverage, 536,
4276 : GIR_Done,
4277 : // Label 227: @9379
4278 : GIM_Reject,
4279 : // Label 225: @9380
4280 : GIM_Reject,
4281 : // Label 4: @9381
4282 : GIM_Try, /*On fail goto*//*Label 228*/ 9480,
4283 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
4284 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
4285 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
4286 : GIM_Try, /*On fail goto*//*Label 229*/ 9437, // Rule ID 198 //
4287 : GIM_CheckFeatures, GIFBS_HasDivideInARM_IsARM,
4288 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
4289 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
4290 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
4291 : // (udiv:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) => (UDIV:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
4292 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UDIV,
4293 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
4294 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
4295 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
4296 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
4297 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4298 : GIR_EraseFromParent, /*InsnID*/0,
4299 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
4300 : // GIR_Coverage, 198,
4301 : GIR_Done,
4302 : // Label 229: @9437
4303 : GIM_Try, /*On fail goto*//*Label 230*/ 9479, // Rule ID 537 //
4304 : GIM_CheckFeatures, GIFBS_HasDivideInThumb_HasV8MBaseline_IsThumb,
4305 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
4306 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
4307 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
4308 : // (udiv:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UDIV:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
4309 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UDIV,
4310 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
4311 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
4312 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
4313 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
4314 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4315 : GIR_EraseFromParent, /*InsnID*/0,
4316 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
4317 : // GIR_Coverage, 537,
4318 : GIR_Done,
4319 : // Label 230: @9479
4320 : GIM_Reject,
4321 : // Label 228: @9480
4322 : GIM_Reject,
4323 : // Label 5: @9481
4324 : GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 7, /*)*//*default:*//*Label 234*/ 11193,
4325 : /*GILLT_s32*//*Label 231*/ 9493, 0,
4326 : /*GILLT_v2s32*//*Label 232*/ 11091, 0, 0,
4327 : /*GILLT_v4s32*//*Label 233*/ 11142,
4328 : // Label 231: @9493
4329 : GIM_Try, /*On fail goto*//*Label 235*/ 11090,
4330 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
4331 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
4332 : GIM_Try, /*On fail goto*//*Label 236*/ 9565, // Rule ID 1709 //
4333 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
4334 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
4335 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4336 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_LSHR,
4337 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
4338 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
4339 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRRegClassID,
4340 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 8,
4341 : GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 16711935,
4342 : GIM_CheckIsSafeToFold, /*InsnID*/1,
4343 : // (and:{ *:[i32] } (srl:{ *:[i32] } GPR:{ *:[i32] }:$Src, 8:{ *:[i32] }), 16711935:{ *:[i32] }) => (UXTB16:{ *:[i32] } GPR:{ *:[i32] }:$Src, 1:{ *:[i32] })
4344 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UXTB16,
4345 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
4346 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Src
4347 : GIR_AddImm, /*InsnID*/0, /*Imm*/1,
4348 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
4349 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4350 : GIR_EraseFromParent, /*InsnID*/0,
4351 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
4352 : // GIR_Coverage, 1709,
4353 : GIR_Done,
4354 : // Label 236: @9565
4355 : GIM_Try, /*On fail goto*//*Label 237*/ 9627, // Rule ID 1916 //
4356 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
4357 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
4358 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4359 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_LSHR,
4360 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
4361 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
4362 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
4363 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 8,
4364 : GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 16711935,
4365 : GIM_CheckIsSafeToFold, /*InsnID*/1,
4366 : // (and:{ *:[i32] } (srl:{ *:[i32] } rGPR:{ *:[i32] }:$Src, 8:{ *:[i32] }), 16711935:{ *:[i32] }) => (t2UXTB16:{ *:[i32] } rGPR:{ *:[i32] }:$Src, 1:{ *:[i32] })
4367 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UXTB16,
4368 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
4369 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Src
4370 : GIR_AddImm, /*InsnID*/0, /*Imm*/1,
4371 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
4372 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4373 : GIR_EraseFromParent, /*InsnID*/0,
4374 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
4375 : // GIR_Coverage, 1916,
4376 : GIR_Done,
4377 : // Label 237: @9627
4378 : GIM_Try, /*On fail goto*//*Label 238*/ 9668, // Rule ID 1814 //
4379 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
4380 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
4381 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
4382 : GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 255,
4383 : // (and:{ *:[i32] } GPR:{ *:[i32] }:$Src, 255:{ *:[i32] }) => (UXTB:{ *:[i32] } GPR:{ *:[i32] }:$Src, 0:{ *:[i32] })
4384 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UXTB,
4385 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
4386 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Src
4387 : GIR_AddImm, /*InsnID*/0, /*Imm*/0,
4388 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
4389 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4390 : GIR_EraseFromParent, /*InsnID*/0,
4391 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
4392 : // GIR_Coverage, 1814,
4393 : GIR_Done,
4394 : // Label 238: @9668
4395 : GIM_Try, /*On fail goto*//*Label 239*/ 9709, // Rule ID 1815 //
4396 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
4397 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
4398 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
4399 : GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 65535,
4400 : // (and:{ *:[i32] } GPR:{ *:[i32] }:$Src, 65535:{ *:[i32] }) => (UXTH:{ *:[i32] } GPR:{ *:[i32] }:$Src, 0:{ *:[i32] })
4401 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UXTH,
4402 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
4403 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Src
4404 : GIR_AddImm, /*InsnID*/0, /*Imm*/0,
4405 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
4406 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4407 : GIR_EraseFromParent, /*InsnID*/0,
4408 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
4409 : // GIR_Coverage, 1815,
4410 : GIR_Done,
4411 : // Label 239: @9709
4412 : GIM_Try, /*On fail goto*//*Label 240*/ 9750, // Rule ID 1816 //
4413 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
4414 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
4415 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
4416 : GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 16711935,
4417 : // (and:{ *:[i32] } GPR:{ *:[i32] }:$Src, 16711935:{ *:[i32] }) => (UXTB16:{ *:[i32] } GPR:{ *:[i32] }:$Src, 0:{ *:[i32] })
4418 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UXTB16,
4419 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
4420 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Src
4421 : GIR_AddImm, /*InsnID*/0, /*Imm*/0,
4422 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
4423 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4424 : GIR_EraseFromParent, /*InsnID*/0,
4425 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
4426 : // GIR_Coverage, 1816,
4427 : GIR_Done,
4428 : // Label 240: @9750
4429 : GIM_Try, /*On fail goto*//*Label 241*/ 9791, // Rule ID 2004 //
4430 : GIM_CheckFeatures, GIFBS_IsThumb2,
4431 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
4432 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
4433 : GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 255,
4434 : // (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 255:{ *:[i32] }) => (t2UXTB:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
4435 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UXTB,
4436 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
4437 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rm
4438 : GIR_AddImm, /*InsnID*/0, /*Imm*/0,
4439 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
4440 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4441 : GIR_EraseFromParent, /*InsnID*/0,
4442 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
4443 : // GIR_Coverage, 2004,
4444 : GIR_Done,
4445 : // Label 241: @9791
4446 : GIM_Try, /*On fail goto*//*Label 242*/ 9832, // Rule ID 2005 //
4447 : GIM_CheckFeatures, GIFBS_IsThumb2,
4448 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
4449 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
4450 : GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 65535,
4451 : // (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 65535:{ *:[i32] }) => (t2UXTH:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
4452 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UXTH,
4453 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
4454 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rm
4455 : GIR_AddImm, /*InsnID*/0, /*Imm*/0,
4456 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
4457 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4458 : GIR_EraseFromParent, /*InsnID*/0,
4459 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
4460 : // GIR_Coverage, 2005,
4461 : GIR_Done,
4462 : // Label 242: @9832
4463 : GIM_Try, /*On fail goto*//*Label 243*/ 9873, // Rule ID 2006 //
4464 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
4465 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
4466 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
4467 : GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 16711935,
4468 : // (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 16711935:{ *:[i32] }) => (t2UXTB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
4469 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UXTB16,
4470 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
4471 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rm
4472 : GIR_AddImm, /*InsnID*/0, /*Imm*/0,
4473 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
4474 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4475 : GIR_EraseFromParent, /*InsnID*/0,
4476 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
4477 : // GIR_Coverage, 2006,
4478 : GIR_Done,
4479 : // Label 243: @9873
4480 : GIM_Try, /*On fail goto*//*Label 244*/ 9946, // Rule ID 2534 //
4481 : GIM_CheckFeatures, GIFBS_IsARM,
4482 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
4483 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4484 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
4485 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
4486 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
4487 : GIM_CheckConstantInt, /*MI*/1, /*Op*/1, -1,
4488 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4489 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
4490 : GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_mod_imm,
4491 : // MIs[2] Operand 1
4492 : // No operand predicates
4493 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
4494 : GIM_CheckIsSafeToFold, /*InsnID*/1,
4495 : GIM_CheckIsSafeToFold, /*InsnID*/2,
4496 : // (and:{ *:[i32] } (xor:{ *:[i32] } -1:{ *:[i32] }, (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm), GPR:{ *:[i32] }:$Rn) => (BICri:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
4497 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::BICri,
4498 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
4499 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
4500 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm
4501 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
4502 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4503 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4504 : GIR_EraseFromParent, /*InsnID*/0,
4505 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
4506 : // GIR_Coverage, 2534,
4507 : GIR_Done,
4508 : // Label 244: @9946
4509 : GIM_Try, /*On fail goto*//*Label 245*/ 10019, // Rule ID 2567 //
4510 : GIM_CheckFeatures, GIFBS_IsThumb2,
4511 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
4512 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4513 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
4514 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
4515 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
4516 : GIM_CheckConstantInt, /*MI*/1, /*Op*/1, -1,
4517 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4518 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
4519 : GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_t2_so_imm,
4520 : // MIs[2] Operand 1
4521 : // No operand predicates
4522 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
4523 : GIM_CheckIsSafeToFold, /*InsnID*/1,
4524 : GIM_CheckIsSafeToFold, /*InsnID*/2,
4525 : // (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)
4526 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2BICri,
4527 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
4528 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
4529 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm
4530 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
4531 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4532 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4533 : GIR_EraseFromParent, /*InsnID*/0,
4534 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
4535 : // GIR_Coverage, 2567,
4536 : GIR_Done,
4537 : // Label 245: @10019
4538 : GIM_Try, /*On fail goto*//*Label 246*/ 10092, // Rule ID 2533 //
4539 : GIM_CheckFeatures, GIFBS_IsARM,
4540 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
4541 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4542 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
4543 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
4544 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
4545 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
4546 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
4547 : GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_mod_imm,
4548 : // MIs[2] Operand 1
4549 : // No operand predicates
4550 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
4551 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
4552 : GIM_CheckIsSafeToFold, /*InsnID*/1,
4553 : GIM_CheckIsSafeToFold, /*InsnID*/2,
4554 : // (and:{ *:[i32] } (xor:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm, -1:{ *:[i32] }), GPR:{ *:[i32] }:$Rn) => (BICri:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
4555 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::BICri,
4556 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
4557 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
4558 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm
4559 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
4560 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4561 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4562 : GIR_EraseFromParent, /*InsnID*/0,
4563 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
4564 : // GIR_Coverage, 2533,
4565 : GIR_Done,
4566 : // Label 246: @10092
4567 : GIM_Try, /*On fail goto*//*Label 247*/ 10165, // Rule ID 2566 //
4568 : GIM_CheckFeatures, GIFBS_IsThumb2,
4569 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
4570 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4571 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
4572 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
4573 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
4574 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
4575 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
4576 : GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_t2_so_imm,
4577 : // MIs[2] Operand 1
4578 : // No operand predicates
4579 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
4580 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
4581 : GIM_CheckIsSafeToFold, /*InsnID*/1,
4582 : GIM_CheckIsSafeToFold, /*InsnID*/2,
4583 : // (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)
4584 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2BICri,
4585 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
4586 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
4587 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm
4588 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
4589 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4590 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4591 : GIR_EraseFromParent, /*InsnID*/0,
4592 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
4593 : // GIR_Coverage, 2566,
4594 : GIR_Done,
4595 : // Label 247: @10165
4596 : GIM_Try, /*On fail goto*//*Label 248*/ 10238, // Rule ID 2532 //
4597 : GIM_CheckFeatures, GIFBS_IsARM,
4598 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
4599 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
4600 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4601 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
4602 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
4603 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
4604 : GIM_CheckConstantInt, /*MI*/1, /*Op*/1, -1,
4605 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4606 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
4607 : GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_mod_imm,
4608 : // MIs[2] Operand 1
4609 : // No operand predicates
4610 : GIM_CheckIsSafeToFold, /*InsnID*/1,
4611 : GIM_CheckIsSafeToFold, /*InsnID*/2,
4612 : // (and:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (xor:{ *:[i32] } -1:{ *:[i32] }, (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm)) => (BICri:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
4613 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::BICri,
4614 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
4615 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
4616 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm
4617 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
4618 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4619 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4620 : GIR_EraseFromParent, /*InsnID*/0,
4621 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
4622 : // GIR_Coverage, 2532,
4623 : GIR_Done,
4624 : // Label 248: @10238
4625 : GIM_Try, /*On fail goto*//*Label 249*/ 10311, // Rule ID 2565 //
4626 : GIM_CheckFeatures, GIFBS_IsThumb2,
4627 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
4628 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
4629 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4630 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
4631 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
4632 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
4633 : GIM_CheckConstantInt, /*MI*/1, /*Op*/1, -1,
4634 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4635 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
4636 : GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_t2_so_imm,
4637 : // MIs[2] Operand 1
4638 : // No operand predicates
4639 : GIM_CheckIsSafeToFold, /*InsnID*/1,
4640 : GIM_CheckIsSafeToFold, /*InsnID*/2,
4641 : // (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)
4642 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2BICri,
4643 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
4644 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
4645 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm
4646 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
4647 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4648 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4649 : GIR_EraseFromParent, /*InsnID*/0,
4650 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
4651 : // GIR_Coverage, 2565,
4652 : GIR_Done,
4653 : // Label 249: @10311
4654 : GIM_Try, /*On fail goto*//*Label 250*/ 10384, // Rule ID 161 //
4655 : GIM_CheckFeatures, GIFBS_IsARM,
4656 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
4657 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
4658 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4659 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
4660 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
4661 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
4662 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
4663 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
4664 : GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_mod_imm,
4665 : // MIs[2] Operand 1
4666 : // No operand predicates
4667 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
4668 : GIM_CheckIsSafeToFold, /*InsnID*/1,
4669 : GIM_CheckIsSafeToFold, /*InsnID*/2,
4670 : // (and:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (xor:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm, -1:{ *:[i32] })) => (BICri:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
4671 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::BICri,
4672 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
4673 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
4674 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm
4675 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
4676 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4677 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4678 : GIR_EraseFromParent, /*InsnID*/0,
4679 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
4680 : // GIR_Coverage, 161,
4681 : GIR_Done,
4682 : // Label 250: @10384
4683 : GIM_Try, /*On fail goto*//*Label 251*/ 10457, // Rule ID 494 //
4684 : GIM_CheckFeatures, GIFBS_IsThumb2,
4685 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
4686 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
4687 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4688 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
4689 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
4690 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
4691 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
4692 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
4693 : GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_t2_so_imm,
4694 : // MIs[2] Operand 1
4695 : // No operand predicates
4696 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
4697 : GIM_CheckIsSafeToFold, /*InsnID*/1,
4698 : GIM_CheckIsSafeToFold, /*InsnID*/2,
4699 : // (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)
4700 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2BICri,
4701 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
4702 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
4703 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm
4704 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
4705 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4706 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4707 : GIR_EraseFromParent, /*InsnID*/0,
4708 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
4709 : // GIR_Coverage, 494,
4710 : GIR_Done,
4711 : // Label 251: @10457
4712 : GIM_Try, /*On fail goto*//*Label 252*/ 10523, // Rule ID 2535 //
4713 : GIM_CheckFeatures, GIFBS_IsARM,
4714 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
4715 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4716 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
4717 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
4718 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
4719 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRRegClassID,
4720 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
4721 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
4722 : GIM_CheckIsSafeToFold, /*InsnID*/1,
4723 : // (and:{ *:[i32] } (xor:{ *:[i32] } GPR:{ *:[i32] }:$Rm, -1:{ *:[i32] }), GPR:{ *:[i32] }:$Rn) => (BICrr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
4724 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::BICrr,
4725 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
4726 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
4727 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
4728 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
4729 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4730 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4731 : GIR_EraseFromParent, /*InsnID*/0,
4732 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
4733 : // GIR_Coverage, 2535,
4734 : GIR_Done,
4735 : // Label 252: @10523
4736 : GIM_Try, /*On fail goto*//*Label 253*/ 10589, // Rule ID 2568 //
4737 : GIM_CheckFeatures, GIFBS_IsThumb2,
4738 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
4739 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4740 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
4741 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
4742 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
4743 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
4744 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
4745 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
4746 : GIM_CheckIsSafeToFold, /*InsnID*/1,
4747 : // (and:{ *:[i32] } (xor:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, -1:{ *:[i32] }), rGPR:{ *:[i32] }:$Rn) => (t2BICrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
4748 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2BICrr,
4749 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
4750 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
4751 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
4752 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
4753 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4754 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4755 : GIR_EraseFromParent, /*InsnID*/0,
4756 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
4757 : // GIR_Coverage, 2568,
4758 : GIR_Done,
4759 : // Label 253: @10589
4760 : GIM_Try, /*On fail goto*//*Label 254*/ 10655, // Rule ID 162 //
4761 : GIM_CheckFeatures, GIFBS_IsARM,
4762 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
4763 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
4764 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4765 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
4766 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
4767 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
4768 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRRegClassID,
4769 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
4770 : GIM_CheckIsSafeToFold, /*InsnID*/1,
4771 : // (and:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (xor:{ *:[i32] } GPR:{ *:[i32] }:$Rm, -1:{ *:[i32] })) => (BICrr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
4772 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::BICrr,
4773 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
4774 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
4775 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
4776 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
4777 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4778 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4779 : GIR_EraseFromParent, /*InsnID*/0,
4780 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
4781 : // GIR_Coverage, 162,
4782 : GIR_Done,
4783 : // Label 254: @10655
4784 : GIM_Try, /*On fail goto*//*Label 255*/ 10721, // Rule ID 495 //
4785 : GIM_CheckFeatures, GIFBS_IsThumb2,
4786 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
4787 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
4788 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4789 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
4790 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
4791 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
4792 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
4793 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
4794 : GIM_CheckIsSafeToFold, /*InsnID*/1,
4795 : // (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (xor:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, -1:{ *:[i32] })) => (t2BICrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
4796 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2BICrr,
4797 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
4798 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
4799 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
4800 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
4801 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4802 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4803 : GIR_EraseFromParent, /*InsnID*/0,
4804 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
4805 : // GIR_Coverage, 495,
4806 : GIR_Done,
4807 : // Label 255: @10721
4808 : GIM_Try, /*On fail goto*//*Label 256*/ 10759, // Rule ID 351 //
4809 : GIM_CheckFeatures, GIFBS_HasV6_IsThumb_IsThumb1Only,
4810 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::tGPRRegClassID,
4811 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::tGPRRegClassID,
4812 : GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 255,
4813 : // (and:{ *:[i32] } tGPR:{ *:[i32] }:$Rm, 255:{ *:[i32] }) => (tUXTB:{ *:[i32] } tGPR:{ *:[i32] }:$Rm)
4814 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::tUXTB,
4815 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
4816 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rm
4817 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
4818 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4819 : GIR_EraseFromParent, /*InsnID*/0,
4820 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
4821 : // GIR_Coverage, 351,
4822 : GIR_Done,
4823 : // Label 256: @10759
4824 : GIM_Try, /*On fail goto*//*Label 257*/ 10797, // Rule ID 352 //
4825 : GIM_CheckFeatures, GIFBS_HasV6_IsThumb_IsThumb1Only,
4826 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::tGPRRegClassID,
4827 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::tGPRRegClassID,
4828 : GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 65535,
4829 : // (and:{ *:[i32] } tGPR:{ *:[i32] }:$Rm, 65535:{ *:[i32] }) => (tUXTH:{ *:[i32] } tGPR:{ *:[i32] }:$Rm)
4830 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::tUXTH,
4831 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
4832 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rm
4833 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
4834 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4835 : GIR_EraseFromParent, /*InsnID*/0,
4836 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
4837 : // GIR_Coverage, 352,
4838 : GIR_Done,
4839 : // Label 257: @10797
4840 : GIM_Try, /*On fail goto*//*Label 258*/ 10849, // Rule ID 149 //
4841 : GIM_CheckFeatures, GIFBS_IsARM,
4842 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
4843 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
4844 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4845 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
4846 : GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_mod_imm,
4847 : // MIs[1] Operand 1
4848 : // No operand predicates
4849 : GIM_CheckIsSafeToFold, /*InsnID*/1,
4850 : // (and:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm) => (ANDri:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
4851 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::ANDri,
4852 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
4853 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
4854 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
4855 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
4856 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4857 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4858 : GIR_EraseFromParent, /*InsnID*/0,
4859 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
4860 : // GIR_Coverage, 149,
4861 : GIR_Done,
4862 : // Label 258: @10849
4863 : GIM_Try, /*On fail goto*//*Label 259*/ 10901, // Rule ID 485 //
4864 : GIM_CheckFeatures, GIFBS_IsThumb2,
4865 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
4866 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
4867 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4868 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
4869 : GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_t2_so_imm,
4870 : // MIs[1] Operand 1
4871 : // No operand predicates
4872 : GIM_CheckIsSafeToFold, /*InsnID*/1,
4873 : // (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm) => (t2ANDri:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
4874 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2ANDri,
4875 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
4876 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
4877 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
4878 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
4879 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4880 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4881 : GIR_EraseFromParent, /*InsnID*/0,
4882 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
4883 : // GIR_Coverage, 485,
4884 : GIR_Done,
4885 : // Label 259: @10901
4886 : GIM_Try, /*On fail goto*//*Label 260*/ 10950, // Rule ID 165 //
4887 : GIM_CheckFeatures, GIFBS_HasV6T2_IsARM,
4888 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
4889 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
4890 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4891 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
4892 : GIM_CheckCxxInsnPredicate, /*MI*/1, /*FnId*/GIPFP_MI_Predicate_bf_inv_mask_imm,
4893 : // MIs[1] Operand 1
4894 : // No operand predicates
4895 : GIM_CheckIsSafeToFold, /*InsnID*/1,
4896 : // (and:{ *:[i32] } GPR:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_bf_inv_mask_imm>>:$imm) => (BFC:{ *:[i32] } GPR:{ *:[i32] }:$src, (imm:{ *:[i32] }):$imm)
4897 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::BFC,
4898 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
4899 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
4900 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
4901 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
4902 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4903 : GIR_EraseFromParent, /*InsnID*/0,
4904 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
4905 : // GIR_Coverage, 165,
4906 : GIR_Done,
4907 : // Label 260: @10950
4908 : GIM_Try, /*On fail goto*//*Label 261*/ 10999, // Rule ID 497 //
4909 : GIM_CheckFeatures, GIFBS_IsThumb2,
4910 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
4911 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
4912 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4913 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
4914 : GIM_CheckCxxInsnPredicate, /*MI*/1, /*FnId*/GIPFP_MI_Predicate_bf_inv_mask_imm,
4915 : // MIs[1] Operand 1
4916 : // No operand predicates
4917 : GIM_CheckIsSafeToFold, /*InsnID*/1,
4918 : // (and:{ *:[i32] } rGPR:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_bf_inv_mask_imm>>:$imm) => (t2BFC:{ *:[i32] } rGPR:{ *:[i32] }:$src, (imm:{ *:[i32] }):$imm)
4919 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2BFC,
4920 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
4921 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
4922 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
4923 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
4924 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4925 : GIR_EraseFromParent, /*InsnID*/0,
4926 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
4927 : // GIR_Coverage, 497,
4928 : GIR_Done,
4929 : // Label 261: @10999
4930 : GIM_Try, /*On fail goto*//*Label 262*/ 11044, // Rule ID 150 //
4931 : GIM_CheckFeatures, GIFBS_IsARM,
4932 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
4933 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
4934 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
4935 : // (and:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) => (ANDrr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
4936 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::ANDrr,
4937 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
4938 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
4939 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
4940 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
4941 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4942 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4943 : GIR_EraseFromParent, /*InsnID*/0,
4944 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
4945 : // GIR_Coverage, 150,
4946 : GIR_Done,
4947 : // Label 262: @11044
4948 : GIM_Try, /*On fail goto*//*Label 263*/ 11089, // Rule ID 486 //
4949 : GIM_CheckFeatures, GIFBS_IsThumb2,
4950 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
4951 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
4952 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
4953 : // (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2ANDrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
4954 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2ANDrr,
4955 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
4956 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
4957 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
4958 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
4959 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4960 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4961 : GIR_EraseFromParent, /*InsnID*/0,
4962 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
4963 : // GIR_Coverage, 486,
4964 : GIR_Done,
4965 : // Label 263: @11089
4966 : GIM_Reject,
4967 : // Label 235: @11090
4968 : GIM_Reject,
4969 : // Label 232: @11091
4970 : GIM_Try, /*On fail goto*//*Label 264*/ 11141, // Rule ID 1102 //
4971 : GIM_CheckFeatures, GIFBS_HasNEON,
4972 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
4973 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
4974 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
4975 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
4976 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
4977 : // (and:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VANDd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
4978 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VANDd,
4979 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
4980 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
4981 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
4982 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
4983 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
4984 : GIR_EraseFromParent, /*InsnID*/0,
4985 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
4986 : // GIR_Coverage, 1102,
4987 : GIR_Done,
4988 : // Label 264: @11141
4989 : GIM_Reject,
4990 : // Label 233: @11142
4991 : GIM_Try, /*On fail goto*//*Label 265*/ 11192, // Rule ID 1103 //
4992 : GIM_CheckFeatures, GIFBS_HasNEON,
4993 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
4994 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
4995 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
4996 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
4997 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
4998 : // (and:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VANDq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
4999 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VANDq,
5000 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
5001 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
5002 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
5003 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
5004 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
5005 : GIR_EraseFromParent, /*InsnID*/0,
5006 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
5007 : // GIR_Coverage, 1103,
5008 : GIR_Done,
5009 : // Label 265: @11192
5010 : GIM_Reject,
5011 : // Label 234: @11193
5012 : GIM_Reject,
5013 : // Label 6: @11194
5014 : GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 7, /*)*//*default:*//*Label 269*/ 15376,
5015 : /*GILLT_s32*//*Label 266*/ 11206, 0,
5016 : /*GILLT_v2s32*//*Label 267*/ 15274, 0, 0,
5017 : /*GILLT_v4s32*//*Label 268*/ 15325,
5018 : // Label 266: @11206
5019 : GIM_Try, /*On fail goto*//*Label 270*/ 15273,
5020 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
5021 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
5022 : GIM_Try, /*On fail goto*//*Label 271*/ 11335, // Rule ID 2748 //
5023 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
5024 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
5025 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5026 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
5027 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5028 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
5029 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
5030 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_LSHR,
5031 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
5032 : GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
5033 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::GPRRegClassID,
5034 : GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 8,
5035 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 255,
5036 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
5037 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_ASHR,
5038 : GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
5039 : GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
5040 : GIM_RecordInsn, /*DefineMI*/4, /*MI*/3, /*OpIdx*/1, // MIs[4]
5041 : GIM_CheckOpcode, /*MI*/4, TargetOpcode::G_SHL,
5042 : GIM_CheckType, /*MI*/4, /*Op*/2, /*Type*/GILLT_s32,
5043 : // MIs[4] Rm
5044 : GIM_CheckIsSameOperand, /*MI*/4, /*OpIdx*/1, /*OtherMI*/2, /*OtherOpIdx*/1,
5045 : GIM_CheckConstantInt, /*MI*/4, /*Op*/2, 24,
5046 : GIM_CheckConstantInt, /*MI*/3, /*Op*/2, 16,
5047 : GIM_CheckIsSafeToFold, /*InsnID*/1,
5048 : GIM_CheckIsSafeToFold, /*InsnID*/2,
5049 : GIM_CheckIsSafeToFold, /*InsnID*/3,
5050 : GIM_CheckIsSafeToFold, /*InsnID*/4,
5051 : // (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)
5052 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::REVSH,
5053 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
5054 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rm
5055 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
5056 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
5057 : GIR_EraseFromParent, /*InsnID*/0,
5058 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
5059 : // GIR_Coverage, 2748,
5060 : GIR_Done,
5061 : // Label 271: @11335
5062 : GIM_Try, /*On fail goto*//*Label 272*/ 11454, // Rule ID 2781 //
5063 : GIM_CheckFeatures, GIFBS_IsThumb2,
5064 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
5065 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5066 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
5067 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5068 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
5069 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
5070 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_LSHR,
5071 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
5072 : GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
5073 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
5074 : GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 8,
5075 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 255,
5076 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
5077 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_ASHR,
5078 : GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
5079 : GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
5080 : GIM_RecordInsn, /*DefineMI*/4, /*MI*/3, /*OpIdx*/1, // MIs[4]
5081 : GIM_CheckOpcode, /*MI*/4, TargetOpcode::G_SHL,
5082 : GIM_CheckType, /*MI*/4, /*Op*/2, /*Type*/GILLT_s32,
5083 : // MIs[4] Rm
5084 : GIM_CheckIsSameOperand, /*MI*/4, /*OpIdx*/1, /*OtherMI*/2, /*OtherOpIdx*/1,
5085 : GIM_CheckConstantInt, /*MI*/4, /*Op*/2, 24,
5086 : GIM_CheckConstantInt, /*MI*/3, /*Op*/2, 16,
5087 : GIM_CheckIsSafeToFold, /*InsnID*/1,
5088 : GIM_CheckIsSafeToFold, /*InsnID*/2,
5089 : GIM_CheckIsSafeToFold, /*InsnID*/3,
5090 : GIM_CheckIsSafeToFold, /*InsnID*/4,
5091 : // (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)
5092 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2REVSH,
5093 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
5094 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rm
5095 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
5096 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
5097 : GIR_EraseFromParent, /*InsnID*/0,
5098 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
5099 : // GIR_Coverage, 2781,
5100 : GIR_Done,
5101 : // Label 272: @11454
5102 : GIM_Try, /*On fail goto*//*Label 273*/ 11573, // Rule ID 1747 //
5103 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
5104 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
5105 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5106 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ASHR,
5107 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5108 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
5109 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
5110 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_SHL,
5111 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
5112 : GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
5113 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::GPRRegClassID,
5114 : GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 24,
5115 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 16,
5116 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
5117 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_AND,
5118 : GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
5119 : GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
5120 : GIM_RecordInsn, /*DefineMI*/4, /*MI*/3, /*OpIdx*/1, // MIs[4]
5121 : GIM_CheckOpcode, /*MI*/4, TargetOpcode::G_LSHR,
5122 : GIM_CheckType, /*MI*/4, /*Op*/2, /*Type*/GILLT_s32,
5123 : // MIs[4] Rm
5124 : GIM_CheckIsSameOperand, /*MI*/4, /*OpIdx*/1, /*OtherMI*/2, /*OtherOpIdx*/1,
5125 : GIM_CheckConstantInt, /*MI*/4, /*Op*/2, 8,
5126 : GIM_CheckConstantInt, /*MI*/3, /*Op*/2, 255,
5127 : GIM_CheckIsSafeToFold, /*InsnID*/1,
5128 : GIM_CheckIsSafeToFold, /*InsnID*/2,
5129 : GIM_CheckIsSafeToFold, /*InsnID*/3,
5130 : GIM_CheckIsSafeToFold, /*InsnID*/4,
5131 : // (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)
5132 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::REVSH,
5133 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
5134 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rm
5135 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
5136 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
5137 : GIR_EraseFromParent, /*InsnID*/0,
5138 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
5139 : // GIR_Coverage, 1747,
5140 : GIR_Done,
5141 : // Label 273: @11573
5142 : GIM_Try, /*On fail goto*//*Label 274*/ 11692, // Rule ID 1977 //
5143 : GIM_CheckFeatures, GIFBS_IsThumb2,
5144 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
5145 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5146 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ASHR,
5147 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5148 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
5149 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
5150 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_SHL,
5151 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
5152 : GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
5153 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
5154 : GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 24,
5155 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 16,
5156 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
5157 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_AND,
5158 : GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
5159 : GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
5160 : GIM_RecordInsn, /*DefineMI*/4, /*MI*/3, /*OpIdx*/1, // MIs[4]
5161 : GIM_CheckOpcode, /*MI*/4, TargetOpcode::G_LSHR,
5162 : GIM_CheckType, /*MI*/4, /*Op*/2, /*Type*/GILLT_s32,
5163 : // MIs[4] Rm
5164 : GIM_CheckIsSameOperand, /*MI*/4, /*OpIdx*/1, /*OtherMI*/2, /*OtherOpIdx*/1,
5165 : GIM_CheckConstantInt, /*MI*/4, /*Op*/2, 8,
5166 : GIM_CheckConstantInt, /*MI*/3, /*Op*/2, 255,
5167 : GIM_CheckIsSafeToFold, /*InsnID*/1,
5168 : GIM_CheckIsSafeToFold, /*InsnID*/2,
5169 : GIM_CheckIsSafeToFold, /*InsnID*/3,
5170 : GIM_CheckIsSafeToFold, /*InsnID*/4,
5171 : // (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)
5172 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2REVSH,
5173 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
5174 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rm
5175 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
5176 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
5177 : GIR_EraseFromParent, /*InsnID*/0,
5178 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
5179 : // GIR_Coverage, 1977,
5180 : GIR_Done,
5181 : // Label 274: @11692
5182 : GIM_Try, /*On fail goto*//*Label 275*/ 11808, // Rule ID 2548 //
5183 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
5184 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
5185 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5186 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
5187 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5188 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
5189 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
5190 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ASHR,
5191 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
5192 : GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
5193 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
5194 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
5195 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_CONSTANT,
5196 : GIM_CheckI64ImmPredicate, /*MI*/3, /*Predicate*/GIPFP_I64_Predicate_pkh_asr_amt,
5197 : // MIs[3] Operand 1
5198 : // No operand predicates
5199 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 65535,
5200 : GIM_RecordInsn, /*DefineMI*/4, /*MI*/0, /*OpIdx*/2, // MIs[4]
5201 : GIM_CheckOpcode, /*MI*/4, TargetOpcode::G_AND,
5202 : GIM_CheckType, /*MI*/4, /*Op*/1, /*Type*/GILLT_s32,
5203 : GIM_CheckType, /*MI*/4, /*Op*/2, /*Type*/GILLT_s32,
5204 : GIM_CheckRegBankForClass, /*MI*/4, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
5205 : GIM_CheckConstantInt, /*MI*/4, /*Op*/2, 4294901760,
5206 : GIM_CheckIsSafeToFold, /*InsnID*/1,
5207 : GIM_CheckIsSafeToFold, /*InsnID*/2,
5208 : GIM_CheckIsSafeToFold, /*InsnID*/3,
5209 : GIM_CheckIsSafeToFold, /*InsnID*/4,
5210 : // (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)
5211 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::PKHTB,
5212 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
5213 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/4, /*OpIdx*/1, // Rn
5214 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rm
5215 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // sh
5216 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
5217 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
5218 : GIR_EraseFromParent, /*InsnID*/0,
5219 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
5220 : // GIR_Coverage, 2548,
5221 : GIR_Done,
5222 : // Label 275: @11808
5223 : GIM_Try, /*On fail goto*//*Label 276*/ 11924, // Rule ID 2585 //
5224 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
5225 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
5226 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5227 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
5228 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5229 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
5230 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
5231 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ASHR,
5232 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
5233 : GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
5234 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
5235 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
5236 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_CONSTANT,
5237 : GIM_CheckI64ImmPredicate, /*MI*/3, /*Predicate*/GIPFP_I64_Predicate_pkh_asr_amt,
5238 : // MIs[3] Operand 1
5239 : // No operand predicates
5240 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 65535,
5241 : GIM_RecordInsn, /*DefineMI*/4, /*MI*/0, /*OpIdx*/2, // MIs[4]
5242 : GIM_CheckOpcode, /*MI*/4, TargetOpcode::G_AND,
5243 : GIM_CheckType, /*MI*/4, /*Op*/1, /*Type*/GILLT_s32,
5244 : GIM_CheckType, /*MI*/4, /*Op*/2, /*Type*/GILLT_s32,
5245 : GIM_CheckRegBankForClass, /*MI*/4, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
5246 : GIM_CheckConstantInt, /*MI*/4, /*Op*/2, 4294901760,
5247 : GIM_CheckIsSafeToFold, /*InsnID*/1,
5248 : GIM_CheckIsSafeToFold, /*InsnID*/2,
5249 : GIM_CheckIsSafeToFold, /*InsnID*/3,
5250 : GIM_CheckIsSafeToFold, /*InsnID*/4,
5251 : // (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)
5252 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2PKHTB,
5253 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
5254 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/4, /*OpIdx*/1, // Rn
5255 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rm
5256 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // sh
5257 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
5258 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
5259 : GIR_EraseFromParent, /*InsnID*/0,
5260 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
5261 : // GIR_Coverage, 2585,
5262 : GIR_Done,
5263 : // Label 276: @11924
5264 : GIM_Try, /*On fail goto*//*Label 277*/ 12040, // Rule ID 2753 //
5265 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
5266 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
5267 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5268 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
5269 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5270 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
5271 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
5272 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_LSHR,
5273 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
5274 : GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
5275 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
5276 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
5277 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_CONSTANT,
5278 : GIM_CheckI64ImmPredicate, /*MI*/3, /*Predicate*/GIPFP_I64_Predicate_imm1_15,
5279 : // MIs[3] Operand 1
5280 : // No operand predicates
5281 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 65535,
5282 : GIM_RecordInsn, /*DefineMI*/4, /*MI*/0, /*OpIdx*/2, // MIs[4]
5283 : GIM_CheckOpcode, /*MI*/4, TargetOpcode::G_AND,
5284 : GIM_CheckType, /*MI*/4, /*Op*/1, /*Type*/GILLT_s32,
5285 : GIM_CheckType, /*MI*/4, /*Op*/2, /*Type*/GILLT_s32,
5286 : GIM_CheckRegBankForClass, /*MI*/4, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
5287 : GIM_CheckConstantInt, /*MI*/4, /*Op*/2, 4294901760,
5288 : GIM_CheckIsSafeToFold, /*InsnID*/1,
5289 : GIM_CheckIsSafeToFold, /*InsnID*/2,
5290 : GIM_CheckIsSafeToFold, /*InsnID*/3,
5291 : GIM_CheckIsSafeToFold, /*InsnID*/4,
5292 : // (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)
5293 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::PKHTB,
5294 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
5295 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/4, /*OpIdx*/1, // src1
5296 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // src2
5297 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // sh
5298 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
5299 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
5300 : GIR_EraseFromParent, /*InsnID*/0,
5301 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
5302 : // GIR_Coverage, 2753,
5303 : GIR_Done,
5304 : // Label 277: @12040
5305 : GIM_Try, /*On fail goto*//*Label 278*/ 12156, // Rule ID 2786 //
5306 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
5307 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
5308 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5309 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
5310 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5311 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
5312 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
5313 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_LSHR,
5314 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
5315 : GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
5316 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
5317 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
5318 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_CONSTANT,
5319 : GIM_CheckI64ImmPredicate, /*MI*/3, /*Predicate*/GIPFP_I64_Predicate_imm1_15,
5320 : // MIs[3] Operand 1
5321 : // No operand predicates
5322 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 65535,
5323 : GIM_RecordInsn, /*DefineMI*/4, /*MI*/0, /*OpIdx*/2, // MIs[4]
5324 : GIM_CheckOpcode, /*MI*/4, TargetOpcode::G_AND,
5325 : GIM_CheckType, /*MI*/4, /*Op*/1, /*Type*/GILLT_s32,
5326 : GIM_CheckType, /*MI*/4, /*Op*/2, /*Type*/GILLT_s32,
5327 : GIM_CheckRegBankForClass, /*MI*/4, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
5328 : GIM_CheckConstantInt, /*MI*/4, /*Op*/2, 4294901760,
5329 : GIM_CheckIsSafeToFold, /*InsnID*/1,
5330 : GIM_CheckIsSafeToFold, /*InsnID*/2,
5331 : GIM_CheckIsSafeToFold, /*InsnID*/3,
5332 : GIM_CheckIsSafeToFold, /*InsnID*/4,
5333 : // (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)
5334 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2PKHTB,
5335 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
5336 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/4, /*OpIdx*/1, // src1
5337 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // src2
5338 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // sh
5339 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
5340 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
5341 : GIR_EraseFromParent, /*InsnID*/0,
5342 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
5343 : // GIR_Coverage, 2786,
5344 : GIR_Done,
5345 : // Label 278: @12156
5346 : GIM_Try, /*On fail goto*//*Label 279*/ 12272, // Rule ID 2547 //
5347 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
5348 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
5349 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5350 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
5351 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5352 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
5353 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
5354 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_SHL,
5355 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
5356 : GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
5357 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
5358 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
5359 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_CONSTANT,
5360 : GIM_CheckI64ImmPredicate, /*MI*/3, /*Predicate*/GIPFP_I64_Predicate_pkh_lsl_amt,
5361 : // MIs[3] Operand 1
5362 : // No operand predicates
5363 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 4294901760,
5364 : GIM_RecordInsn, /*DefineMI*/4, /*MI*/0, /*OpIdx*/2, // MIs[4]
5365 : GIM_CheckOpcode, /*MI*/4, TargetOpcode::G_AND,
5366 : GIM_CheckType, /*MI*/4, /*Op*/1, /*Type*/GILLT_s32,
5367 : GIM_CheckType, /*MI*/4, /*Op*/2, /*Type*/GILLT_s32,
5368 : GIM_CheckRegBankForClass, /*MI*/4, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
5369 : GIM_CheckConstantInt, /*MI*/4, /*Op*/2, 65535,
5370 : GIM_CheckIsSafeToFold, /*InsnID*/1,
5371 : GIM_CheckIsSafeToFold, /*InsnID*/2,
5372 : GIM_CheckIsSafeToFold, /*InsnID*/3,
5373 : GIM_CheckIsSafeToFold, /*InsnID*/4,
5374 : // (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)
5375 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::PKHBT,
5376 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
5377 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/4, /*OpIdx*/1, // Rn
5378 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rm
5379 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // sh
5380 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
5381 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
5382 : GIR_EraseFromParent, /*InsnID*/0,
5383 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
5384 : // GIR_Coverage, 2547,
5385 : GIR_Done,
5386 : // Label 279: @12272
5387 : GIM_Try, /*On fail goto*//*Label 280*/ 12388, // Rule ID 2584 //
5388 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
5389 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
5390 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5391 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
5392 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5393 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
5394 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
5395 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_SHL,
5396 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
5397 : GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
5398 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
5399 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
5400 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_CONSTANT,
5401 : GIM_CheckI64ImmPredicate, /*MI*/3, /*Predicate*/GIPFP_I64_Predicate_pkh_lsl_amt,
5402 : // MIs[3] Operand 1
5403 : // No operand predicates
5404 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 4294901760,
5405 : GIM_RecordInsn, /*DefineMI*/4, /*MI*/0, /*OpIdx*/2, // MIs[4]
5406 : GIM_CheckOpcode, /*MI*/4, TargetOpcode::G_AND,
5407 : GIM_CheckType, /*MI*/4, /*Op*/1, /*Type*/GILLT_s32,
5408 : GIM_CheckType, /*MI*/4, /*Op*/2, /*Type*/GILLT_s32,
5409 : GIM_CheckRegBankForClass, /*MI*/4, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
5410 : GIM_CheckConstantInt, /*MI*/4, /*Op*/2, 65535,
5411 : GIM_CheckIsSafeToFold, /*InsnID*/1,
5412 : GIM_CheckIsSafeToFold, /*InsnID*/2,
5413 : GIM_CheckIsSafeToFold, /*InsnID*/3,
5414 : GIM_CheckIsSafeToFold, /*InsnID*/4,
5415 : // (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)
5416 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2PKHBT,
5417 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
5418 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/4, /*OpIdx*/1, // Rn
5419 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rm
5420 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // sh
5421 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
5422 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
5423 : GIR_EraseFromParent, /*InsnID*/0,
5424 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
5425 : // GIR_Coverage, 2584,
5426 : GIR_Done,
5427 : // Label 280: @12388
5428 : GIM_Try, /*On fail goto*//*Label 281*/ 12504, // Rule ID 205 //
5429 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
5430 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
5431 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5432 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
5433 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5434 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
5435 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
5436 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 4294901760,
5437 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5438 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_AND,
5439 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
5440 : GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
5441 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
5442 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_ASHR,
5443 : GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
5444 : GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
5445 : GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
5446 : GIM_RecordInsn, /*DefineMI*/4, /*MI*/3, /*OpIdx*/2, // MIs[4]
5447 : GIM_CheckOpcode, /*MI*/4, TargetOpcode::G_CONSTANT,
5448 : GIM_CheckI64ImmPredicate, /*MI*/4, /*Predicate*/GIPFP_I64_Predicate_pkh_asr_amt,
5449 : // MIs[4] Operand 1
5450 : // No operand predicates
5451 : GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 65535,
5452 : GIM_CheckIsSafeToFold, /*InsnID*/1,
5453 : GIM_CheckIsSafeToFold, /*InsnID*/2,
5454 : GIM_CheckIsSafeToFold, /*InsnID*/3,
5455 : GIM_CheckIsSafeToFold, /*InsnID*/4,
5456 : // (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)
5457 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::PKHTB,
5458 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
5459 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
5460 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // Rm
5461 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/4, // sh
5462 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
5463 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
5464 : GIR_EraseFromParent, /*InsnID*/0,
5465 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
5466 : // GIR_Coverage, 205,
5467 : GIR_Done,
5468 : // Label 281: @12504
5469 : GIM_Try, /*On fail goto*//*Label 282*/ 12620, // Rule ID 544 //
5470 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
5471 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
5472 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5473 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
5474 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5475 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
5476 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
5477 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 4294901760,
5478 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5479 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_AND,
5480 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
5481 : GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
5482 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
5483 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_ASHR,
5484 : GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
5485 : GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
5486 : GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
5487 : GIM_RecordInsn, /*DefineMI*/4, /*MI*/3, /*OpIdx*/2, // MIs[4]
5488 : GIM_CheckOpcode, /*MI*/4, TargetOpcode::G_CONSTANT,
5489 : GIM_CheckI64ImmPredicate, /*MI*/4, /*Predicate*/GIPFP_I64_Predicate_pkh_asr_amt,
5490 : // MIs[4] Operand 1
5491 : // No operand predicates
5492 : GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 65535,
5493 : GIM_CheckIsSafeToFold, /*InsnID*/1,
5494 : GIM_CheckIsSafeToFold, /*InsnID*/2,
5495 : GIM_CheckIsSafeToFold, /*InsnID*/3,
5496 : GIM_CheckIsSafeToFold, /*InsnID*/4,
5497 : // (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)
5498 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2PKHTB,
5499 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
5500 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
5501 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // Rm
5502 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/4, // sh
5503 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
5504 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
5505 : GIR_EraseFromParent, /*InsnID*/0,
5506 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
5507 : // GIR_Coverage, 544,
5508 : GIR_Done,
5509 : // Label 282: @12620
5510 : GIM_Try, /*On fail goto*//*Label 283*/ 12736, // Rule ID 1752 //
5511 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
5512 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
5513 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5514 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
5515 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5516 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
5517 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
5518 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 4294901760,
5519 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5520 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_AND,
5521 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
5522 : GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
5523 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
5524 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_LSHR,
5525 : GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
5526 : GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
5527 : GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
5528 : GIM_RecordInsn, /*DefineMI*/4, /*MI*/3, /*OpIdx*/2, // MIs[4]
5529 : GIM_CheckOpcode, /*MI*/4, TargetOpcode::G_CONSTANT,
5530 : GIM_CheckI64ImmPredicate, /*MI*/4, /*Predicate*/GIPFP_I64_Predicate_imm1_15,
5531 : // MIs[4] Operand 1
5532 : // No operand predicates
5533 : GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 65535,
5534 : GIM_CheckIsSafeToFold, /*InsnID*/1,
5535 : GIM_CheckIsSafeToFold, /*InsnID*/2,
5536 : GIM_CheckIsSafeToFold, /*InsnID*/3,
5537 : GIM_CheckIsSafeToFold, /*InsnID*/4,
5538 : // (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)
5539 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::PKHTB,
5540 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
5541 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src1
5542 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // src2
5543 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/4, // sh
5544 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
5545 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
5546 : GIR_EraseFromParent, /*InsnID*/0,
5547 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
5548 : // GIR_Coverage, 1752,
5549 : GIR_Done,
5550 : // Label 283: @12736
5551 : GIM_Try, /*On fail goto*//*Label 284*/ 12852, // Rule ID 1982 //
5552 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
5553 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
5554 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5555 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
5556 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5557 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
5558 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
5559 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 4294901760,
5560 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5561 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_AND,
5562 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
5563 : GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
5564 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
5565 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_LSHR,
5566 : GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
5567 : GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
5568 : GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
5569 : GIM_RecordInsn, /*DefineMI*/4, /*MI*/3, /*OpIdx*/2, // MIs[4]
5570 : GIM_CheckOpcode, /*MI*/4, TargetOpcode::G_CONSTANT,
5571 : GIM_CheckI64ImmPredicate, /*MI*/4, /*Predicate*/GIPFP_I64_Predicate_imm1_15,
5572 : // MIs[4] Operand 1
5573 : // No operand predicates
5574 : GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 65535,
5575 : GIM_CheckIsSafeToFold, /*InsnID*/1,
5576 : GIM_CheckIsSafeToFold, /*InsnID*/2,
5577 : GIM_CheckIsSafeToFold, /*InsnID*/3,
5578 : GIM_CheckIsSafeToFold, /*InsnID*/4,
5579 : // (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)
5580 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2PKHTB,
5581 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
5582 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src1
5583 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // src2
5584 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/4, // sh
5585 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
5586 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
5587 : GIR_EraseFromParent, /*InsnID*/0,
5588 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
5589 : // GIR_Coverage, 1982,
5590 : GIR_Done,
5591 : // Label 284: @12852
5592 : GIM_Try, /*On fail goto*//*Label 285*/ 12968, // Rule ID 204 //
5593 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
5594 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
5595 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5596 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
5597 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5598 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
5599 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
5600 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 65535,
5601 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5602 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_AND,
5603 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
5604 : GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
5605 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
5606 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_SHL,
5607 : GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
5608 : GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
5609 : GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
5610 : GIM_RecordInsn, /*DefineMI*/4, /*MI*/3, /*OpIdx*/2, // MIs[4]
5611 : GIM_CheckOpcode, /*MI*/4, TargetOpcode::G_CONSTANT,
5612 : GIM_CheckI64ImmPredicate, /*MI*/4, /*Predicate*/GIPFP_I64_Predicate_pkh_lsl_amt,
5613 : // MIs[4] Operand 1
5614 : // No operand predicates
5615 : GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 4294901760,
5616 : GIM_CheckIsSafeToFold, /*InsnID*/1,
5617 : GIM_CheckIsSafeToFold, /*InsnID*/2,
5618 : GIM_CheckIsSafeToFold, /*InsnID*/3,
5619 : GIM_CheckIsSafeToFold, /*InsnID*/4,
5620 : // (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)
5621 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::PKHBT,
5622 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
5623 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
5624 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // Rm
5625 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/4, // sh
5626 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
5627 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
5628 : GIR_EraseFromParent, /*InsnID*/0,
5629 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
5630 : // GIR_Coverage, 204,
5631 : GIR_Done,
5632 : // Label 285: @12968
5633 : GIM_Try, /*On fail goto*//*Label 286*/ 13084, // Rule ID 543 //
5634 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
5635 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
5636 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5637 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
5638 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5639 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
5640 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
5641 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 65535,
5642 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5643 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_AND,
5644 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
5645 : GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
5646 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
5647 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_SHL,
5648 : GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
5649 : GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
5650 : GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
5651 : GIM_RecordInsn, /*DefineMI*/4, /*MI*/3, /*OpIdx*/2, // MIs[4]
5652 : GIM_CheckOpcode, /*MI*/4, TargetOpcode::G_CONSTANT,
5653 : GIM_CheckI64ImmPredicate, /*MI*/4, /*Predicate*/GIPFP_I64_Predicate_pkh_lsl_amt,
5654 : // MIs[4] Operand 1
5655 : // No operand predicates
5656 : GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 4294901760,
5657 : GIM_CheckIsSafeToFold, /*InsnID*/1,
5658 : GIM_CheckIsSafeToFold, /*InsnID*/2,
5659 : GIM_CheckIsSafeToFold, /*InsnID*/3,
5660 : GIM_CheckIsSafeToFold, /*InsnID*/4,
5661 : // (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)
5662 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2PKHBT,
5663 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
5664 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
5665 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // Rm
5666 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/4, // sh
5667 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
5668 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
5669 : GIR_EraseFromParent, /*InsnID*/0,
5670 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
5671 : // GIR_Coverage, 543,
5672 : GIR_Done,
5673 : // Label 286: @13084
5674 : GIM_Try, /*On fail goto*//*Label 287*/ 13171, // Rule ID 1748 //
5675 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
5676 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
5677 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5678 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
5679 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5680 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
5681 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
5682 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 65535,
5683 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5684 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_AND,
5685 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
5686 : GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
5687 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
5688 : GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 4294901760,
5689 : GIM_CheckIsSafeToFold, /*InsnID*/1,
5690 : GIM_CheckIsSafeToFold, /*InsnID*/2,
5691 : // (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] })
5692 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::PKHBT,
5693 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
5694 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
5695 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rm
5696 : GIR_AddImm, /*InsnID*/0, /*Imm*/0,
5697 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
5698 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
5699 : GIR_EraseFromParent, /*InsnID*/0,
5700 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
5701 : // GIR_Coverage, 1748,
5702 : GIR_Done,
5703 : // Label 287: @13171
5704 : GIM_Try, /*On fail goto*//*Label 288*/ 13258, // Rule ID 1978 //
5705 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
5706 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
5707 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5708 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
5709 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5710 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
5711 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
5712 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 65535,
5713 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5714 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_AND,
5715 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
5716 : GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
5717 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
5718 : GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 4294901760,
5719 : GIM_CheckIsSafeToFold, /*InsnID*/1,
5720 : GIM_CheckIsSafeToFold, /*InsnID*/2,
5721 : // (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] })
5722 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2PKHBT,
5723 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
5724 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src1
5725 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // src2
5726 : GIR_AddImm, /*InsnID*/0, /*Imm*/0,
5727 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
5728 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
5729 : GIR_EraseFromParent, /*InsnID*/0,
5730 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
5731 : // GIR_Coverage, 1978,
5732 : GIR_Done,
5733 : // Label 288: @13258
5734 : GIM_Try, /*On fail goto*//*Label 289*/ 13345, // Rule ID 2749 //
5735 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
5736 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
5737 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5738 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
5739 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5740 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
5741 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
5742 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 4294901760,
5743 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5744 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_AND,
5745 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
5746 : GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
5747 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
5748 : GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 65535,
5749 : GIM_CheckIsSafeToFold, /*InsnID*/1,
5750 : GIM_CheckIsSafeToFold, /*InsnID*/2,
5751 : // (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] })
5752 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::PKHBT,
5753 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
5754 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rn
5755 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
5756 : GIR_AddImm, /*InsnID*/0, /*Imm*/0,
5757 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
5758 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
5759 : GIR_EraseFromParent, /*InsnID*/0,
5760 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
5761 : // GIR_Coverage, 2749,
5762 : GIR_Done,
5763 : // Label 289: @13345
5764 : GIM_Try, /*On fail goto*//*Label 290*/ 13432, // Rule ID 2782 //
5765 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
5766 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
5767 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5768 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
5769 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5770 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
5771 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
5772 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 4294901760,
5773 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5774 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_AND,
5775 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
5776 : GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
5777 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
5778 : GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 65535,
5779 : GIM_CheckIsSafeToFold, /*InsnID*/1,
5780 : GIM_CheckIsSafeToFold, /*InsnID*/2,
5781 : // (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] })
5782 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2PKHBT,
5783 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
5784 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // src1
5785 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src2
5786 : GIR_AddImm, /*InsnID*/0, /*Imm*/0,
5787 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
5788 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
5789 : GIR_EraseFromParent, /*InsnID*/0,
5790 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
5791 : // GIR_Coverage, 2782,
5792 : GIR_Done,
5793 : // Label 290: @13432
5794 : GIM_Try, /*On fail goto*//*Label 291*/ 13527, // Rule ID 1751 //
5795 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
5796 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
5797 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5798 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
5799 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5800 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
5801 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
5802 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 4294901760,
5803 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5804 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ASHR,
5805 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
5806 : GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
5807 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
5808 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
5809 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_CONSTANT,
5810 : GIM_CheckI64ImmPredicate, /*MI*/3, /*Predicate*/GIPFP_I64_Predicate_imm16_31,
5811 : // MIs[3] Operand 1
5812 : // No operand predicates
5813 : GIM_CheckIsSafeToFold, /*InsnID*/1,
5814 : GIM_CheckIsSafeToFold, /*InsnID*/2,
5815 : GIM_CheckIsSafeToFold, /*InsnID*/3,
5816 : // (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)
5817 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::PKHTB,
5818 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
5819 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src1
5820 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // src2
5821 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // sh
5822 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
5823 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
5824 : GIR_EraseFromParent, /*InsnID*/0,
5825 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
5826 : // GIR_Coverage, 1751,
5827 : GIR_Done,
5828 : // Label 291: @13527
5829 : GIM_Try, /*On fail goto*//*Label 292*/ 13622, // Rule ID 1981 //
5830 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
5831 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
5832 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5833 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
5834 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5835 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
5836 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
5837 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 4294901760,
5838 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5839 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ASHR,
5840 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
5841 : GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
5842 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
5843 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
5844 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_CONSTANT,
5845 : GIM_CheckI64ImmPredicate, /*MI*/3, /*Predicate*/GIPFP_I64_Predicate_imm16_31,
5846 : // MIs[3] Operand 1
5847 : // No operand predicates
5848 : GIM_CheckIsSafeToFold, /*InsnID*/1,
5849 : GIM_CheckIsSafeToFold, /*InsnID*/2,
5850 : GIM_CheckIsSafeToFold, /*InsnID*/3,
5851 : // (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)
5852 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2PKHTB,
5853 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
5854 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src1
5855 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // src2
5856 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // sh
5857 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
5858 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
5859 : GIR_EraseFromParent, /*InsnID*/0,
5860 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
5861 : // GIR_Coverage, 1981,
5862 : GIR_Done,
5863 : // Label 292: @13622
5864 : GIM_Try, /*On fail goto*//*Label 293*/ 13717, // Rule ID 1750 //
5865 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
5866 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
5867 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5868 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
5869 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5870 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
5871 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
5872 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 4294901760,
5873 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5874 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_LSHR,
5875 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
5876 : GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
5877 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
5878 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
5879 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_CONSTANT,
5880 : GIM_CheckI64ImmPredicate, /*MI*/3, /*Predicate*/GIPFP_I64_Predicate_imm16,
5881 : // MIs[3] Operand 1
5882 : // No operand predicates
5883 : GIM_CheckIsSafeToFold, /*InsnID*/1,
5884 : GIM_CheckIsSafeToFold, /*InsnID*/2,
5885 : GIM_CheckIsSafeToFold, /*InsnID*/3,
5886 : // (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)
5887 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::PKHTB,
5888 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
5889 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src1
5890 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // src2
5891 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // sh
5892 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
5893 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
5894 : GIR_EraseFromParent, /*InsnID*/0,
5895 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
5896 : // GIR_Coverage, 1750,
5897 : GIR_Done,
5898 : // Label 293: @13717
5899 : GIM_Try, /*On fail goto*//*Label 294*/ 13812, // Rule ID 1980 //
5900 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
5901 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
5902 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5903 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
5904 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5905 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
5906 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
5907 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 4294901760,
5908 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5909 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_LSHR,
5910 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
5911 : GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
5912 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
5913 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
5914 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_CONSTANT,
5915 : GIM_CheckI64ImmPredicate, /*MI*/3, /*Predicate*/GIPFP_I64_Predicate_imm16,
5916 : // MIs[3] Operand 1
5917 : // No operand predicates
5918 : GIM_CheckIsSafeToFold, /*InsnID*/1,
5919 : GIM_CheckIsSafeToFold, /*InsnID*/2,
5920 : GIM_CheckIsSafeToFold, /*InsnID*/3,
5921 : // (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)
5922 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2PKHTB,
5923 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
5924 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src1
5925 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // src2
5926 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // sh
5927 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
5928 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
5929 : GIR_EraseFromParent, /*InsnID*/0,
5930 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
5931 : // GIR_Coverage, 1980,
5932 : GIR_Done,
5933 : // Label 294: @13812
5934 : GIM_Try, /*On fail goto*//*Label 295*/ 13907, // Rule ID 1749 //
5935 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
5936 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
5937 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5938 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
5939 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5940 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
5941 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
5942 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 65535,
5943 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5944 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_SHL,
5945 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
5946 : GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
5947 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
5948 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
5949 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_CONSTANT,
5950 : GIM_CheckI64ImmPredicate, /*MI*/3, /*Predicate*/GIPFP_I64_Predicate_imm16_31,
5951 : // MIs[3] Operand 1
5952 : // No operand predicates
5953 : GIM_CheckIsSafeToFold, /*InsnID*/1,
5954 : GIM_CheckIsSafeToFold, /*InsnID*/2,
5955 : GIM_CheckIsSafeToFold, /*InsnID*/3,
5956 : // (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)
5957 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::PKHBT,
5958 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
5959 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
5960 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rm
5961 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // sh
5962 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
5963 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
5964 : GIR_EraseFromParent, /*InsnID*/0,
5965 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
5966 : // GIR_Coverage, 1749,
5967 : GIR_Done,
5968 : // Label 295: @13907
5969 : GIM_Try, /*On fail goto*//*Label 296*/ 14002, // Rule ID 1979 //
5970 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
5971 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
5972 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5973 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
5974 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5975 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
5976 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
5977 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 65535,
5978 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5979 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_SHL,
5980 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
5981 : GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
5982 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
5983 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
5984 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_CONSTANT,
5985 : GIM_CheckI64ImmPredicate, /*MI*/3, /*Predicate*/GIPFP_I64_Predicate_imm16_31,
5986 : // MIs[3] Operand 1
5987 : // No operand predicates
5988 : GIM_CheckIsSafeToFold, /*InsnID*/1,
5989 : GIM_CheckIsSafeToFold, /*InsnID*/2,
5990 : GIM_CheckIsSafeToFold, /*InsnID*/3,
5991 : // (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)
5992 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2PKHBT,
5993 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
5994 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src1
5995 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // src2
5996 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // sh
5997 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
5998 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
5999 : GIR_EraseFromParent, /*InsnID*/0,
6000 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
6001 : // GIR_Coverage, 1979,
6002 : GIR_Done,
6003 : // Label 296: @14002
6004 : GIM_Try, /*On fail goto*//*Label 297*/ 14097, // Rule ID 2752 //
6005 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
6006 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
6007 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6008 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ASHR,
6009 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
6010 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
6011 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
6012 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6013 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
6014 : GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_imm16_31,
6015 : // MIs[2] Operand 1
6016 : // No operand predicates
6017 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
6018 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_AND,
6019 : GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
6020 : GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
6021 : GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
6022 : GIM_CheckConstantInt, /*MI*/3, /*Op*/2, 4294901760,
6023 : GIM_CheckIsSafeToFold, /*InsnID*/1,
6024 : GIM_CheckIsSafeToFold, /*InsnID*/2,
6025 : GIM_CheckIsSafeToFold, /*InsnID*/3,
6026 : // (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)
6027 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::PKHTB,
6028 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
6029 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // src1
6030 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src2
6031 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // sh
6032 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
6033 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6034 : GIR_EraseFromParent, /*InsnID*/0,
6035 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
6036 : // GIR_Coverage, 2752,
6037 : GIR_Done,
6038 : // Label 297: @14097
6039 : GIM_Try, /*On fail goto*//*Label 298*/ 14192, // Rule ID 2785 //
6040 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
6041 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
6042 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6043 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ASHR,
6044 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
6045 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
6046 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
6047 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6048 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
6049 : GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_imm16_31,
6050 : // MIs[2] Operand 1
6051 : // No operand predicates
6052 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
6053 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_AND,
6054 : GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
6055 : GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
6056 : GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
6057 : GIM_CheckConstantInt, /*MI*/3, /*Op*/2, 4294901760,
6058 : GIM_CheckIsSafeToFold, /*InsnID*/1,
6059 : GIM_CheckIsSafeToFold, /*InsnID*/2,
6060 : GIM_CheckIsSafeToFold, /*InsnID*/3,
6061 : // (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)
6062 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2PKHTB,
6063 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
6064 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // src1
6065 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src2
6066 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // sh
6067 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
6068 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6069 : GIR_EraseFromParent, /*InsnID*/0,
6070 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
6071 : // GIR_Coverage, 2785,
6072 : GIR_Done,
6073 : // Label 298: @14192
6074 : GIM_Try, /*On fail goto*//*Label 299*/ 14287, // Rule ID 2751 //
6075 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
6076 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
6077 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6078 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_LSHR,
6079 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
6080 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
6081 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
6082 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6083 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
6084 : GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_imm16,
6085 : // MIs[2] Operand 1
6086 : // No operand predicates
6087 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
6088 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_AND,
6089 : GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
6090 : GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
6091 : GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
6092 : GIM_CheckConstantInt, /*MI*/3, /*Op*/2, 4294901760,
6093 : GIM_CheckIsSafeToFold, /*InsnID*/1,
6094 : GIM_CheckIsSafeToFold, /*InsnID*/2,
6095 : GIM_CheckIsSafeToFold, /*InsnID*/3,
6096 : // (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)
6097 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::PKHTB,
6098 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
6099 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // src1
6100 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src2
6101 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // sh
6102 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
6103 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6104 : GIR_EraseFromParent, /*InsnID*/0,
6105 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
6106 : // GIR_Coverage, 2751,
6107 : GIR_Done,
6108 : // Label 299: @14287
6109 : GIM_Try, /*On fail goto*//*Label 300*/ 14382, // Rule ID 2784 //
6110 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
6111 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
6112 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6113 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_LSHR,
6114 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
6115 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
6116 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
6117 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6118 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
6119 : GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_imm16,
6120 : // MIs[2] Operand 1
6121 : // No operand predicates
6122 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
6123 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_AND,
6124 : GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
6125 : GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
6126 : GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
6127 : GIM_CheckConstantInt, /*MI*/3, /*Op*/2, 4294901760,
6128 : GIM_CheckIsSafeToFold, /*InsnID*/1,
6129 : GIM_CheckIsSafeToFold, /*InsnID*/2,
6130 : GIM_CheckIsSafeToFold, /*InsnID*/3,
6131 : // (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)
6132 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2PKHTB,
6133 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
6134 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // src1
6135 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src2
6136 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // sh
6137 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
6138 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6139 : GIR_EraseFromParent, /*InsnID*/0,
6140 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
6141 : // GIR_Coverage, 2784,
6142 : GIR_Done,
6143 : // Label 300: @14382
6144 : GIM_Try, /*On fail goto*//*Label 301*/ 14477, // Rule ID 2750 //
6145 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
6146 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
6147 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6148 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SHL,
6149 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
6150 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
6151 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
6152 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6153 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
6154 : GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_imm16_31,
6155 : // MIs[2] Operand 1
6156 : // No operand predicates
6157 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
6158 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_AND,
6159 : GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
6160 : GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
6161 : GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
6162 : GIM_CheckConstantInt, /*MI*/3, /*Op*/2, 65535,
6163 : GIM_CheckIsSafeToFold, /*InsnID*/1,
6164 : GIM_CheckIsSafeToFold, /*InsnID*/2,
6165 : GIM_CheckIsSafeToFold, /*InsnID*/3,
6166 : // (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)
6167 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::PKHBT,
6168 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
6169 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // Rn
6170 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
6171 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // sh
6172 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
6173 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6174 : GIR_EraseFromParent, /*InsnID*/0,
6175 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
6176 : // GIR_Coverage, 2750,
6177 : GIR_Done,
6178 : // Label 301: @14477
6179 : GIM_Try, /*On fail goto*//*Label 302*/ 14572, // Rule ID 2783 //
6180 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
6181 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
6182 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6183 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SHL,
6184 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
6185 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
6186 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
6187 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6188 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
6189 : GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_imm16_31,
6190 : // MIs[2] Operand 1
6191 : // No operand predicates
6192 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
6193 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_AND,
6194 : GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
6195 : GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
6196 : GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
6197 : GIM_CheckConstantInt, /*MI*/3, /*Op*/2, 65535,
6198 : GIM_CheckIsSafeToFold, /*InsnID*/1,
6199 : GIM_CheckIsSafeToFold, /*InsnID*/2,
6200 : GIM_CheckIsSafeToFold, /*InsnID*/3,
6201 : // (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)
6202 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2PKHBT,
6203 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
6204 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // src1
6205 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src2
6206 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // sh
6207 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
6208 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6209 : GIR_EraseFromParent, /*InsnID*/0,
6210 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
6211 : // GIR_Coverage, 2783,
6212 : GIR_Done,
6213 : // Label 302: @14572
6214 : GIM_Try, /*On fail goto*//*Label 303*/ 14645, // Rule ID 2572 //
6215 : GIM_CheckFeatures, GIFBS_IsThumb2,
6216 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
6217 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6218 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
6219 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
6220 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
6221 : GIM_CheckConstantInt, /*MI*/1, /*Op*/1, -1,
6222 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6223 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
6224 : GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_t2_so_imm,
6225 : // MIs[2] Operand 1
6226 : // No operand predicates
6227 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
6228 : GIM_CheckIsSafeToFold, /*InsnID*/1,
6229 : GIM_CheckIsSafeToFold, /*InsnID*/2,
6230 : // (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)
6231 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2ORNri,
6232 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
6233 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
6234 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm
6235 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
6236 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6237 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6238 : GIR_EraseFromParent, /*InsnID*/0,
6239 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
6240 : // GIR_Coverage, 2572,
6241 : GIR_Done,
6242 : // Label 303: @14645
6243 : GIM_Try, /*On fail goto*//*Label 304*/ 14718, // Rule ID 2571 //
6244 : GIM_CheckFeatures, GIFBS_IsThumb2,
6245 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
6246 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6247 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
6248 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
6249 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
6250 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
6251 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
6252 : GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_t2_so_imm,
6253 : // MIs[2] Operand 1
6254 : // No operand predicates
6255 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
6256 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
6257 : GIM_CheckIsSafeToFold, /*InsnID*/1,
6258 : GIM_CheckIsSafeToFold, /*InsnID*/2,
6259 : // (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)
6260 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2ORNri,
6261 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
6262 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
6263 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm
6264 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
6265 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6266 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6267 : GIR_EraseFromParent, /*InsnID*/0,
6268 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
6269 : // GIR_Coverage, 2571,
6270 : GIR_Done,
6271 : // Label 304: @14718
6272 : GIM_Try, /*On fail goto*//*Label 305*/ 14791, // Rule ID 2570 //
6273 : GIM_CheckFeatures, GIFBS_IsThumb2,
6274 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
6275 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
6276 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6277 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
6278 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
6279 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
6280 : GIM_CheckConstantInt, /*MI*/1, /*Op*/1, -1,
6281 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6282 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
6283 : GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_t2_so_imm,
6284 : // MIs[2] Operand 1
6285 : // No operand predicates
6286 : GIM_CheckIsSafeToFold, /*InsnID*/1,
6287 : GIM_CheckIsSafeToFold, /*InsnID*/2,
6288 : // (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)
6289 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2ORNri,
6290 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
6291 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
6292 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm
6293 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
6294 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6295 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6296 : GIR_EraseFromParent, /*InsnID*/0,
6297 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
6298 : // GIR_Coverage, 2570,
6299 : GIR_Done,
6300 : // Label 305: @14791
6301 : GIM_Try, /*On fail goto*//*Label 306*/ 14864, // Rule ID 500 //
6302 : GIM_CheckFeatures, GIFBS_IsThumb2,
6303 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
6304 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
6305 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6306 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
6307 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
6308 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
6309 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
6310 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
6311 : GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_t2_so_imm,
6312 : // MIs[2] Operand 1
6313 : // No operand predicates
6314 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
6315 : GIM_CheckIsSafeToFold, /*InsnID*/1,
6316 : GIM_CheckIsSafeToFold, /*InsnID*/2,
6317 : // (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)
6318 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2ORNri,
6319 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
6320 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
6321 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm
6322 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
6323 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6324 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6325 : GIR_EraseFromParent, /*InsnID*/0,
6326 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
6327 : // GIR_Coverage, 500,
6328 : GIR_Done,
6329 : // Label 306: @14864
6330 : GIM_Try, /*On fail goto*//*Label 307*/ 14930, // Rule ID 2573 //
6331 : GIM_CheckFeatures, GIFBS_IsThumb2,
6332 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
6333 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6334 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
6335 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
6336 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
6337 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
6338 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
6339 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
6340 : GIM_CheckIsSafeToFold, /*InsnID*/1,
6341 : // (or:{ *:[i32] } (xor:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, -1:{ *:[i32] }), rGPR:{ *:[i32] }:$Rn) => (t2ORNrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
6342 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2ORNrr,
6343 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
6344 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
6345 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
6346 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
6347 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6348 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6349 : GIR_EraseFromParent, /*InsnID*/0,
6350 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
6351 : // GIR_Coverage, 2573,
6352 : GIR_Done,
6353 : // Label 307: @14930
6354 : GIM_Try, /*On fail goto*//*Label 308*/ 14996, // Rule ID 501 //
6355 : GIM_CheckFeatures, GIFBS_IsThumb2,
6356 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
6357 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
6358 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6359 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
6360 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
6361 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
6362 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
6363 : GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
6364 : GIM_CheckIsSafeToFold, /*InsnID*/1,
6365 : // (or:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (xor:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, -1:{ *:[i32] })) => (t2ORNrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
6366 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2ORNrr,
6367 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
6368 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
6369 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
6370 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
6371 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6372 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6373 : GIR_EraseFromParent, /*InsnID*/0,
6374 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
6375 : // GIR_Coverage, 501,
6376 : GIR_Done,
6377 : // Label 308: @14996
6378 : GIM_Try, /*On fail goto*//*Label 309*/ 15037, // Rule ID 1702 //
6379 : GIM_CheckFeatures, GIFBS_HasV6T2_IsARM,
6380 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
6381 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
6382 : GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 4294901760,
6383 : // (or:{ *:[i32] } GPR:{ *:[i32] }:$src, 4294901760:{ *:[i32] }) => (MOVTi16:{ *:[i32] } GPR:{ *:[i32] }:$src, 65535:{ *:[i32] })
6384 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MOVTi16,
6385 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
6386 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
6387 : GIR_AddImm, /*InsnID*/0, /*Imm*/65535,
6388 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
6389 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6390 : GIR_EraseFromParent, /*InsnID*/0,
6391 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
6392 : // GIR_Coverage, 1702,
6393 : GIR_Done,
6394 : // Label 309: @15037
6395 : GIM_Try, /*On fail goto*//*Label 310*/ 15078, // Rule ID 1898 //
6396 : GIM_CheckFeatures, GIFBS_IsThumb2,
6397 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
6398 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
6399 : GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 4294901760,
6400 : // (or:{ *:[i32] } rGPR:{ *:[i32] }:$src, 4294901760:{ *:[i32] }) => (t2MOVTi16:{ *:[i32] } rGPR:{ *:[i32] }:$src, 65535:{ *:[i32] })
6401 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2MOVTi16,
6402 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
6403 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
6404 : GIR_AddImm, /*InsnID*/0, /*Imm*/65535,
6405 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
6406 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6407 : GIR_EraseFromParent, /*InsnID*/0,
6408 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
6409 : // GIR_Coverage, 1898,
6410 : GIR_Done,
6411 : // Label 310: @15078
6412 : GIM_Try, /*On fail goto*//*Label 311*/ 15130, // Rule ID 153 //
6413 : GIM_CheckFeatures, GIFBS_IsARM,
6414 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
6415 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
6416 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6417 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
6418 : GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_mod_imm,
6419 : // MIs[1] Operand 1
6420 : // No operand predicates
6421 : GIM_CheckIsSafeToFold, /*InsnID*/1,
6422 : // (or:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm) => (ORRri:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
6423 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::ORRri,
6424 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
6425 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
6426 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
6427 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
6428 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6429 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6430 : GIR_EraseFromParent, /*InsnID*/0,
6431 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
6432 : // GIR_Coverage, 153,
6433 : GIR_Done,
6434 : // Label 311: @15130
6435 : GIM_Try, /*On fail goto*//*Label 312*/ 15182, // Rule ID 488 //
6436 : GIM_CheckFeatures, GIFBS_IsThumb2,
6437 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
6438 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
6439 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6440 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
6441 : GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_t2_so_imm,
6442 : // MIs[1] Operand 1
6443 : // No operand predicates
6444 : GIM_CheckIsSafeToFold, /*InsnID*/1,
6445 : // (or:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm) => (t2ORRri:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
6446 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2ORRri,
6447 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
6448 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
6449 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
6450 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
6451 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6452 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6453 : GIR_EraseFromParent, /*InsnID*/0,
6454 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
6455 : // GIR_Coverage, 488,
6456 : GIR_Done,
6457 : // Label 312: @15182
6458 : GIM_Try, /*On fail goto*//*Label 313*/ 15227, // Rule ID 154 //
6459 : GIM_CheckFeatures, GIFBS_IsARM,
6460 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
6461 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
6462 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
6463 : // (or:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) => (ORRrr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
6464 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::ORRrr,
6465 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
6466 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
6467 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
6468 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
6469 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6470 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6471 : GIR_EraseFromParent, /*InsnID*/0,
6472 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
6473 : // GIR_Coverage, 154,
6474 : GIR_Done,
6475 : // Label 313: @15227
6476 : GIM_Try, /*On fail goto*//*Label 314*/ 15272, // Rule ID 489 //
6477 : GIM_CheckFeatures, GIFBS_IsThumb2,
6478 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
6479 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
6480 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
6481 : // (or:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2ORRrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
6482 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2ORRrr,
6483 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
6484 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
6485 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
6486 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
6487 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6488 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6489 : GIR_EraseFromParent, /*InsnID*/0,
6490 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
6491 : // GIR_Coverage, 489,
6492 : GIR_Done,
6493 : // Label 314: @15272
6494 : GIM_Reject,
6495 : // Label 270: @15273
6496 : GIM_Reject,
6497 : // Label 267: @15274
6498 : GIM_Try, /*On fail goto*//*Label 315*/ 15324, // Rule ID 1106 //
6499 : GIM_CheckFeatures, GIFBS_HasNEON,
6500 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
6501 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
6502 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
6503 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
6504 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
6505 : // (or:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VORRd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
6506 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VORRd,
6507 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
6508 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
6509 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
6510 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
6511 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6512 : GIR_EraseFromParent, /*InsnID*/0,
6513 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
6514 : // GIR_Coverage, 1106,
6515 : GIR_Done,
6516 : // Label 315: @15324
6517 : GIM_Reject,
6518 : // Label 268: @15325
6519 : GIM_Try, /*On fail goto*//*Label 316*/ 15375, // Rule ID 1107 //
6520 : GIM_CheckFeatures, GIFBS_HasNEON,
6521 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
6522 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
6523 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
6524 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
6525 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
6526 : // (or:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VORRq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
6527 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VORRq,
6528 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
6529 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
6530 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
6531 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
6532 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6533 : GIR_EraseFromParent, /*InsnID*/0,
6534 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
6535 : // GIR_Coverage, 1107,
6536 : GIR_Done,
6537 : // Label 316: @15375
6538 : GIM_Reject,
6539 : // Label 269: @15376
6540 : GIM_Reject,
6541 : // Label 7: @15377
6542 : GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 7, /*)*//*default:*//*Label 320*/ 15875,
6543 : /*GILLT_s32*//*Label 317*/ 15389, 0,
6544 : /*GILLT_v2s32*//*Label 318*/ 15773, 0, 0,
6545 : /*GILLT_v4s32*//*Label 319*/ 15824,
6546 : // Label 317: @15389
6547 : GIM_Try, /*On fail goto*//*Label 321*/ 15772,
6548 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
6549 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
6550 : GIM_Try, /*On fail goto*//*Label 322*/ 15447, // Rule ID 2575 //
6551 : GIM_CheckFeatures, GIFBS_IsThumb2,
6552 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
6553 : GIM_CheckConstantInt, /*MI*/0, /*Op*/1, -1,
6554 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6555 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
6556 : GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_t2_so_imm,
6557 : // MIs[1] Operand 1
6558 : // No operand predicates
6559 : GIM_CheckIsSafeToFold, /*InsnID*/1,
6560 : // (xor:{ *:[i32] } -1:{ *:[i32] }, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm) => (t2MVNi:{ *:[i32] } (imm:{ *:[i32] }):$imm)
6561 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2MVNi,
6562 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
6563 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
6564 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
6565 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6566 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6567 : GIR_EraseFromParent, /*InsnID*/0,
6568 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
6569 : // GIR_Coverage, 2575,
6570 : GIR_Done,
6571 : // Label 322: @15447
6572 : GIM_Try, /*On fail goto*//*Label 323*/ 15495, // Rule ID 503 //
6573 : GIM_CheckFeatures, GIFBS_IsThumb2,
6574 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
6575 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6576 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
6577 : GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_t2_so_imm,
6578 : // MIs[1] Operand 1
6579 : // No operand predicates
6580 : GIM_CheckConstantInt, /*MI*/0, /*Op*/2, -1,
6581 : GIM_CheckIsSafeToFold, /*InsnID*/1,
6582 : // (xor:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm, -1:{ *:[i32] }) => (t2MVNi:{ *:[i32] } (imm:{ *:[i32] }):$imm)
6583 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2MVNi,
6584 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
6585 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
6586 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
6587 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6588 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6589 : GIR_EraseFromParent, /*InsnID*/0,
6590 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
6591 : // GIR_Coverage, 503,
6592 : GIR_Done,
6593 : // Label 323: @15495
6594 : GIM_Try, /*On fail goto*//*Label 324*/ 15536, // Rule ID 504 //
6595 : GIM_CheckFeatures, GIFBS_IsThumb2,
6596 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
6597 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
6598 : GIM_CheckConstantInt, /*MI*/0, /*Op*/2, -1,
6599 : // (xor:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, -1:{ *:[i32] }) => (t2MVNr:{ *:[i32] } rGPR:{ *:[i32] }:$Rm)
6600 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2MVNr,
6601 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
6602 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rm
6603 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
6604 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6605 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6606 : GIR_EraseFromParent, /*InsnID*/0,
6607 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
6608 : // GIR_Coverage, 504,
6609 : GIR_Done,
6610 : // Label 324: @15536
6611 : GIM_Try, /*On fail goto*//*Label 325*/ 15577, // Rule ID 167 //
6612 : GIM_CheckFeatures, GIFBS_IsARM,
6613 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
6614 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
6615 : GIM_CheckConstantInt, /*MI*/0, /*Op*/2, -1,
6616 : // (xor:{ *:[i32] } GPR:{ *:[i32] }:$Rm, -1:{ *:[i32] }) => (MVNr:{ *:[i32] } GPR:{ *:[i32] }:$Rm)
6617 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVNr,
6618 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
6619 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rm
6620 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
6621 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6622 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6623 : GIR_EraseFromParent, /*InsnID*/0,
6624 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
6625 : // GIR_Coverage, 167,
6626 : GIR_Done,
6627 : // Label 325: @15577
6628 : GIM_Try, /*On fail goto*//*Label 326*/ 15629, // Rule ID 157 //
6629 : GIM_CheckFeatures, GIFBS_IsARM,
6630 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
6631 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
6632 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6633 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
6634 : GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_mod_imm,
6635 : // MIs[1] Operand 1
6636 : // No operand predicates
6637 : GIM_CheckIsSafeToFold, /*InsnID*/1,
6638 : // (xor:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm) => (EORri:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
6639 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::EORri,
6640 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
6641 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
6642 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
6643 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
6644 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6645 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6646 : GIR_EraseFromParent, /*InsnID*/0,
6647 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
6648 : // GIR_Coverage, 157,
6649 : GIR_Done,
6650 : // Label 326: @15629
6651 : GIM_Try, /*On fail goto*//*Label 327*/ 15681, // Rule ID 491 //
6652 : GIM_CheckFeatures, GIFBS_IsThumb2,
6653 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
6654 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
6655 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6656 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
6657 : GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_t2_so_imm,
6658 : // MIs[1] Operand 1
6659 : // No operand predicates
6660 : GIM_CheckIsSafeToFold, /*InsnID*/1,
6661 : // (xor:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm) => (t2EORri:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
6662 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2EORri,
6663 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
6664 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
6665 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
6666 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
6667 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6668 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6669 : GIR_EraseFromParent, /*InsnID*/0,
6670 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
6671 : // GIR_Coverage, 491,
6672 : GIR_Done,
6673 : // Label 327: @15681
6674 : GIM_Try, /*On fail goto*//*Label 328*/ 15726, // Rule ID 158 //
6675 : GIM_CheckFeatures, GIFBS_IsARM,
6676 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
6677 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
6678 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
6679 : // (xor:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) => (EORrr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
6680 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::EORrr,
6681 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
6682 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
6683 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
6684 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
6685 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6686 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6687 : GIR_EraseFromParent, /*InsnID*/0,
6688 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
6689 : // GIR_Coverage, 158,
6690 : GIR_Done,
6691 : // Label 328: @15726
6692 : GIM_Try, /*On fail goto*//*Label 329*/ 15771, // Rule ID 492 //
6693 : GIM_CheckFeatures, GIFBS_IsThumb2,
6694 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
6695 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
6696 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
6697 : // (xor:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2EORrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
6698 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2EORrr,
6699 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
6700 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
6701 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
6702 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
6703 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6704 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6705 : GIR_EraseFromParent, /*InsnID*/0,
6706 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
6707 : // GIR_Coverage, 492,
6708 : GIR_Done,
6709 : // Label 329: @15771
6710 : GIM_Reject,
6711 : // Label 321: @15772
6712 : GIM_Reject,
6713 : // Label 318: @15773
6714 : GIM_Try, /*On fail goto*//*Label 330*/ 15823, // Rule ID 1104 //
6715 : GIM_CheckFeatures, GIFBS_HasNEON,
6716 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
6717 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
6718 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
6719 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
6720 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
6721 : // (xor:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VEORd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
6722 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VEORd,
6723 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
6724 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
6725 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
6726 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
6727 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6728 : GIR_EraseFromParent, /*InsnID*/0,
6729 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
6730 : // GIR_Coverage, 1104,
6731 : GIR_Done,
6732 : // Label 330: @15823
6733 : GIM_Reject,
6734 : // Label 319: @15824
6735 : GIM_Try, /*On fail goto*//*Label 331*/ 15874, // Rule ID 1105 //
6736 : GIM_CheckFeatures, GIFBS_HasNEON,
6737 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
6738 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
6739 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
6740 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
6741 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
6742 : // (xor:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VEORq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
6743 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VEORq,
6744 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
6745 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
6746 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
6747 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
6748 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6749 : GIR_EraseFromParent, /*InsnID*/0,
6750 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
6751 : // GIR_Coverage, 1105,
6752 : GIR_Done,
6753 : // Label 331: @15874
6754 : GIM_Reject,
6755 : // Label 320: @15875
6756 : GIM_Reject,
6757 : // Label 8: @15876
6758 : GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 10, /*)*//*default:*//*Label 341*/ 20263,
6759 : /*GILLT_s32*//*Label 332*/ 15891,
6760 : /*GILLT_s64*//*Label 333*/ 15967,
6761 : /*GILLT_v2s32*//*Label 334*/ 16680,
6762 : /*GILLT_v2s64*//*Label 335*/ 17321,
6763 : /*GILLT_v4s16*//*Label 336*/ 18034,
6764 : /*GILLT_v4s32*//*Label 337*/ 18429,
6765 : /*GILLT_v8s8*//*Label 338*/ 19108,
6766 : /*GILLT_v8s16*//*Label 339*/ 19469,
6767 : /*GILLT_v16s8*//*Label 340*/ 19902,
6768 : // Label 332: @15891
6769 : GIM_Try, /*On fail goto*//*Label 342*/ 15966,
6770 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
6771 : GIM_Try, /*On fail goto*//*Label 343*/ 15931, // Rule ID 686 //
6772 : GIM_CheckFeatures, GIFBS_HasVFP2,
6773 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
6774 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
6775 : // (bitconvert:{ *:[i32] } SPR:{ *:[f32] }:$Sn) => (VMOVRS:{ *:[i32] } SPR:{ *:[f32] }:$Sn)
6776 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMOVRS,
6777 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rt
6778 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sn
6779 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
6780 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6781 : GIR_EraseFromParent, /*InsnID*/0,
6782 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
6783 : // GIR_Coverage, 686,
6784 : GIR_Done,
6785 : // Label 343: @15931
6786 : GIM_Try, /*On fail goto*//*Label 344*/ 15965, // Rule ID 687 //
6787 : GIM_CheckFeatures, GIFBS_HasVFP2_UseVMOVSR,
6788 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
6789 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
6790 : // (bitconvert:{ *:[f32] } GPR:{ *:[i32] }:$Rt) => (VMOVSR:{ *:[f32] } GPR:{ *:[i32] }:$Rt)
6791 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMOVSR,
6792 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sn
6793 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rt
6794 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
6795 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6796 : GIR_EraseFromParent, /*InsnID*/0,
6797 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
6798 : // GIR_Coverage, 687,
6799 : GIR_Done,
6800 : // Label 344: @15965
6801 : GIM_Reject,
6802 : // Label 342: @15966
6803 : GIM_Reject,
6804 : // Label 333: @15967
6805 : GIM_Try, /*On fail goto*//*Label 345*/ 16001, // Rule ID 2342 //
6806 : GIM_CheckFeatures, GIFBS_IsLE,
6807 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
6808 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
6809 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
6810 : // (bitconvert:{ *:[v1i64] } DPR:{ *:[v2i32] }:$src) => DPR:{ *:[v1i64] }:$src
6811 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
6812 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
6813 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
6814 : GIR_EraseFromParent, /*InsnID*/0,
6815 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC DPR*/18,
6816 : // GIR_Coverage, 2342,
6817 : GIR_Done,
6818 : // Label 345: @16001
6819 : GIM_Try, /*On fail goto*//*Label 346*/ 16035, // Rule ID 2343 //
6820 : GIM_CheckFeatures, GIFBS_IsLE,
6821 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
6822 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
6823 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
6824 : // (bitconvert:{ *:[v1i64] } DPR:{ *:[v4i16] }:$src) => DPR:{ *:[v1i64] }:$src
6825 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
6826 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
6827 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
6828 : GIR_EraseFromParent, /*InsnID*/0,
6829 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC DPR*/18,
6830 : // GIR_Coverage, 2343,
6831 : GIR_Done,
6832 : // Label 346: @16035
6833 : GIM_Try, /*On fail goto*//*Label 347*/ 16069, // Rule ID 2344 //
6834 : GIM_CheckFeatures, GIFBS_IsLE,
6835 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
6836 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
6837 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
6838 : // (bitconvert:{ *:[v1i64] } DPR:{ *:[v8i8] }:$src) => DPR:{ *:[v1i64] }:$src
6839 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
6840 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
6841 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
6842 : GIR_EraseFromParent, /*InsnID*/0,
6843 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC DPR*/18,
6844 : // GIR_Coverage, 2344,
6845 : GIR_Done,
6846 : // Label 347: @16069
6847 : GIM_Try, /*On fail goto*//*Label 348*/ 16101, // Rule ID 2345 //
6848 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
6849 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
6850 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
6851 : // (bitconvert:{ *:[v1i64] } DPR:{ *:[f64] }:$src) => DPR:{ *:[v1i64] }:$src
6852 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
6853 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
6854 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
6855 : GIR_EraseFromParent, /*InsnID*/0,
6856 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC DPR*/18,
6857 : // GIR_Coverage, 2345,
6858 : GIR_Done,
6859 : // Label 348: @16101
6860 : GIM_Try, /*On fail goto*//*Label 349*/ 16135, // Rule ID 2346 //
6861 : GIM_CheckFeatures, GIFBS_IsLE,
6862 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
6863 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
6864 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
6865 : // (bitconvert:{ *:[v1i64] } DPR:{ *:[v2f32] }:$src) => DPR:{ *:[v1i64] }:$src
6866 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
6867 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
6868 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
6869 : GIR_EraseFromParent, /*InsnID*/0,
6870 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC DPR*/18,
6871 : // GIR_Coverage, 2346,
6872 : GIR_Done,
6873 : // Label 349: @16135
6874 : GIM_Try, /*On fail goto*//*Label 350*/ 16167, // Rule ID 2362 //
6875 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
6876 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
6877 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
6878 : // (bitconvert:{ *:[f64] } DPR:{ *:[v1i64] }:$src) => DPR:{ *:[f64] }:$src
6879 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
6880 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
6881 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
6882 : GIR_EraseFromParent, /*InsnID*/0,
6883 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC DPR*/18,
6884 : // GIR_Coverage, 2362,
6885 : GIR_Done,
6886 : // Label 350: @16167
6887 : GIM_Try, /*On fail goto*//*Label 351*/ 16201, // Rule ID 2363 //
6888 : GIM_CheckFeatures, GIFBS_IsLE,
6889 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
6890 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
6891 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
6892 : // (bitconvert:{ *:[f64] } DPR:{ *:[v2i32] }:$src) => DPR:{ *:[f64] }:$src
6893 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
6894 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
6895 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
6896 : GIR_EraseFromParent, /*InsnID*/0,
6897 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC DPR*/18,
6898 : // GIR_Coverage, 2363,
6899 : GIR_Done,
6900 : // Label 351: @16201
6901 : GIM_Try, /*On fail goto*//*Label 352*/ 16235, // Rule ID 2364 //
6902 : GIM_CheckFeatures, GIFBS_IsLE,
6903 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
6904 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
6905 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
6906 : // (bitconvert:{ *:[f64] } DPR:{ *:[v4i16] }:$src) => DPR:{ *:[f64] }:$src
6907 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
6908 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
6909 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
6910 : GIR_EraseFromParent, /*InsnID*/0,
6911 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC DPR*/18,
6912 : // GIR_Coverage, 2364,
6913 : GIR_Done,
6914 : // Label 352: @16235
6915 : GIM_Try, /*On fail goto*//*Label 353*/ 16269, // Rule ID 2365 //
6916 : GIM_CheckFeatures, GIFBS_IsLE,
6917 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
6918 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
6919 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
6920 : // (bitconvert:{ *:[f64] } DPR:{ *:[v4f16] }:$src) => DPR:{ *:[f64] }:$src
6921 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
6922 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
6923 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
6924 : GIR_EraseFromParent, /*InsnID*/0,
6925 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC DPR*/18,
6926 : // GIR_Coverage, 2365,
6927 : GIR_Done,
6928 : // Label 353: @16269
6929 : GIM_Try, /*On fail goto*//*Label 354*/ 16303, // Rule ID 2366 //
6930 : GIM_CheckFeatures, GIFBS_IsLE,
6931 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
6932 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
6933 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
6934 : // (bitconvert:{ *:[f64] } DPR:{ *:[v8i8] }:$src) => DPR:{ *:[f64] }:$src
6935 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
6936 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
6937 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
6938 : GIR_EraseFromParent, /*InsnID*/0,
6939 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC DPR*/18,
6940 : // GIR_Coverage, 2366,
6941 : GIR_Done,
6942 : // Label 354: @16303
6943 : GIM_Try, /*On fail goto*//*Label 355*/ 16337, // Rule ID 2367 //
6944 : GIM_CheckFeatures, GIFBS_IsLE,
6945 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
6946 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
6947 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
6948 : // (bitconvert:{ *:[f64] } DPR:{ *:[v2f32] }:$src) => DPR:{ *:[f64] }:$src
6949 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
6950 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
6951 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
6952 : GIR_EraseFromParent, /*InsnID*/0,
6953 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC DPR*/18,
6954 : // GIR_Coverage, 2367,
6955 : GIR_Done,
6956 : // Label 355: @16337
6957 : GIM_Try, /*On fail goto*//*Label 356*/ 16375, // Rule ID 2406 //
6958 : GIM_CheckFeatures, GIFBS_IsBE,
6959 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
6960 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
6961 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
6962 : // (bitconvert:{ *:[v1i64] } DPR:{ *:[v2i32] }:$src) => (VREV64d32:{ *:[v1i64] } DPR:{ *:[v2i32] }:$src)
6963 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64d32,
6964 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
6965 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
6966 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
6967 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6968 : GIR_EraseFromParent, /*InsnID*/0,
6969 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
6970 : // GIR_Coverage, 2406,
6971 : GIR_Done,
6972 : // Label 356: @16375
6973 : GIM_Try, /*On fail goto*//*Label 357*/ 16413, // Rule ID 2407 //
6974 : GIM_CheckFeatures, GIFBS_IsBE,
6975 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
6976 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
6977 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
6978 : // (bitconvert:{ *:[v1i64] } DPR:{ *:[v4i16] }:$src) => (VREV64d16:{ *:[v1i64] } DPR:{ *:[v4i16] }:$src)
6979 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64d16,
6980 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
6981 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
6982 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
6983 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
6984 : GIR_EraseFromParent, /*InsnID*/0,
6985 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
6986 : // GIR_Coverage, 2407,
6987 : GIR_Done,
6988 : // Label 357: @16413
6989 : GIM_Try, /*On fail goto*//*Label 358*/ 16451, // Rule ID 2408 //
6990 : GIM_CheckFeatures, GIFBS_IsBE,
6991 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
6992 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
6993 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
6994 : // (bitconvert:{ *:[v1i64] } DPR:{ *:[v8i8] }:$src) => (VREV64d8:{ *:[v1i64] } DPR:{ *:[v8i8] }:$src)
6995 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64d8,
6996 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
6997 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
6998 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
6999 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
7000 : GIR_EraseFromParent, /*InsnID*/0,
7001 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
7002 : // GIR_Coverage, 2408,
7003 : GIR_Done,
7004 : // Label 358: @16451
7005 : GIM_Try, /*On fail goto*//*Label 359*/ 16489, // Rule ID 2409 //
7006 : GIM_CheckFeatures, GIFBS_IsBE,
7007 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
7008 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
7009 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
7010 : // (bitconvert:{ *:[v1i64] } DPR:{ *:[v2f32] }:$src) => (VREV64d32:{ *:[v1i64] } DPR:{ *:[v2f32] }:$src)
7011 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64d32,
7012 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
7013 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7014 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
7015 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
7016 : GIR_EraseFromParent, /*InsnID*/0,
7017 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
7018 : // GIR_Coverage, 2409,
7019 : GIR_Done,
7020 : // Label 359: @16489
7021 : GIM_Try, /*On fail goto*//*Label 360*/ 16527, // Rule ID 2424 //
7022 : GIM_CheckFeatures, GIFBS_IsBE,
7023 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
7024 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
7025 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
7026 : // (bitconvert:{ *:[f64] } DPR:{ *:[v2i32] }:$src) => (VREV64d32:{ *:[f64] } DPR:{ *:[v2i32] }:$src)
7027 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64d32,
7028 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
7029 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7030 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
7031 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
7032 : GIR_EraseFromParent, /*InsnID*/0,
7033 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
7034 : // GIR_Coverage, 2424,
7035 : GIR_Done,
7036 : // Label 360: @16527
7037 : GIM_Try, /*On fail goto*//*Label 361*/ 16565, // Rule ID 2425 //
7038 : GIM_CheckFeatures, GIFBS_IsBE,
7039 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
7040 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
7041 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
7042 : // (bitconvert:{ *:[f64] } DPR:{ *:[v4f16] }:$src) => (VREV64d16:{ *:[f64] } DPR:{ *:[v4f16] }:$src)
7043 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64d16,
7044 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
7045 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7046 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
7047 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
7048 : GIR_EraseFromParent, /*InsnID*/0,
7049 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
7050 : // GIR_Coverage, 2425,
7051 : GIR_Done,
7052 : // Label 361: @16565
7053 : GIM_Try, /*On fail goto*//*Label 362*/ 16603, // Rule ID 2426 //
7054 : GIM_CheckFeatures, GIFBS_IsBE,
7055 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
7056 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
7057 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
7058 : // (bitconvert:{ *:[f64] } DPR:{ *:[v4i16] }:$src) => (VREV64d16:{ *:[f64] } DPR:{ *:[v4i16] }:$src)
7059 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64d16,
7060 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
7061 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7062 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
7063 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
7064 : GIR_EraseFromParent, /*InsnID*/0,
7065 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
7066 : // GIR_Coverage, 2426,
7067 : GIR_Done,
7068 : // Label 362: @16603
7069 : GIM_Try, /*On fail goto*//*Label 363*/ 16641, // Rule ID 2427 //
7070 : GIM_CheckFeatures, GIFBS_IsBE,
7071 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
7072 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
7073 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
7074 : // (bitconvert:{ *:[f64] } DPR:{ *:[v8i8] }:$src) => (VREV64d8:{ *:[f64] } DPR:{ *:[v8i8] }:$src)
7075 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64d8,
7076 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
7077 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7078 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
7079 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
7080 : GIR_EraseFromParent, /*InsnID*/0,
7081 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
7082 : // GIR_Coverage, 2427,
7083 : GIR_Done,
7084 : // Label 363: @16641
7085 : GIM_Try, /*On fail goto*//*Label 364*/ 16679, // Rule ID 2428 //
7086 : GIM_CheckFeatures, GIFBS_IsBE,
7087 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
7088 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
7089 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
7090 : // (bitconvert:{ *:[f64] } DPR:{ *:[v2f32] }:$src) => (VREV64d32:{ *:[f64] } DPR:{ *:[v2f32] }:$src)
7091 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64d32,
7092 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
7093 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7094 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
7095 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
7096 : GIR_EraseFromParent, /*InsnID*/0,
7097 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
7098 : // GIR_Coverage, 2428,
7099 : GIR_Done,
7100 : // Label 364: @16679
7101 : GIM_Reject,
7102 : // Label 334: @16680
7103 : GIM_Try, /*On fail goto*//*Label 365*/ 16714, // Rule ID 2347 //
7104 : GIM_CheckFeatures, GIFBS_IsLE,
7105 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
7106 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
7107 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
7108 : // (bitconvert:{ *:[v2i32] } DPR:{ *:[v1i64] }:$src) => DPR:{ *:[v2i32] }:$src
7109 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
7110 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
7111 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7112 : GIR_EraseFromParent, /*InsnID*/0,
7113 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC DPR*/18,
7114 : // GIR_Coverage, 2347,
7115 : GIR_Done,
7116 : // Label 365: @16714
7117 : GIM_Try, /*On fail goto*//*Label 366*/ 16748, // Rule ID 2348 //
7118 : GIM_CheckFeatures, GIFBS_IsLE,
7119 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
7120 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
7121 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
7122 : // (bitconvert:{ *:[v2i32] } DPR:{ *:[v4i16] }:$src) => DPR:{ *:[v2i32] }:$src
7123 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
7124 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
7125 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7126 : GIR_EraseFromParent, /*InsnID*/0,
7127 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC DPR*/18,
7128 : // GIR_Coverage, 2348,
7129 : GIR_Done,
7130 : // Label 366: @16748
7131 : GIM_Try, /*On fail goto*//*Label 367*/ 16782, // Rule ID 2349 //
7132 : GIM_CheckFeatures, GIFBS_IsLE,
7133 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
7134 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
7135 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
7136 : // (bitconvert:{ *:[v2i32] } DPR:{ *:[v8i8] }:$src) => DPR:{ *:[v2i32] }:$src
7137 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
7138 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
7139 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7140 : GIR_EraseFromParent, /*InsnID*/0,
7141 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC DPR*/18,
7142 : // GIR_Coverage, 2349,
7143 : GIR_Done,
7144 : // Label 367: @16782
7145 : GIM_Try, /*On fail goto*//*Label 368*/ 16816, // Rule ID 2350 //
7146 : GIM_CheckFeatures, GIFBS_IsLE,
7147 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
7148 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
7149 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
7150 : // (bitconvert:{ *:[v2i32] } DPR:{ *:[f64] }:$src) => DPR:{ *:[v2i32] }:$src
7151 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
7152 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
7153 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7154 : GIR_EraseFromParent, /*InsnID*/0,
7155 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC DPR*/18,
7156 : // GIR_Coverage, 2350,
7157 : GIR_Done,
7158 : // Label 368: @16816
7159 : GIM_Try, /*On fail goto*//*Label 369*/ 16848, // Rule ID 2351 //
7160 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
7161 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
7162 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
7163 : // (bitconvert:{ *:[v2i32] } DPR:{ *:[v2f32] }:$src) => DPR:{ *:[v2i32] }:$src
7164 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
7165 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
7166 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7167 : GIR_EraseFromParent, /*InsnID*/0,
7168 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC DPR*/18,
7169 : // GIR_Coverage, 2351,
7170 : GIR_Done,
7171 : // Label 369: @16848
7172 : GIM_Try, /*On fail goto*//*Label 370*/ 16882, // Rule ID 2368 //
7173 : GIM_CheckFeatures, GIFBS_IsLE,
7174 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
7175 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
7176 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
7177 : // (bitconvert:{ *:[v2f32] } DPR:{ *:[f64] }:$src) => DPR:{ *:[v2f32] }:$src
7178 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
7179 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
7180 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7181 : GIR_EraseFromParent, /*InsnID*/0,
7182 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC DPR*/18,
7183 : // GIR_Coverage, 2368,
7184 : GIR_Done,
7185 : // Label 370: @16882
7186 : GIM_Try, /*On fail goto*//*Label 371*/ 16916, // Rule ID 2370 //
7187 : GIM_CheckFeatures, GIFBS_IsLE,
7188 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
7189 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
7190 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
7191 : // (bitconvert:{ *:[v2f32] } DPR:{ *:[v1i64] }:$src) => DPR:{ *:[v2f32] }:$src
7192 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
7193 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
7194 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7195 : GIR_EraseFromParent, /*InsnID*/0,
7196 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC DPR*/18,
7197 : // GIR_Coverage, 2370,
7198 : GIR_Done,
7199 : // Label 371: @16916
7200 : GIM_Try, /*On fail goto*//*Label 372*/ 16948, // Rule ID 2371 //
7201 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
7202 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
7203 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
7204 : // (bitconvert:{ *:[v2f32] } DPR:{ *:[v2i32] }:$src) => DPR:{ *:[v2f32] }:$src
7205 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
7206 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
7207 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7208 : GIR_EraseFromParent, /*InsnID*/0,
7209 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC DPR*/18,
7210 : // GIR_Coverage, 2371,
7211 : GIR_Done,
7212 : // Label 372: @16948
7213 : GIM_Try, /*On fail goto*//*Label 373*/ 16982, // Rule ID 2372 //
7214 : GIM_CheckFeatures, GIFBS_IsLE,
7215 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
7216 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
7217 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
7218 : // (bitconvert:{ *:[v2f32] } DPR:{ *:[v4i16] }:$src) => DPR:{ *:[v2f32] }:$src
7219 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
7220 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
7221 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7222 : GIR_EraseFromParent, /*InsnID*/0,
7223 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC DPR*/18,
7224 : // GIR_Coverage, 2372,
7225 : GIR_Done,
7226 : // Label 373: @16982
7227 : GIM_Try, /*On fail goto*//*Label 374*/ 17016, // Rule ID 2373 //
7228 : GIM_CheckFeatures, GIFBS_IsLE,
7229 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
7230 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
7231 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
7232 : // (bitconvert:{ *:[v2f32] } DPR:{ *:[v8i8] }:$src) => DPR:{ *:[v2f32] }:$src
7233 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
7234 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
7235 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7236 : GIR_EraseFromParent, /*InsnID*/0,
7237 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC DPR*/18,
7238 : // GIR_Coverage, 2373,
7239 : GIR_Done,
7240 : // Label 374: @17016
7241 : GIM_Try, /*On fail goto*//*Label 375*/ 17054, // Rule ID 2410 //
7242 : GIM_CheckFeatures, GIFBS_IsBE,
7243 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
7244 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
7245 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
7246 : // (bitconvert:{ *:[v2i32] } DPR:{ *:[v1i64] }:$src) => (VREV64d32:{ *:[v2i32] } DPR:{ *:[v1i64] }:$src)
7247 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64d32,
7248 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
7249 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7250 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
7251 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
7252 : GIR_EraseFromParent, /*InsnID*/0,
7253 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
7254 : // GIR_Coverage, 2410,
7255 : GIR_Done,
7256 : // Label 375: @17054
7257 : GIM_Try, /*On fail goto*//*Label 376*/ 17092, // Rule ID 2411 //
7258 : GIM_CheckFeatures, GIFBS_IsBE,
7259 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
7260 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
7261 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
7262 : // (bitconvert:{ *:[v2i32] } DPR:{ *:[v4i16] }:$src) => (VREV32d16:{ *:[v2i32] } DPR:{ *:[v4i16] }:$src)
7263 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32d16,
7264 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
7265 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7266 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
7267 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
7268 : GIR_EraseFromParent, /*InsnID*/0,
7269 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
7270 : // GIR_Coverage, 2411,
7271 : GIR_Done,
7272 : // Label 376: @17092
7273 : GIM_Try, /*On fail goto*//*Label 377*/ 17130, // Rule ID 2412 //
7274 : GIM_CheckFeatures, GIFBS_IsBE,
7275 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
7276 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
7277 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
7278 : // (bitconvert:{ *:[v2i32] } DPR:{ *:[v8i8] }:$src) => (VREV32d8:{ *:[v2i32] } DPR:{ *:[v8i8] }:$src)
7279 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32d8,
7280 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
7281 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7282 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
7283 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
7284 : GIR_EraseFromParent, /*InsnID*/0,
7285 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
7286 : // GIR_Coverage, 2412,
7287 : GIR_Done,
7288 : // Label 377: @17130
7289 : GIM_Try, /*On fail goto*//*Label 378*/ 17168, // Rule ID 2413 //
7290 : GIM_CheckFeatures, GIFBS_IsBE,
7291 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
7292 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
7293 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
7294 : // (bitconvert:{ *:[v2i32] } DPR:{ *:[f64] }:$src) => (VREV64d32:{ *:[v2i32] } DPR:{ *:[f64] }:$src)
7295 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64d32,
7296 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
7297 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7298 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
7299 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
7300 : GIR_EraseFromParent, /*InsnID*/0,
7301 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
7302 : // GIR_Coverage, 2413,
7303 : GIR_Done,
7304 : // Label 378: @17168
7305 : GIM_Try, /*On fail goto*//*Label 379*/ 17206, // Rule ID 2429 //
7306 : GIM_CheckFeatures, GIFBS_IsBE,
7307 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
7308 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
7309 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
7310 : // (bitconvert:{ *:[v2f32] } DPR:{ *:[f64] }:$src) => (VREV64d32:{ *:[v2f32] } DPR:{ *:[f64] }:$src)
7311 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64d32,
7312 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
7313 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7314 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
7315 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
7316 : GIR_EraseFromParent, /*InsnID*/0,
7317 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
7318 : // GIR_Coverage, 2429,
7319 : GIR_Done,
7320 : // Label 379: @17206
7321 : GIM_Try, /*On fail goto*//*Label 380*/ 17244, // Rule ID 2430 //
7322 : GIM_CheckFeatures, GIFBS_IsBE,
7323 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
7324 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
7325 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
7326 : // (bitconvert:{ *:[v2f32] } DPR:{ *:[v1i64] }:$src) => (VREV64d32:{ *:[v2f32] } DPR:{ *:[v1i64] }:$src)
7327 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64d32,
7328 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
7329 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7330 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
7331 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
7332 : GIR_EraseFromParent, /*InsnID*/0,
7333 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
7334 : // GIR_Coverage, 2430,
7335 : GIR_Done,
7336 : // Label 380: @17244
7337 : GIM_Try, /*On fail goto*//*Label 381*/ 17282, // Rule ID 2431 //
7338 : GIM_CheckFeatures, GIFBS_IsBE,
7339 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
7340 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
7341 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
7342 : // (bitconvert:{ *:[v2f32] } DPR:{ *:[v4i16] }:$src) => (VREV32d16:{ *:[v2f32] } DPR:{ *:[v4i16] }:$src)
7343 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32d16,
7344 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
7345 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7346 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
7347 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
7348 : GIR_EraseFromParent, /*InsnID*/0,
7349 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
7350 : // GIR_Coverage, 2431,
7351 : GIR_Done,
7352 : // Label 381: @17282
7353 : GIM_Try, /*On fail goto*//*Label 382*/ 17320, // Rule ID 2432 //
7354 : GIM_CheckFeatures, GIFBS_IsBE,
7355 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
7356 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
7357 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
7358 : // (bitconvert:{ *:[v2f32] } DPR:{ *:[v8i8] }:$src) => (VREV32d8:{ *:[v2f32] } DPR:{ *:[v8i8] }:$src)
7359 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32d8,
7360 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
7361 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7362 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
7363 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
7364 : GIR_EraseFromParent, /*InsnID*/0,
7365 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
7366 : // GIR_Coverage, 2432,
7367 : GIR_Done,
7368 : // Label 382: @17320
7369 : GIM_Reject,
7370 : // Label 335: @17321
7371 : GIM_Try, /*On fail goto*//*Label 383*/ 17355, // Rule ID 2374 //
7372 : GIM_CheckFeatures, GIFBS_IsLE,
7373 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
7374 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
7375 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
7376 : // (bitconvert:{ *:[v2i64] } QPR:{ *:[v4i32] }:$src) => QPR:{ *:[v2i64] }:$src
7377 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
7378 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
7379 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7380 : GIR_EraseFromParent, /*InsnID*/0,
7381 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC QPR*/36,
7382 : // GIR_Coverage, 2374,
7383 : GIR_Done,
7384 : // Label 383: @17355
7385 : GIM_Try, /*On fail goto*//*Label 384*/ 17389, // Rule ID 2375 //
7386 : GIM_CheckFeatures, GIFBS_IsLE,
7387 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
7388 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
7389 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
7390 : // (bitconvert:{ *:[v2i64] } QPR:{ *:[v8i16] }:$src) => QPR:{ *:[v2i64] }:$src
7391 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
7392 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
7393 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7394 : GIR_EraseFromParent, /*InsnID*/0,
7395 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC QPR*/36,
7396 : // GIR_Coverage, 2375,
7397 : GIR_Done,
7398 : // Label 384: @17389
7399 : GIM_Try, /*On fail goto*//*Label 385*/ 17423, // Rule ID 2376 //
7400 : GIM_CheckFeatures, GIFBS_IsLE,
7401 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
7402 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
7403 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
7404 : // (bitconvert:{ *:[v2i64] } QPR:{ *:[v16i8] }:$src) => QPR:{ *:[v2i64] }:$src
7405 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
7406 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
7407 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7408 : GIR_EraseFromParent, /*InsnID*/0,
7409 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC QPR*/36,
7410 : // GIR_Coverage, 2376,
7411 : GIR_Done,
7412 : // Label 385: @17423
7413 : GIM_Try, /*On fail goto*//*Label 386*/ 17455, // Rule ID 2377 //
7414 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
7415 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
7416 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
7417 : // (bitconvert:{ *:[v2i64] } QPR:{ *:[v2f64] }:$src) => QPR:{ *:[v2i64] }:$src
7418 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
7419 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
7420 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7421 : GIR_EraseFromParent, /*InsnID*/0,
7422 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC QPR*/36,
7423 : // GIR_Coverage, 2377,
7424 : GIR_Done,
7425 : // Label 386: @17455
7426 : GIM_Try, /*On fail goto*//*Label 387*/ 17489, // Rule ID 2378 //
7427 : GIM_CheckFeatures, GIFBS_IsLE,
7428 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
7429 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
7430 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
7431 : // (bitconvert:{ *:[v2i64] } QPR:{ *:[v4f32] }:$src) => QPR:{ *:[v2i64] }:$src
7432 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
7433 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
7434 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7435 : GIR_EraseFromParent, /*InsnID*/0,
7436 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC QPR*/36,
7437 : // GIR_Coverage, 2378,
7438 : GIR_Done,
7439 : // Label 387: @17489
7440 : GIM_Try, /*On fail goto*//*Label 388*/ 17521, // Rule ID 2400 //
7441 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
7442 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
7443 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
7444 : // (bitconvert:{ *:[v2f64] } QPR:{ *:[v2i64] }:$src) => QPR:{ *:[v2f64] }:$src
7445 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
7446 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
7447 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7448 : GIR_EraseFromParent, /*InsnID*/0,
7449 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC QPR*/36,
7450 : // GIR_Coverage, 2400,
7451 : GIR_Done,
7452 : // Label 388: @17521
7453 : GIM_Try, /*On fail goto*//*Label 389*/ 17555, // Rule ID 2401 //
7454 : GIM_CheckFeatures, GIFBS_IsLE,
7455 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
7456 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
7457 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
7458 : // (bitconvert:{ *:[v2f64] } QPR:{ *:[v4i32] }:$src) => QPR:{ *:[v2f64] }:$src
7459 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
7460 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
7461 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7462 : GIR_EraseFromParent, /*InsnID*/0,
7463 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC QPR*/36,
7464 : // GIR_Coverage, 2401,
7465 : GIR_Done,
7466 : // Label 389: @17555
7467 : GIM_Try, /*On fail goto*//*Label 390*/ 17589, // Rule ID 2402 //
7468 : GIM_CheckFeatures, GIFBS_IsLE,
7469 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
7470 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
7471 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
7472 : // (bitconvert:{ *:[v2f64] } QPR:{ *:[v8i16] }:$src) => QPR:{ *:[v2f64] }:$src
7473 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
7474 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
7475 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7476 : GIR_EraseFromParent, /*InsnID*/0,
7477 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC QPR*/36,
7478 : // GIR_Coverage, 2402,
7479 : GIR_Done,
7480 : // Label 390: @17589
7481 : GIM_Try, /*On fail goto*//*Label 391*/ 17623, // Rule ID 2403 //
7482 : GIM_CheckFeatures, GIFBS_IsLE,
7483 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
7484 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
7485 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
7486 : // (bitconvert:{ *:[v2f64] } QPR:{ *:[v8f16] }:$src) => QPR:{ *:[v2f64] }:$src
7487 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
7488 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
7489 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7490 : GIR_EraseFromParent, /*InsnID*/0,
7491 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC QPR*/36,
7492 : // GIR_Coverage, 2403,
7493 : GIR_Done,
7494 : // Label 391: @17623
7495 : GIM_Try, /*On fail goto*//*Label 392*/ 17657, // Rule ID 2404 //
7496 : GIM_CheckFeatures, GIFBS_IsLE,
7497 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
7498 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
7499 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
7500 : // (bitconvert:{ *:[v2f64] } QPR:{ *:[v16i8] }:$src) => QPR:{ *:[v2f64] }:$src
7501 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
7502 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
7503 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7504 : GIR_EraseFromParent, /*InsnID*/0,
7505 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC QPR*/36,
7506 : // GIR_Coverage, 2404,
7507 : GIR_Done,
7508 : // Label 392: @17657
7509 : GIM_Try, /*On fail goto*//*Label 393*/ 17691, // Rule ID 2405 //
7510 : GIM_CheckFeatures, GIFBS_IsLE,
7511 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
7512 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
7513 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
7514 : // (bitconvert:{ *:[v2f64] } QPR:{ *:[v4f32] }:$src) => QPR:{ *:[v2f64] }:$src
7515 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
7516 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
7517 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7518 : GIR_EraseFromParent, /*InsnID*/0,
7519 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC QPR*/36,
7520 : // GIR_Coverage, 2405,
7521 : GIR_Done,
7522 : // Label 393: @17691
7523 : GIM_Try, /*On fail goto*//*Label 394*/ 17729, // Rule ID 2433 //
7524 : GIM_CheckFeatures, GIFBS_IsBE,
7525 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
7526 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
7527 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
7528 : // (bitconvert:{ *:[v2i64] } QPR:{ *:[v4i32] }:$src) => (VREV64q32:{ *:[v2i64] } QPR:{ *:[v4i32] }:$src)
7529 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64q32,
7530 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
7531 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7532 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
7533 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
7534 : GIR_EraseFromParent, /*InsnID*/0,
7535 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
7536 : // GIR_Coverage, 2433,
7537 : GIR_Done,
7538 : // Label 394: @17729
7539 : GIM_Try, /*On fail goto*//*Label 395*/ 17767, // Rule ID 2434 //
7540 : GIM_CheckFeatures, GIFBS_IsBE,
7541 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
7542 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
7543 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
7544 : // (bitconvert:{ *:[v2i64] } QPR:{ *:[v8i16] }:$src) => (VREV64q16:{ *:[v2i64] } QPR:{ *:[v8i16] }:$src)
7545 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64q16,
7546 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
7547 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7548 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
7549 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
7550 : GIR_EraseFromParent, /*InsnID*/0,
7551 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
7552 : // GIR_Coverage, 2434,
7553 : GIR_Done,
7554 : // Label 395: @17767
7555 : GIM_Try, /*On fail goto*//*Label 396*/ 17805, // Rule ID 2435 //
7556 : GIM_CheckFeatures, GIFBS_IsBE,
7557 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
7558 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
7559 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
7560 : // (bitconvert:{ *:[v2i64] } QPR:{ *:[v16i8] }:$src) => (VREV64q8:{ *:[v2i64] } QPR:{ *:[v16i8] }:$src)
7561 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64q8,
7562 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
7563 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7564 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
7565 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
7566 : GIR_EraseFromParent, /*InsnID*/0,
7567 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
7568 : // GIR_Coverage, 2435,
7569 : GIR_Done,
7570 : // Label 396: @17805
7571 : GIM_Try, /*On fail goto*//*Label 397*/ 17843, // Rule ID 2436 //
7572 : GIM_CheckFeatures, GIFBS_IsBE,
7573 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
7574 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
7575 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
7576 : // (bitconvert:{ *:[v2i64] } QPR:{ *:[v4f32] }:$src) => (VREV64q32:{ *:[v2i64] } QPR:{ *:[v4f32] }:$src)
7577 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64q32,
7578 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
7579 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7580 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
7581 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
7582 : GIR_EraseFromParent, /*InsnID*/0,
7583 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
7584 : // GIR_Coverage, 2436,
7585 : GIR_Done,
7586 : // Label 397: @17843
7587 : GIM_Try, /*On fail goto*//*Label 398*/ 17881, // Rule ID 2457 //
7588 : GIM_CheckFeatures, GIFBS_IsBE,
7589 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
7590 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
7591 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
7592 : // (bitconvert:{ *:[v2f64] } QPR:{ *:[v4i32] }:$src) => (VREV64q32:{ *:[v2f64] } QPR:{ *:[v4i32] }:$src)
7593 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64q32,
7594 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
7595 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7596 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
7597 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
7598 : GIR_EraseFromParent, /*InsnID*/0,
7599 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
7600 : // GIR_Coverage, 2457,
7601 : GIR_Done,
7602 : // Label 398: @17881
7603 : GIM_Try, /*On fail goto*//*Label 399*/ 17919, // Rule ID 2458 //
7604 : GIM_CheckFeatures, GIFBS_IsBE,
7605 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
7606 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
7607 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
7608 : // (bitconvert:{ *:[v2f64] } QPR:{ *:[v8i16] }:$src) => (VREV64q16:{ *:[v2f64] } QPR:{ *:[v8i16] }:$src)
7609 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64q16,
7610 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
7611 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7612 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
7613 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
7614 : GIR_EraseFromParent, /*InsnID*/0,
7615 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
7616 : // GIR_Coverage, 2458,
7617 : GIR_Done,
7618 : // Label 399: @17919
7619 : GIM_Try, /*On fail goto*//*Label 400*/ 17957, // Rule ID 2459 //
7620 : GIM_CheckFeatures, GIFBS_IsBE,
7621 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
7622 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
7623 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
7624 : // (bitconvert:{ *:[v2f64] } QPR:{ *:[v8f16] }:$src) => (VREV64q16:{ *:[v2f64] } QPR:{ *:[v8f16] }:$src)
7625 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64q16,
7626 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
7627 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7628 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
7629 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
7630 : GIR_EraseFromParent, /*InsnID*/0,
7631 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
7632 : // GIR_Coverage, 2459,
7633 : GIR_Done,
7634 : // Label 400: @17957
7635 : GIM_Try, /*On fail goto*//*Label 401*/ 17995, // Rule ID 2460 //
7636 : GIM_CheckFeatures, GIFBS_IsBE,
7637 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
7638 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
7639 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
7640 : // (bitconvert:{ *:[v2f64] } QPR:{ *:[v16i8] }:$src) => (VREV64q8:{ *:[v2f64] } QPR:{ *:[v16i8] }:$src)
7641 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64q8,
7642 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
7643 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7644 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
7645 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
7646 : GIR_EraseFromParent, /*InsnID*/0,
7647 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
7648 : // GIR_Coverage, 2460,
7649 : GIR_Done,
7650 : // Label 401: @17995
7651 : GIM_Try, /*On fail goto*//*Label 402*/ 18033, // Rule ID 2461 //
7652 : GIM_CheckFeatures, GIFBS_IsBE,
7653 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
7654 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
7655 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
7656 : // (bitconvert:{ *:[v2f64] } QPR:{ *:[v4f32] }:$src) => (VREV64q32:{ *:[v2f64] } QPR:{ *:[v4f32] }:$src)
7657 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64q32,
7658 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
7659 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7660 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
7661 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
7662 : GIR_EraseFromParent, /*InsnID*/0,
7663 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
7664 : // GIR_Coverage, 2461,
7665 : GIR_Done,
7666 : // Label 402: @18033
7667 : GIM_Reject,
7668 : // Label 336: @18034
7669 : GIM_Try, /*On fail goto*//*Label 403*/ 18068, // Rule ID 2352 //
7670 : GIM_CheckFeatures, GIFBS_IsLE,
7671 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
7672 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
7673 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
7674 : // (bitconvert:{ *:[v4i16] } DPR:{ *:[v1i64] }:$src) => DPR:{ *:[v4i16] }:$src
7675 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
7676 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
7677 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7678 : GIR_EraseFromParent, /*InsnID*/0,
7679 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC DPR*/18,
7680 : // GIR_Coverage, 2352,
7681 : GIR_Done,
7682 : // Label 403: @18068
7683 : GIM_Try, /*On fail goto*//*Label 404*/ 18102, // Rule ID 2353 //
7684 : GIM_CheckFeatures, GIFBS_IsLE,
7685 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
7686 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
7687 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
7688 : // (bitconvert:{ *:[v4i16] } DPR:{ *:[v2i32] }:$src) => DPR:{ *:[v4i16] }:$src
7689 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
7690 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
7691 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7692 : GIR_EraseFromParent, /*InsnID*/0,
7693 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC DPR*/18,
7694 : // GIR_Coverage, 2353,
7695 : GIR_Done,
7696 : // Label 404: @18102
7697 : GIM_Try, /*On fail goto*//*Label 405*/ 18136, // Rule ID 2354 //
7698 : GIM_CheckFeatures, GIFBS_IsLE,
7699 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
7700 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
7701 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
7702 : // (bitconvert:{ *:[v4i16] } DPR:{ *:[v8i8] }:$src) => DPR:{ *:[v4i16] }:$src
7703 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
7704 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
7705 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7706 : GIR_EraseFromParent, /*InsnID*/0,
7707 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC DPR*/18,
7708 : // GIR_Coverage, 2354,
7709 : GIR_Done,
7710 : // Label 405: @18136
7711 : GIM_Try, /*On fail goto*//*Label 406*/ 18170, // Rule ID 2355 //
7712 : GIM_CheckFeatures, GIFBS_IsLE,
7713 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
7714 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
7715 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
7716 : // (bitconvert:{ *:[v4i16] } DPR:{ *:[f64] }:$src) => DPR:{ *:[v4i16] }:$src
7717 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
7718 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
7719 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7720 : GIR_EraseFromParent, /*InsnID*/0,
7721 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC DPR*/18,
7722 : // GIR_Coverage, 2355,
7723 : GIR_Done,
7724 : // Label 406: @18170
7725 : GIM_Try, /*On fail goto*//*Label 407*/ 18204, // Rule ID 2356 //
7726 : GIM_CheckFeatures, GIFBS_IsLE,
7727 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
7728 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
7729 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
7730 : // (bitconvert:{ *:[v4i16] } DPR:{ *:[v2f32] }:$src) => DPR:{ *:[v4i16] }:$src
7731 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
7732 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
7733 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7734 : GIR_EraseFromParent, /*InsnID*/0,
7735 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC DPR*/18,
7736 : // GIR_Coverage, 2356,
7737 : GIR_Done,
7738 : // Label 407: @18204
7739 : GIM_Try, /*On fail goto*//*Label 408*/ 18238, // Rule ID 2369 //
7740 : GIM_CheckFeatures, GIFBS_IsLE,
7741 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
7742 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
7743 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
7744 : // (bitconvert:{ *:[v4f16] } DPR:{ *:[f64] }:$src) => DPR:{ *:[v4f16] }:$src
7745 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
7746 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
7747 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7748 : GIR_EraseFromParent, /*InsnID*/0,
7749 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC DPR*/18,
7750 : // GIR_Coverage, 2369,
7751 : GIR_Done,
7752 : // Label 408: @18238
7753 : GIM_Try, /*On fail goto*//*Label 409*/ 18276, // Rule ID 2414 //
7754 : GIM_CheckFeatures, GIFBS_IsBE,
7755 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
7756 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
7757 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
7758 : // (bitconvert:{ *:[v4i16] } DPR:{ *:[v1i64] }:$src) => (VREV64d16:{ *:[v4i16] } DPR:{ *:[v1i64] }:$src)
7759 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64d16,
7760 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
7761 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7762 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
7763 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
7764 : GIR_EraseFromParent, /*InsnID*/0,
7765 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
7766 : // GIR_Coverage, 2414,
7767 : GIR_Done,
7768 : // Label 409: @18276
7769 : GIM_Try, /*On fail goto*//*Label 410*/ 18314, // Rule ID 2415 //
7770 : GIM_CheckFeatures, GIFBS_IsBE,
7771 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
7772 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
7773 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
7774 : // (bitconvert:{ *:[v4i16] } DPR:{ *:[v2i32] }:$src) => (VREV32d16:{ *:[v4i16] } DPR:{ *:[v2i32] }:$src)
7775 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32d16,
7776 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
7777 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7778 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
7779 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
7780 : GIR_EraseFromParent, /*InsnID*/0,
7781 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
7782 : // GIR_Coverage, 2415,
7783 : GIR_Done,
7784 : // Label 410: @18314
7785 : GIM_Try, /*On fail goto*//*Label 411*/ 18352, // Rule ID 2416 //
7786 : GIM_CheckFeatures, GIFBS_IsBE,
7787 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
7788 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
7789 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
7790 : // (bitconvert:{ *:[v4i16] } DPR:{ *:[v8i8] }:$src) => (VREV16d8:{ *:[v4i16] } DPR:{ *:[v8i8] }:$src)
7791 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV16d8,
7792 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
7793 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7794 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
7795 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
7796 : GIR_EraseFromParent, /*InsnID*/0,
7797 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
7798 : // GIR_Coverage, 2416,
7799 : GIR_Done,
7800 : // Label 411: @18352
7801 : GIM_Try, /*On fail goto*//*Label 412*/ 18390, // Rule ID 2417 //
7802 : GIM_CheckFeatures, GIFBS_IsBE,
7803 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
7804 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
7805 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
7806 : // (bitconvert:{ *:[v4i16] } DPR:{ *:[f64] }:$src) => (VREV64d16:{ *:[v4i16] } DPR:{ *:[f64] }:$src)
7807 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64d16,
7808 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
7809 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7810 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
7811 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
7812 : GIR_EraseFromParent, /*InsnID*/0,
7813 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
7814 : // GIR_Coverage, 2417,
7815 : GIR_Done,
7816 : // Label 412: @18390
7817 : GIM_Try, /*On fail goto*//*Label 413*/ 18428, // Rule ID 2418 //
7818 : GIM_CheckFeatures, GIFBS_IsBE,
7819 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
7820 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
7821 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
7822 : // (bitconvert:{ *:[v4i16] } DPR:{ *:[v2f32] }:$src) => (VREV32d16:{ *:[v4i16] } DPR:{ *:[v2f32] }:$src)
7823 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32d16,
7824 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
7825 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7826 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
7827 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
7828 : GIR_EraseFromParent, /*InsnID*/0,
7829 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
7830 : // GIR_Coverage, 2418,
7831 : GIR_Done,
7832 : // Label 413: @18428
7833 : GIM_Reject,
7834 : // Label 337: @18429
7835 : GIM_Try, /*On fail goto*//*Label 414*/ 18463, // Rule ID 2379 //
7836 : GIM_CheckFeatures, GIFBS_IsLE,
7837 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
7838 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
7839 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
7840 : // (bitconvert:{ *:[v4i32] } QPR:{ *:[v2i64] }:$src) => QPR:{ *:[v4i32] }:$src
7841 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
7842 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
7843 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7844 : GIR_EraseFromParent, /*InsnID*/0,
7845 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC QPR*/36,
7846 : // GIR_Coverage, 2379,
7847 : GIR_Done,
7848 : // Label 414: @18463
7849 : GIM_Try, /*On fail goto*//*Label 415*/ 18497, // Rule ID 2380 //
7850 : GIM_CheckFeatures, GIFBS_IsLE,
7851 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
7852 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
7853 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
7854 : // (bitconvert:{ *:[v4i32] } QPR:{ *:[v8i16] }:$src) => QPR:{ *:[v4i32] }:$src
7855 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
7856 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
7857 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7858 : GIR_EraseFromParent, /*InsnID*/0,
7859 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC QPR*/36,
7860 : // GIR_Coverage, 2380,
7861 : GIR_Done,
7862 : // Label 415: @18497
7863 : GIM_Try, /*On fail goto*//*Label 416*/ 18531, // Rule ID 2381 //
7864 : GIM_CheckFeatures, GIFBS_IsLE,
7865 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
7866 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
7867 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
7868 : // (bitconvert:{ *:[v4i32] } QPR:{ *:[v16i8] }:$src) => QPR:{ *:[v4i32] }:$src
7869 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
7870 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
7871 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7872 : GIR_EraseFromParent, /*InsnID*/0,
7873 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC QPR*/36,
7874 : // GIR_Coverage, 2381,
7875 : GIR_Done,
7876 : // Label 416: @18531
7877 : GIM_Try, /*On fail goto*//*Label 417*/ 18565, // Rule ID 2382 //
7878 : GIM_CheckFeatures, GIFBS_IsLE,
7879 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
7880 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
7881 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
7882 : // (bitconvert:{ *:[v4i32] } QPR:{ *:[v2f64] }:$src) => QPR:{ *:[v4i32] }:$src
7883 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
7884 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
7885 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7886 : GIR_EraseFromParent, /*InsnID*/0,
7887 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC QPR*/36,
7888 : // GIR_Coverage, 2382,
7889 : GIR_Done,
7890 : // Label 417: @18565
7891 : GIM_Try, /*On fail goto*//*Label 418*/ 18597, // Rule ID 2383 //
7892 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
7893 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
7894 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
7895 : // (bitconvert:{ *:[v4i32] } QPR:{ *:[v4f32] }:$src) => QPR:{ *:[v4i32] }:$src
7896 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
7897 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
7898 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7899 : GIR_EraseFromParent, /*InsnID*/0,
7900 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC QPR*/36,
7901 : // GIR_Coverage, 2383,
7902 : GIR_Done,
7903 : // Label 418: @18597
7904 : GIM_Try, /*On fail goto*//*Label 419*/ 18631, // Rule ID 2395 //
7905 : GIM_CheckFeatures, GIFBS_IsLE,
7906 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
7907 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
7908 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
7909 : // (bitconvert:{ *:[v4f32] } QPR:{ *:[v2i64] }:$src) => QPR:{ *:[v4f32] }:$src
7910 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
7911 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
7912 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7913 : GIR_EraseFromParent, /*InsnID*/0,
7914 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC QPR*/36,
7915 : // GIR_Coverage, 2395,
7916 : GIR_Done,
7917 : // Label 419: @18631
7918 : GIM_Try, /*On fail goto*//*Label 420*/ 18663, // Rule ID 2396 //
7919 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
7920 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
7921 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
7922 : // (bitconvert:{ *:[v4f32] } QPR:{ *:[v4i32] }:$src) => QPR:{ *:[v4f32] }:$src
7923 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
7924 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
7925 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7926 : GIR_EraseFromParent, /*InsnID*/0,
7927 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC QPR*/36,
7928 : // GIR_Coverage, 2396,
7929 : GIR_Done,
7930 : // Label 420: @18663
7931 : GIM_Try, /*On fail goto*//*Label 421*/ 18697, // Rule ID 2397 //
7932 : GIM_CheckFeatures, GIFBS_IsLE,
7933 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
7934 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
7935 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
7936 : // (bitconvert:{ *:[v4f32] } QPR:{ *:[v8i16] }:$src) => QPR:{ *:[v4f32] }:$src
7937 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
7938 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
7939 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7940 : GIR_EraseFromParent, /*InsnID*/0,
7941 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC QPR*/36,
7942 : // GIR_Coverage, 2397,
7943 : GIR_Done,
7944 : // Label 421: @18697
7945 : GIM_Try, /*On fail goto*//*Label 422*/ 18731, // Rule ID 2398 //
7946 : GIM_CheckFeatures, GIFBS_IsLE,
7947 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
7948 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
7949 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
7950 : // (bitconvert:{ *:[v4f32] } QPR:{ *:[v16i8] }:$src) => QPR:{ *:[v4f32] }:$src
7951 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
7952 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
7953 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7954 : GIR_EraseFromParent, /*InsnID*/0,
7955 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC QPR*/36,
7956 : // GIR_Coverage, 2398,
7957 : GIR_Done,
7958 : // Label 422: @18731
7959 : GIM_Try, /*On fail goto*//*Label 423*/ 18765, // Rule ID 2399 //
7960 : GIM_CheckFeatures, GIFBS_IsLE,
7961 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
7962 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
7963 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
7964 : // (bitconvert:{ *:[v4f32] } QPR:{ *:[v2f64] }:$src) => QPR:{ *:[v4f32] }:$src
7965 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
7966 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
7967 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7968 : GIR_EraseFromParent, /*InsnID*/0,
7969 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC QPR*/36,
7970 : // GIR_Coverage, 2399,
7971 : GIR_Done,
7972 : // Label 423: @18765
7973 : GIM_Try, /*On fail goto*//*Label 424*/ 18803, // Rule ID 2437 //
7974 : GIM_CheckFeatures, GIFBS_IsBE,
7975 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
7976 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
7977 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
7978 : // (bitconvert:{ *:[v4i32] } QPR:{ *:[v2i64] }:$src) => (VREV64q32:{ *:[v4i32] } QPR:{ *:[v2i64] }:$src)
7979 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64q32,
7980 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
7981 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7982 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
7983 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
7984 : GIR_EraseFromParent, /*InsnID*/0,
7985 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
7986 : // GIR_Coverage, 2437,
7987 : GIR_Done,
7988 : // Label 424: @18803
7989 : GIM_Try, /*On fail goto*//*Label 425*/ 18841, // Rule ID 2438 //
7990 : GIM_CheckFeatures, GIFBS_IsBE,
7991 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
7992 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
7993 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
7994 : // (bitconvert:{ *:[v4i32] } QPR:{ *:[v8i16] }:$src) => (VREV32q16:{ *:[v4i32] } QPR:{ *:[v8i16] }:$src)
7995 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32q16,
7996 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
7997 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
7998 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
7999 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
8000 : GIR_EraseFromParent, /*InsnID*/0,
8001 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8002 : // GIR_Coverage, 2438,
8003 : GIR_Done,
8004 : // Label 425: @18841
8005 : GIM_Try, /*On fail goto*//*Label 426*/ 18879, // Rule ID 2439 //
8006 : GIM_CheckFeatures, GIFBS_IsBE,
8007 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
8008 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
8009 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
8010 : // (bitconvert:{ *:[v4i32] } QPR:{ *:[v16i8] }:$src) => (VREV32q8:{ *:[v4i32] } QPR:{ *:[v16i8] }:$src)
8011 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32q8,
8012 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
8013 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
8014 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
8015 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
8016 : GIR_EraseFromParent, /*InsnID*/0,
8017 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8018 : // GIR_Coverage, 2439,
8019 : GIR_Done,
8020 : // Label 426: @18879
8021 : GIM_Try, /*On fail goto*//*Label 427*/ 18917, // Rule ID 2440 //
8022 : GIM_CheckFeatures, GIFBS_IsBE,
8023 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
8024 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
8025 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
8026 : // (bitconvert:{ *:[v4i32] } QPR:{ *:[v2f64] }:$src) => (VREV64q32:{ *:[v4i32] } QPR:{ *:[v2f64] }:$src)
8027 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64q32,
8028 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
8029 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
8030 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
8031 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
8032 : GIR_EraseFromParent, /*InsnID*/0,
8033 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8034 : // GIR_Coverage, 2440,
8035 : GIR_Done,
8036 : // Label 427: @18917
8037 : GIM_Try, /*On fail goto*//*Label 428*/ 18955, // Rule ID 2452 //
8038 : GIM_CheckFeatures, GIFBS_IsBE,
8039 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
8040 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
8041 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
8042 : // (bitconvert:{ *:[v4f32] } QPR:{ *:[v2i64] }:$src) => (VREV64q32:{ *:[v4f32] } QPR:{ *:[v2i64] }:$src)
8043 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64q32,
8044 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
8045 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
8046 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
8047 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
8048 : GIR_EraseFromParent, /*InsnID*/0,
8049 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8050 : // GIR_Coverage, 2452,
8051 : GIR_Done,
8052 : // Label 428: @18955
8053 : GIM_Try, /*On fail goto*//*Label 429*/ 18993, // Rule ID 2453 //
8054 : GIM_CheckFeatures, GIFBS_IsBE,
8055 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
8056 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
8057 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
8058 : // (bitconvert:{ *:[v4f32] } QPR:{ *:[v8i16] }:$src) => (VREV32q16:{ *:[v4f32] } QPR:{ *:[v8i16] }:$src)
8059 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32q16,
8060 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
8061 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
8062 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
8063 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
8064 : GIR_EraseFromParent, /*InsnID*/0,
8065 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8066 : // GIR_Coverage, 2453,
8067 : GIR_Done,
8068 : // Label 429: @18993
8069 : GIM_Try, /*On fail goto*//*Label 430*/ 19031, // Rule ID 2454 //
8070 : GIM_CheckFeatures, GIFBS_IsBE,
8071 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
8072 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
8073 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
8074 : // (bitconvert:{ *:[v4f32] } QPR:{ *:[v8f16] }:$src) => (VREV32q16:{ *:[v4f32] } QPR:{ *:[v8f16] }:$src)
8075 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32q16,
8076 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
8077 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
8078 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
8079 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
8080 : GIR_EraseFromParent, /*InsnID*/0,
8081 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8082 : // GIR_Coverage, 2454,
8083 : GIR_Done,
8084 : // Label 430: @19031
8085 : GIM_Try, /*On fail goto*//*Label 431*/ 19069, // Rule ID 2455 //
8086 : GIM_CheckFeatures, GIFBS_IsBE,
8087 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
8088 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
8089 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
8090 : // (bitconvert:{ *:[v4f32] } QPR:{ *:[v16i8] }:$src) => (VREV32q8:{ *:[v4f32] } QPR:{ *:[v16i8] }:$src)
8091 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32q8,
8092 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
8093 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
8094 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
8095 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
8096 : GIR_EraseFromParent, /*InsnID*/0,
8097 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8098 : // GIR_Coverage, 2455,
8099 : GIR_Done,
8100 : // Label 431: @19069
8101 : GIM_Try, /*On fail goto*//*Label 432*/ 19107, // Rule ID 2456 //
8102 : GIM_CheckFeatures, GIFBS_IsBE,
8103 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
8104 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
8105 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
8106 : // (bitconvert:{ *:[v4f32] } QPR:{ *:[v2f64] }:$src) => (VREV64q32:{ *:[v4f32] } QPR:{ *:[v2f64] }:$src)
8107 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64q32,
8108 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
8109 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
8110 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
8111 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
8112 : GIR_EraseFromParent, /*InsnID*/0,
8113 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8114 : // GIR_Coverage, 2456,
8115 : GIR_Done,
8116 : // Label 432: @19107
8117 : GIM_Reject,
8118 : // Label 338: @19108
8119 : GIM_Try, /*On fail goto*//*Label 433*/ 19142, // Rule ID 2357 //
8120 : GIM_CheckFeatures, GIFBS_IsLE,
8121 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
8122 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
8123 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
8124 : // (bitconvert:{ *:[v8i8] } DPR:{ *:[v1i64] }:$src) => DPR:{ *:[v8i8] }:$src
8125 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
8126 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
8127 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
8128 : GIR_EraseFromParent, /*InsnID*/0,
8129 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC DPR*/18,
8130 : // GIR_Coverage, 2357,
8131 : GIR_Done,
8132 : // Label 433: @19142
8133 : GIM_Try, /*On fail goto*//*Label 434*/ 19176, // Rule ID 2358 //
8134 : GIM_CheckFeatures, GIFBS_IsLE,
8135 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
8136 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
8137 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
8138 : // (bitconvert:{ *:[v8i8] } DPR:{ *:[v2i32] }:$src) => DPR:{ *:[v8i8] }:$src
8139 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
8140 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
8141 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
8142 : GIR_EraseFromParent, /*InsnID*/0,
8143 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC DPR*/18,
8144 : // GIR_Coverage, 2358,
8145 : GIR_Done,
8146 : // Label 434: @19176
8147 : GIM_Try, /*On fail goto*//*Label 435*/ 19210, // Rule ID 2359 //
8148 : GIM_CheckFeatures, GIFBS_IsLE,
8149 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
8150 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
8151 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
8152 : // (bitconvert:{ *:[v8i8] } DPR:{ *:[v4i16] }:$src) => DPR:{ *:[v8i8] }:$src
8153 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
8154 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
8155 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
8156 : GIR_EraseFromParent, /*InsnID*/0,
8157 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC DPR*/18,
8158 : // GIR_Coverage, 2359,
8159 : GIR_Done,
8160 : // Label 435: @19210
8161 : GIM_Try, /*On fail goto*//*Label 436*/ 19244, // Rule ID 2360 //
8162 : GIM_CheckFeatures, GIFBS_IsLE,
8163 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
8164 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
8165 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
8166 : // (bitconvert:{ *:[v8i8] } DPR:{ *:[f64] }:$src) => DPR:{ *:[v8i8] }:$src
8167 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
8168 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
8169 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
8170 : GIR_EraseFromParent, /*InsnID*/0,
8171 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC DPR*/18,
8172 : // GIR_Coverage, 2360,
8173 : GIR_Done,
8174 : // Label 436: @19244
8175 : GIM_Try, /*On fail goto*//*Label 437*/ 19278, // Rule ID 2361 //
8176 : GIM_CheckFeatures, GIFBS_IsLE,
8177 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
8178 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
8179 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
8180 : // (bitconvert:{ *:[v8i8] } DPR:{ *:[v2f32] }:$src) => DPR:{ *:[v8i8] }:$src
8181 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
8182 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
8183 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
8184 : GIR_EraseFromParent, /*InsnID*/0,
8185 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC DPR*/18,
8186 : // GIR_Coverage, 2361,
8187 : GIR_Done,
8188 : // Label 437: @19278
8189 : GIM_Try, /*On fail goto*//*Label 438*/ 19316, // Rule ID 2419 //
8190 : GIM_CheckFeatures, GIFBS_IsBE,
8191 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
8192 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
8193 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
8194 : // (bitconvert:{ *:[v8i8] } DPR:{ *:[v1i64] }:$src) => (VREV64d8:{ *:[v8i8] } DPR:{ *:[v1i64] }:$src)
8195 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64d8,
8196 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
8197 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
8198 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
8199 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
8200 : GIR_EraseFromParent, /*InsnID*/0,
8201 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8202 : // GIR_Coverage, 2419,
8203 : GIR_Done,
8204 : // Label 438: @19316
8205 : GIM_Try, /*On fail goto*//*Label 439*/ 19354, // Rule ID 2420 //
8206 : GIM_CheckFeatures, GIFBS_IsBE,
8207 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
8208 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
8209 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
8210 : // (bitconvert:{ *:[v8i8] } DPR:{ *:[v2i32] }:$src) => (VREV32d8:{ *:[v8i8] } DPR:{ *:[v2i32] }:$src)
8211 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32d8,
8212 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
8213 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
8214 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
8215 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
8216 : GIR_EraseFromParent, /*InsnID*/0,
8217 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8218 : // GIR_Coverage, 2420,
8219 : GIR_Done,
8220 : // Label 439: @19354
8221 : GIM_Try, /*On fail goto*//*Label 440*/ 19392, // Rule ID 2421 //
8222 : GIM_CheckFeatures, GIFBS_IsBE,
8223 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
8224 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
8225 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
8226 : // (bitconvert:{ *:[v8i8] } DPR:{ *:[v4i16] }:$src) => (VREV16d8:{ *:[v8i8] } DPR:{ *:[v4i16] }:$src)
8227 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV16d8,
8228 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
8229 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
8230 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
8231 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
8232 : GIR_EraseFromParent, /*InsnID*/0,
8233 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8234 : // GIR_Coverage, 2421,
8235 : GIR_Done,
8236 : // Label 440: @19392
8237 : GIM_Try, /*On fail goto*//*Label 441*/ 19430, // Rule ID 2422 //
8238 : GIM_CheckFeatures, GIFBS_IsBE,
8239 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
8240 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
8241 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
8242 : // (bitconvert:{ *:[v8i8] } DPR:{ *:[f64] }:$src) => (VREV64d8:{ *:[v8i8] } DPR:{ *:[f64] }:$src)
8243 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64d8,
8244 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
8245 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
8246 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
8247 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
8248 : GIR_EraseFromParent, /*InsnID*/0,
8249 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8250 : // GIR_Coverage, 2422,
8251 : GIR_Done,
8252 : // Label 441: @19430
8253 : GIM_Try, /*On fail goto*//*Label 442*/ 19468, // Rule ID 2423 //
8254 : GIM_CheckFeatures, GIFBS_IsBE,
8255 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
8256 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
8257 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
8258 : // (bitconvert:{ *:[v8i8] } DPR:{ *:[v2f32] }:$src) => (VREV32d8:{ *:[v8i8] } DPR:{ *:[v2f32] }:$src)
8259 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32d8,
8260 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
8261 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
8262 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
8263 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
8264 : GIR_EraseFromParent, /*InsnID*/0,
8265 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8266 : // GIR_Coverage, 2423,
8267 : GIR_Done,
8268 : // Label 442: @19468
8269 : GIM_Reject,
8270 : // Label 339: @19469
8271 : GIM_Try, /*On fail goto*//*Label 443*/ 19503, // Rule ID 2384 //
8272 : GIM_CheckFeatures, GIFBS_IsLE,
8273 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
8274 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
8275 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
8276 : // (bitconvert:{ *:[v8i16] } QPR:{ *:[v2i64] }:$src) => QPR:{ *:[v8i16] }:$src
8277 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
8278 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
8279 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
8280 : GIR_EraseFromParent, /*InsnID*/0,
8281 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC QPR*/36,
8282 : // GIR_Coverage, 2384,
8283 : GIR_Done,
8284 : // Label 443: @19503
8285 : GIM_Try, /*On fail goto*//*Label 444*/ 19537, // Rule ID 2385 //
8286 : GIM_CheckFeatures, GIFBS_IsLE,
8287 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
8288 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
8289 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
8290 : // (bitconvert:{ *:[v8i16] } QPR:{ *:[v4i32] }:$src) => QPR:{ *:[v8i16] }:$src
8291 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
8292 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
8293 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
8294 : GIR_EraseFromParent, /*InsnID*/0,
8295 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC QPR*/36,
8296 : // GIR_Coverage, 2385,
8297 : GIR_Done,
8298 : // Label 444: @19537
8299 : GIM_Try, /*On fail goto*//*Label 445*/ 19571, // Rule ID 2386 //
8300 : GIM_CheckFeatures, GIFBS_IsLE,
8301 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
8302 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
8303 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
8304 : // (bitconvert:{ *:[v8i16] } QPR:{ *:[v16i8] }:$src) => QPR:{ *:[v8i16] }:$src
8305 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
8306 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
8307 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
8308 : GIR_EraseFromParent, /*InsnID*/0,
8309 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC QPR*/36,
8310 : // GIR_Coverage, 2386,
8311 : GIR_Done,
8312 : // Label 445: @19571
8313 : GIM_Try, /*On fail goto*//*Label 446*/ 19605, // Rule ID 2387 //
8314 : GIM_CheckFeatures, GIFBS_IsLE,
8315 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
8316 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
8317 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
8318 : // (bitconvert:{ *:[v8i16] } QPR:{ *:[v2f64] }:$src) => QPR:{ *:[v8i16] }:$src
8319 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
8320 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
8321 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
8322 : GIR_EraseFromParent, /*InsnID*/0,
8323 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC QPR*/36,
8324 : // GIR_Coverage, 2387,
8325 : GIR_Done,
8326 : // Label 446: @19605
8327 : GIM_Try, /*On fail goto*//*Label 447*/ 19639, // Rule ID 2388 //
8328 : GIM_CheckFeatures, GIFBS_IsLE,
8329 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
8330 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
8331 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
8332 : // (bitconvert:{ *:[v8i16] } QPR:{ *:[v4f32] }:$src) => QPR:{ *:[v8i16] }:$src
8333 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
8334 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
8335 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
8336 : GIR_EraseFromParent, /*InsnID*/0,
8337 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC QPR*/36,
8338 : // GIR_Coverage, 2388,
8339 : GIR_Done,
8340 : // Label 447: @19639
8341 : GIM_Try, /*On fail goto*//*Label 448*/ 19673, // Rule ID 2389 //
8342 : GIM_CheckFeatures, GIFBS_IsLE,
8343 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
8344 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
8345 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
8346 : // (bitconvert:{ *:[v8f16] } QPR:{ *:[v2f64] }:$src) => QPR:{ *:[v8f16] }:$src
8347 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
8348 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
8349 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
8350 : GIR_EraseFromParent, /*InsnID*/0,
8351 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC QPR*/36,
8352 : // GIR_Coverage, 2389,
8353 : GIR_Done,
8354 : // Label 448: @19673
8355 : GIM_Try, /*On fail goto*//*Label 449*/ 19711, // Rule ID 2441 //
8356 : GIM_CheckFeatures, GIFBS_IsBE,
8357 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
8358 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
8359 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
8360 : // (bitconvert:{ *:[v8i16] } QPR:{ *:[v2i64] }:$src) => (VREV64q16:{ *:[v8i16] } QPR:{ *:[v2i64] }:$src)
8361 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64q16,
8362 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
8363 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
8364 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
8365 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
8366 : GIR_EraseFromParent, /*InsnID*/0,
8367 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8368 : // GIR_Coverage, 2441,
8369 : GIR_Done,
8370 : // Label 449: @19711
8371 : GIM_Try, /*On fail goto*//*Label 450*/ 19749, // Rule ID 2442 //
8372 : GIM_CheckFeatures, GIFBS_IsBE,
8373 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
8374 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
8375 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
8376 : // (bitconvert:{ *:[v8i16] } QPR:{ *:[v4i32] }:$src) => (VREV32q16:{ *:[v8i16] } QPR:{ *:[v4i32] }:$src)
8377 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32q16,
8378 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
8379 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
8380 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
8381 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
8382 : GIR_EraseFromParent, /*InsnID*/0,
8383 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8384 : // GIR_Coverage, 2442,
8385 : GIR_Done,
8386 : // Label 450: @19749
8387 : GIM_Try, /*On fail goto*//*Label 451*/ 19787, // Rule ID 2443 //
8388 : GIM_CheckFeatures, GIFBS_IsBE,
8389 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
8390 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
8391 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
8392 : // (bitconvert:{ *:[v8i16] } QPR:{ *:[v16i8] }:$src) => (VREV16q8:{ *:[v8i16] } QPR:{ *:[v16i8] }:$src)
8393 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV16q8,
8394 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
8395 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
8396 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
8397 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
8398 : GIR_EraseFromParent, /*InsnID*/0,
8399 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8400 : // GIR_Coverage, 2443,
8401 : GIR_Done,
8402 : // Label 451: @19787
8403 : GIM_Try, /*On fail goto*//*Label 452*/ 19825, // Rule ID 2444 //
8404 : GIM_CheckFeatures, GIFBS_IsBE,
8405 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
8406 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
8407 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
8408 : // (bitconvert:{ *:[v8i16] } QPR:{ *:[v2f64] }:$src) => (VREV64q16:{ *:[v8i16] } QPR:{ *:[v2f64] }:$src)
8409 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64q16,
8410 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
8411 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
8412 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
8413 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
8414 : GIR_EraseFromParent, /*InsnID*/0,
8415 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8416 : // GIR_Coverage, 2444,
8417 : GIR_Done,
8418 : // Label 452: @19825
8419 : GIM_Try, /*On fail goto*//*Label 453*/ 19863, // Rule ID 2445 //
8420 : GIM_CheckFeatures, GIFBS_IsBE,
8421 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
8422 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
8423 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
8424 : // (bitconvert:{ *:[v8f16] } QPR:{ *:[v2f64] }:$src) => (VREV64q16:{ *:[v8f16] } QPR:{ *:[v2f64] }:$src)
8425 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64q16,
8426 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
8427 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
8428 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
8429 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
8430 : GIR_EraseFromParent, /*InsnID*/0,
8431 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8432 : // GIR_Coverage, 2445,
8433 : GIR_Done,
8434 : // Label 453: @19863
8435 : GIM_Try, /*On fail goto*//*Label 454*/ 19901, // Rule ID 2446 //
8436 : GIM_CheckFeatures, GIFBS_IsBE,
8437 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
8438 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
8439 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
8440 : // (bitconvert:{ *:[v8i16] } QPR:{ *:[v4f32] }:$src) => (VREV32q16:{ *:[v8i16] } QPR:{ *:[v4f32] }:$src)
8441 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32q16,
8442 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
8443 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
8444 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
8445 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
8446 : GIR_EraseFromParent, /*InsnID*/0,
8447 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8448 : // GIR_Coverage, 2446,
8449 : GIR_Done,
8450 : // Label 454: @19901
8451 : GIM_Reject,
8452 : // Label 340: @19902
8453 : GIM_Try, /*On fail goto*//*Label 455*/ 19936, // Rule ID 2390 //
8454 : GIM_CheckFeatures, GIFBS_IsLE,
8455 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
8456 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
8457 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
8458 : // (bitconvert:{ *:[v16i8] } QPR:{ *:[v2i64] }:$src) => QPR:{ *:[v16i8] }:$src
8459 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
8460 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
8461 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
8462 : GIR_EraseFromParent, /*InsnID*/0,
8463 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC QPR*/36,
8464 : // GIR_Coverage, 2390,
8465 : GIR_Done,
8466 : // Label 455: @19936
8467 : GIM_Try, /*On fail goto*//*Label 456*/ 19970, // Rule ID 2391 //
8468 : GIM_CheckFeatures, GIFBS_IsLE,
8469 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
8470 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
8471 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
8472 : // (bitconvert:{ *:[v16i8] } QPR:{ *:[v4i32] }:$src) => QPR:{ *:[v16i8] }:$src
8473 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
8474 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
8475 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
8476 : GIR_EraseFromParent, /*InsnID*/0,
8477 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC QPR*/36,
8478 : // GIR_Coverage, 2391,
8479 : GIR_Done,
8480 : // Label 456: @19970
8481 : GIM_Try, /*On fail goto*//*Label 457*/ 20004, // Rule ID 2392 //
8482 : GIM_CheckFeatures, GIFBS_IsLE,
8483 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
8484 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
8485 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
8486 : // (bitconvert:{ *:[v16i8] } QPR:{ *:[v8i16] }:$src) => QPR:{ *:[v16i8] }:$src
8487 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
8488 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
8489 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
8490 : GIR_EraseFromParent, /*InsnID*/0,
8491 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC QPR*/36,
8492 : // GIR_Coverage, 2392,
8493 : GIR_Done,
8494 : // Label 457: @20004
8495 : GIM_Try, /*On fail goto*//*Label 458*/ 20038, // Rule ID 2393 //
8496 : GIM_CheckFeatures, GIFBS_IsLE,
8497 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
8498 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
8499 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
8500 : // (bitconvert:{ *:[v16i8] } QPR:{ *:[v2f64] }:$src) => QPR:{ *:[v16i8] }:$src
8501 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
8502 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
8503 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
8504 : GIR_EraseFromParent, /*InsnID*/0,
8505 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC QPR*/36,
8506 : // GIR_Coverage, 2393,
8507 : GIR_Done,
8508 : // Label 458: @20038
8509 : GIM_Try, /*On fail goto*//*Label 459*/ 20072, // Rule ID 2394 //
8510 : GIM_CheckFeatures, GIFBS_IsLE,
8511 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
8512 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
8513 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
8514 : // (bitconvert:{ *:[v16i8] } QPR:{ *:[v4f32] }:$src) => QPR:{ *:[v16i8] }:$src
8515 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
8516 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
8517 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
8518 : GIR_EraseFromParent, /*InsnID*/0,
8519 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC QPR*/36,
8520 : // GIR_Coverage, 2394,
8521 : GIR_Done,
8522 : // Label 459: @20072
8523 : GIM_Try, /*On fail goto*//*Label 460*/ 20110, // Rule ID 2447 //
8524 : GIM_CheckFeatures, GIFBS_IsBE,
8525 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
8526 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
8527 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
8528 : // (bitconvert:{ *:[v16i8] } QPR:{ *:[v2i64] }:$src) => (VREV64q8:{ *:[v16i8] } QPR:{ *:[v2i64] }:$src)
8529 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64q8,
8530 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
8531 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
8532 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
8533 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
8534 : GIR_EraseFromParent, /*InsnID*/0,
8535 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8536 : // GIR_Coverage, 2447,
8537 : GIR_Done,
8538 : // Label 460: @20110
8539 : GIM_Try, /*On fail goto*//*Label 461*/ 20148, // Rule ID 2448 //
8540 : GIM_CheckFeatures, GIFBS_IsBE,
8541 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
8542 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
8543 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
8544 : // (bitconvert:{ *:[v16i8] } QPR:{ *:[v4i32] }:$src) => (VREV32q8:{ *:[v16i8] } QPR:{ *:[v4i32] }:$src)
8545 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32q8,
8546 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
8547 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
8548 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
8549 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
8550 : GIR_EraseFromParent, /*InsnID*/0,
8551 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8552 : // GIR_Coverage, 2448,
8553 : GIR_Done,
8554 : // Label 461: @20148
8555 : GIM_Try, /*On fail goto*//*Label 462*/ 20186, // Rule ID 2449 //
8556 : GIM_CheckFeatures, GIFBS_IsBE,
8557 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
8558 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
8559 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
8560 : // (bitconvert:{ *:[v16i8] } QPR:{ *:[v8i16] }:$src) => (VREV16q8:{ *:[v16i8] } QPR:{ *:[v8i16] }:$src)
8561 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV16q8,
8562 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
8563 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
8564 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
8565 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
8566 : GIR_EraseFromParent, /*InsnID*/0,
8567 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8568 : // GIR_Coverage, 2449,
8569 : GIR_Done,
8570 : // Label 462: @20186
8571 : GIM_Try, /*On fail goto*//*Label 463*/ 20224, // Rule ID 2450 //
8572 : GIM_CheckFeatures, GIFBS_IsBE,
8573 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
8574 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
8575 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
8576 : // (bitconvert:{ *:[v16i8] } QPR:{ *:[v2f64] }:$src) => (VREV64q8:{ *:[v16i8] } QPR:{ *:[v2f64] }:$src)
8577 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64q8,
8578 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
8579 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
8580 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
8581 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
8582 : GIR_EraseFromParent, /*InsnID*/0,
8583 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8584 : // GIR_Coverage, 2450,
8585 : GIR_Done,
8586 : // Label 463: @20224
8587 : GIM_Try, /*On fail goto*//*Label 464*/ 20262, // Rule ID 2451 //
8588 : GIM_CheckFeatures, GIFBS_IsBE,
8589 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
8590 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
8591 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
8592 : // (bitconvert:{ *:[v16i8] } QPR:{ *:[v4f32] }:$src) => (VREV32q8:{ *:[v16i8] } QPR:{ *:[v4f32] }:$src)
8593 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32q8,
8594 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
8595 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
8596 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
8597 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
8598 : GIR_EraseFromParent, /*InsnID*/0,
8599 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8600 : // GIR_Coverage, 2451,
8601 : GIR_Done,
8602 : // Label 464: @20262
8603 : GIM_Reject,
8604 : // Label 341: @20263
8605 : GIM_Reject,
8606 : // Label 9: @20264
8607 : GIM_Try, /*On fail goto*//*Label 465*/ 25488,
8608 : GIM_CheckNumOperands, /*MI*/0, /*Expected*/3,
8609 : GIM_Try, /*On fail goto*//*Label 466*/ 20318, // Rule ID 1710 //
8610 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
8611 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uxtb16,
8612 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
8613 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
8614 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
8615 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
8616 : // (intrinsic_wo_chain:{ *:[i32] } 1255:{ *:[iPTR] }, GPR:{ *:[i32] }:$Src) => (UXTB16:{ *:[i32] } GPR:{ *:[i32] }:$Src, 0:{ *:[i32] })
8617 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UXTB16,
8618 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
8619 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Src
8620 : GIR_AddImm, /*InsnID*/0, /*Imm*/0,
8621 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
8622 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
8623 : GIR_EraseFromParent, /*InsnID*/0,
8624 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8625 : // GIR_Coverage, 1710,
8626 : GIR_Done,
8627 : // Label 466: @20318
8628 : GIM_Try, /*On fail goto*//*Label 467*/ 20367, // Rule ID 1914 //
8629 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
8630 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uxtb16,
8631 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
8632 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
8633 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
8634 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
8635 : // (intrinsic_wo_chain:{ *:[i32] } 1255:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rm) => (t2UXTB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
8636 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UXTB16,
8637 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
8638 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
8639 : GIR_AddImm, /*InsnID*/0, /*Imm*/0,
8640 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
8641 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
8642 : GIR_EraseFromParent, /*InsnID*/0,
8643 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8644 : // GIR_Coverage, 1914,
8645 : GIR_Done,
8646 : // Label 467: @20367
8647 : GIM_Try, /*On fail goto*//*Label 468*/ 20407, // Rule ID 678 //
8648 : GIM_CheckFeatures, GIFBS_HasFPARMv8,
8649 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintn,
8650 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
8651 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
8652 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
8653 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::SPRRegClassID,
8654 : // (intrinsic_wo_chain:{ *:[f32] } 1141:{ *:[iPTR] }, SPR:{ *:[f32] }:$Sm) => (VRINTNS:{ *:[f32] } SPR:{ *:[f32] }:$Sm)
8655 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTNS,
8656 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
8657 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Sm
8658 : GIR_EraseFromParent, /*InsnID*/0,
8659 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8660 : // GIR_Coverage, 678,
8661 : GIR_Done,
8662 : // Label 468: @20407
8663 : GIM_Try, /*On fail goto*//*Label 469*/ 20447, // Rule ID 679 //
8664 : GIM_CheckFeatures, GIFBS_HasDPVFP_HasFPARMv8,
8665 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintn,
8666 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
8667 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
8668 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
8669 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
8670 : // (intrinsic_wo_chain:{ *:[f64] } 1141:{ *:[iPTR] }, DPR:{ *:[f64] }:$Dm) => (VRINTND:{ *:[f64] } DPR:{ *:[f64] }:$Dm)
8671 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTND,
8672 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
8673 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Dm
8674 : GIR_EraseFromParent, /*InsnID*/0,
8675 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8676 : // GIR_Coverage, 679,
8677 : GIR_Done,
8678 : // Label 469: @20447
8679 : GIM_Try, /*On fail goto*//*Label 470*/ 20493, // Rule ID 692 //
8680 : GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP2,
8681 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_vcvtr,
8682 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
8683 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
8684 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
8685 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
8686 : // (intrinsic_wo_chain:{ *:[f32] } 1256:{ *:[iPTR] }, DPR:{ *:[f64] }:$Dm) => (VTOSIRD:{ *:[f32] } DPR:{ *:[f64] }:$Dm)
8687 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VTOSIRD,
8688 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
8689 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Dm
8690 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
8691 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
8692 : GIR_EraseFromParent, /*InsnID*/0,
8693 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8694 : // GIR_Coverage, 692,
8695 : GIR_Done,
8696 : // Label 470: @20493
8697 : GIM_Try, /*On fail goto*//*Label 471*/ 20539, // Rule ID 693 //
8698 : GIM_CheckFeatures, GIFBS_DontUseNEONForFP_HasVFP2,
8699 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_vcvtr,
8700 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
8701 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
8702 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
8703 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::SPRRegClassID,
8704 : // (intrinsic_wo_chain:{ *:[f32] } 1256:{ *:[iPTR] }, SPR:{ *:[f32] }:$Sm) => (VTOSIRS:{ *:[f32] } SPR:{ *:[f32] }:$Sm)
8705 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VTOSIRS,
8706 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
8707 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Sm
8708 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
8709 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
8710 : GIR_EraseFromParent, /*InsnID*/0,
8711 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8712 : // GIR_Coverage, 693,
8713 : GIR_Done,
8714 : // Label 471: @20539
8715 : GIM_Try, /*On fail goto*//*Label 472*/ 20585, // Rule ID 694 //
8716 : GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP2,
8717 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_vcvtru,
8718 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
8719 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
8720 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
8721 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
8722 : // (intrinsic_wo_chain:{ *:[f32] } 1257:{ *:[iPTR] }, DPR:{ *:[f64] }:$Dm) => (VTOUIRD:{ *:[f32] } DPR:{ *:[f64] }:$Dm)
8723 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VTOUIRD,
8724 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
8725 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Dm
8726 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
8727 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
8728 : GIR_EraseFromParent, /*InsnID*/0,
8729 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8730 : // GIR_Coverage, 694,
8731 : GIR_Done,
8732 : // Label 472: @20585
8733 : GIM_Try, /*On fail goto*//*Label 473*/ 20631, // Rule ID 695 //
8734 : GIM_CheckFeatures, GIFBS_DontUseNEONForFP_HasVFP2,
8735 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_vcvtru,
8736 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
8737 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
8738 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
8739 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::SPRRegClassID,
8740 : // (intrinsic_wo_chain:{ *:[f32] } 1257:{ *:[iPTR] }, SPR:{ *:[f32] }:$Sm) => (VTOUIRS:{ *:[f32] } SPR:{ *:[f32] }:$Sm)
8741 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VTOUIRS,
8742 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
8743 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Sm
8744 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
8745 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
8746 : GIR_EraseFromParent, /*InsnID*/0,
8747 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8748 : // GIR_Coverage, 695,
8749 : GIR_Done,
8750 : // Label 473: @20631
8751 : GIM_Try, /*On fail goto*//*Label 474*/ 20677, // Rule ID 1213 //
8752 : GIM_CheckFeatures, GIFBS_HasNEON,
8753 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpaddls,
8754 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
8755 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
8756 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
8757 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
8758 : // (intrinsic_wo_chain:{ *:[v4i16] } 1105:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm) => (VPADDLsv8i8:{ *:[v4i16] } DPR:{ *:[v8i8] }:$Vm)
8759 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADDLsv8i8,
8760 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
8761 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
8762 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
8763 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
8764 : GIR_EraseFromParent, /*InsnID*/0,
8765 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8766 : // GIR_Coverage, 1213,
8767 : GIR_Done,
8768 : // Label 474: @20677
8769 : GIM_Try, /*On fail goto*//*Label 475*/ 20723, // Rule ID 1214 //
8770 : GIM_CheckFeatures, GIFBS_HasNEON,
8771 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpaddls,
8772 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
8773 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
8774 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
8775 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
8776 : // (intrinsic_wo_chain:{ *:[v2i32] } 1105:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm) => (VPADDLsv4i16:{ *:[v2i32] } DPR:{ *:[v4i16] }:$Vm)
8777 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADDLsv4i16,
8778 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
8779 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
8780 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
8781 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
8782 : GIR_EraseFromParent, /*InsnID*/0,
8783 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8784 : // GIR_Coverage, 1214,
8785 : GIR_Done,
8786 : // Label 475: @20723
8787 : GIM_Try, /*On fail goto*//*Label 476*/ 20769, // Rule ID 1215 //
8788 : GIM_CheckFeatures, GIFBS_HasNEON,
8789 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpaddls,
8790 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
8791 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
8792 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
8793 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
8794 : // (intrinsic_wo_chain:{ *:[v1i64] } 1105:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm) => (VPADDLsv2i32:{ *:[v1i64] } DPR:{ *:[v2i32] }:$Vm)
8795 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADDLsv2i32,
8796 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
8797 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
8798 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
8799 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
8800 : GIR_EraseFromParent, /*InsnID*/0,
8801 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8802 : // GIR_Coverage, 1215,
8803 : GIR_Done,
8804 : // Label 476: @20769
8805 : GIM_Try, /*On fail goto*//*Label 477*/ 20815, // Rule ID 1216 //
8806 : GIM_CheckFeatures, GIFBS_HasNEON,
8807 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpaddls,
8808 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
8809 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
8810 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
8811 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
8812 : // (intrinsic_wo_chain:{ *:[v8i16] } 1105:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm) => (VPADDLsv16i8:{ *:[v8i16] } QPR:{ *:[v16i8] }:$Vm)
8813 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADDLsv16i8,
8814 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
8815 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
8816 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
8817 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
8818 : GIR_EraseFromParent, /*InsnID*/0,
8819 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8820 : // GIR_Coverage, 1216,
8821 : GIR_Done,
8822 : // Label 477: @20815
8823 : GIM_Try, /*On fail goto*//*Label 478*/ 20861, // Rule ID 1217 //
8824 : GIM_CheckFeatures, GIFBS_HasNEON,
8825 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpaddls,
8826 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
8827 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
8828 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
8829 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
8830 : // (intrinsic_wo_chain:{ *:[v4i32] } 1105:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm) => (VPADDLsv8i16:{ *:[v4i32] } QPR:{ *:[v8i16] }:$Vm)
8831 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADDLsv8i16,
8832 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
8833 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
8834 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
8835 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
8836 : GIR_EraseFromParent, /*InsnID*/0,
8837 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8838 : // GIR_Coverage, 1217,
8839 : GIR_Done,
8840 : // Label 478: @20861
8841 : GIM_Try, /*On fail goto*//*Label 479*/ 20907, // Rule ID 1218 //
8842 : GIM_CheckFeatures, GIFBS_HasNEON,
8843 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpaddls,
8844 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
8845 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
8846 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
8847 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
8848 : // (intrinsic_wo_chain:{ *:[v2i64] } 1105:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) => (VPADDLsv4i32:{ *:[v2i64] } QPR:{ *:[v4i32] }:$Vm)
8849 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADDLsv4i32,
8850 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
8851 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
8852 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
8853 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
8854 : GIR_EraseFromParent, /*InsnID*/0,
8855 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8856 : // GIR_Coverage, 1218,
8857 : GIR_Done,
8858 : // Label 479: @20907
8859 : GIM_Try, /*On fail goto*//*Label 480*/ 20953, // Rule ID 1219 //
8860 : GIM_CheckFeatures, GIFBS_HasNEON,
8861 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpaddlu,
8862 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
8863 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
8864 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
8865 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
8866 : // (intrinsic_wo_chain:{ *:[v4i16] } 1106:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm) => (VPADDLuv8i8:{ *:[v4i16] } DPR:{ *:[v8i8] }:$Vm)
8867 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADDLuv8i8,
8868 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
8869 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
8870 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
8871 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
8872 : GIR_EraseFromParent, /*InsnID*/0,
8873 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8874 : // GIR_Coverage, 1219,
8875 : GIR_Done,
8876 : // Label 480: @20953
8877 : GIM_Try, /*On fail goto*//*Label 481*/ 20999, // Rule ID 1220 //
8878 : GIM_CheckFeatures, GIFBS_HasNEON,
8879 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpaddlu,
8880 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
8881 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
8882 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
8883 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
8884 : // (intrinsic_wo_chain:{ *:[v2i32] } 1106:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm) => (VPADDLuv4i16:{ *:[v2i32] } DPR:{ *:[v4i16] }:$Vm)
8885 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADDLuv4i16,
8886 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
8887 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
8888 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
8889 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
8890 : GIR_EraseFromParent, /*InsnID*/0,
8891 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8892 : // GIR_Coverage, 1220,
8893 : GIR_Done,
8894 : // Label 481: @20999
8895 : GIM_Try, /*On fail goto*//*Label 482*/ 21045, // Rule ID 1221 //
8896 : GIM_CheckFeatures, GIFBS_HasNEON,
8897 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpaddlu,
8898 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
8899 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
8900 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
8901 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
8902 : // (intrinsic_wo_chain:{ *:[v1i64] } 1106:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm) => (VPADDLuv2i32:{ *:[v1i64] } DPR:{ *:[v2i32] }:$Vm)
8903 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADDLuv2i32,
8904 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
8905 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
8906 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
8907 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
8908 : GIR_EraseFromParent, /*InsnID*/0,
8909 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8910 : // GIR_Coverage, 1221,
8911 : GIR_Done,
8912 : // Label 482: @21045
8913 : GIM_Try, /*On fail goto*//*Label 483*/ 21091, // Rule ID 1222 //
8914 : GIM_CheckFeatures, GIFBS_HasNEON,
8915 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpaddlu,
8916 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
8917 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
8918 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
8919 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
8920 : // (intrinsic_wo_chain:{ *:[v8i16] } 1106:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm) => (VPADDLuv16i8:{ *:[v8i16] } QPR:{ *:[v16i8] }:$Vm)
8921 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADDLuv16i8,
8922 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
8923 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
8924 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
8925 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
8926 : GIR_EraseFromParent, /*InsnID*/0,
8927 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8928 : // GIR_Coverage, 1222,
8929 : GIR_Done,
8930 : // Label 483: @21091
8931 : GIM_Try, /*On fail goto*//*Label 484*/ 21137, // Rule ID 1223 //
8932 : GIM_CheckFeatures, GIFBS_HasNEON,
8933 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpaddlu,
8934 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
8935 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
8936 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
8937 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
8938 : // (intrinsic_wo_chain:{ *:[v4i32] } 1106:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm) => (VPADDLuv8i16:{ *:[v4i32] } QPR:{ *:[v8i16] }:$Vm)
8939 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADDLuv8i16,
8940 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
8941 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
8942 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
8943 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
8944 : GIR_EraseFromParent, /*InsnID*/0,
8945 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8946 : // GIR_Coverage, 1223,
8947 : GIR_Done,
8948 : // Label 484: @21137
8949 : GIM_Try, /*On fail goto*//*Label 485*/ 21183, // Rule ID 1224 //
8950 : GIM_CheckFeatures, GIFBS_HasNEON,
8951 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpaddlu,
8952 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
8953 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
8954 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
8955 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
8956 : // (intrinsic_wo_chain:{ *:[v2i64] } 1106:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) => (VPADDLuv4i32:{ *:[v2i64] } QPR:{ *:[v4i32] }:$Vm)
8957 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADDLuv4i32,
8958 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
8959 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
8960 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
8961 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
8962 : GIR_EraseFromParent, /*InsnID*/0,
8963 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8964 : // GIR_Coverage, 1224,
8965 : GIR_Done,
8966 : // Label 485: @21183
8967 : GIM_Try, /*On fail goto*//*Label 486*/ 21229, // Rule ID 1253 //
8968 : GIM_CheckFeatures, GIFBS_HasNEON,
8969 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrecpe,
8970 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
8971 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
8972 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
8973 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
8974 : // (intrinsic_wo_chain:{ *:[v2i32] } 1135:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm) => (VRECPEd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
8975 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRECPEd,
8976 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
8977 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
8978 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
8979 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
8980 : GIR_EraseFromParent, /*InsnID*/0,
8981 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
8982 : // GIR_Coverage, 1253,
8983 : GIR_Done,
8984 : // Label 486: @21229
8985 : GIM_Try, /*On fail goto*//*Label 487*/ 21275, // Rule ID 1254 //
8986 : GIM_CheckFeatures, GIFBS_HasNEON,
8987 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrecpe,
8988 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
8989 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
8990 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
8991 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
8992 : // (intrinsic_wo_chain:{ *:[v4i32] } 1135:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) => (VRECPEq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
8993 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRECPEq,
8994 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
8995 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
8996 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
8997 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
8998 : GIR_EraseFromParent, /*InsnID*/0,
8999 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9000 : // GIR_Coverage, 1254,
9001 : GIR_Done,
9002 : // Label 487: @21275
9003 : GIM_Try, /*On fail goto*//*Label 488*/ 21321, // Rule ID 1255 //
9004 : GIM_CheckFeatures, GIFBS_HasNEON,
9005 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrecpe,
9006 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
9007 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
9008 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
9009 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
9010 : // (intrinsic_wo_chain:{ *:[v2f32] } 1135:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VRECPEfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
9011 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRECPEfd,
9012 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9013 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9014 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
9015 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
9016 : GIR_EraseFromParent, /*InsnID*/0,
9017 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9018 : // GIR_Coverage, 1255,
9019 : GIR_Done,
9020 : // Label 488: @21321
9021 : GIM_Try, /*On fail goto*//*Label 489*/ 21367, // Rule ID 1256 //
9022 : GIM_CheckFeatures, GIFBS_HasNEON,
9023 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrecpe,
9024 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
9025 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
9026 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
9027 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
9028 : // (intrinsic_wo_chain:{ *:[v4f32] } 1135:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VRECPEfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
9029 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRECPEfq,
9030 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9031 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9032 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
9033 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
9034 : GIR_EraseFromParent, /*InsnID*/0,
9035 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9036 : // GIR_Coverage, 1256,
9037 : GIR_Done,
9038 : // Label 489: @21367
9039 : GIM_Try, /*On fail goto*//*Label 490*/ 21413, // Rule ID 1257 //
9040 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
9041 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrecpe,
9042 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
9043 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
9044 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
9045 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
9046 : // (intrinsic_wo_chain:{ *:[v4f16] } 1135:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VRECPEhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
9047 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRECPEhd,
9048 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9049 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9050 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
9051 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
9052 : GIR_EraseFromParent, /*InsnID*/0,
9053 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9054 : // GIR_Coverage, 1257,
9055 : GIR_Done,
9056 : // Label 490: @21413
9057 : GIM_Try, /*On fail goto*//*Label 491*/ 21459, // Rule ID 1258 //
9058 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
9059 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrecpe,
9060 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
9061 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
9062 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
9063 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
9064 : // (intrinsic_wo_chain:{ *:[v8f16] } 1135:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VRECPEhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
9065 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRECPEhq,
9066 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9067 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9068 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
9069 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
9070 : GIR_EraseFromParent, /*InsnID*/0,
9071 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9072 : // GIR_Coverage, 1258,
9073 : GIR_Done,
9074 : // Label 491: @21459
9075 : GIM_Try, /*On fail goto*//*Label 492*/ 21505, // Rule ID 1263 //
9076 : GIM_CheckFeatures, GIFBS_HasNEON,
9077 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrsqrte,
9078 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
9079 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
9080 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
9081 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
9082 : // (intrinsic_wo_chain:{ *:[v2i32] } 1148:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm) => (VRSQRTEd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
9083 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSQRTEd,
9084 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9085 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9086 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
9087 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
9088 : GIR_EraseFromParent, /*InsnID*/0,
9089 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9090 : // GIR_Coverage, 1263,
9091 : GIR_Done,
9092 : // Label 492: @21505
9093 : GIM_Try, /*On fail goto*//*Label 493*/ 21551, // Rule ID 1264 //
9094 : GIM_CheckFeatures, GIFBS_HasNEON,
9095 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrsqrte,
9096 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
9097 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
9098 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
9099 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
9100 : // (intrinsic_wo_chain:{ *:[v4i32] } 1148:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) => (VRSQRTEq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
9101 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSQRTEq,
9102 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9103 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9104 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
9105 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
9106 : GIR_EraseFromParent, /*InsnID*/0,
9107 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9108 : // GIR_Coverage, 1264,
9109 : GIR_Done,
9110 : // Label 493: @21551
9111 : GIM_Try, /*On fail goto*//*Label 494*/ 21597, // Rule ID 1265 //
9112 : GIM_CheckFeatures, GIFBS_HasNEON,
9113 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrsqrte,
9114 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
9115 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
9116 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
9117 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
9118 : // (intrinsic_wo_chain:{ *:[v2f32] } 1148:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VRSQRTEfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
9119 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSQRTEfd,
9120 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9121 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9122 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
9123 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
9124 : GIR_EraseFromParent, /*InsnID*/0,
9125 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9126 : // GIR_Coverage, 1265,
9127 : GIR_Done,
9128 : // Label 494: @21597
9129 : GIM_Try, /*On fail goto*//*Label 495*/ 21643, // Rule ID 1266 //
9130 : GIM_CheckFeatures, GIFBS_HasNEON,
9131 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrsqrte,
9132 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
9133 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
9134 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
9135 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
9136 : // (intrinsic_wo_chain:{ *:[v4f32] } 1148:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VRSQRTEfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
9137 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSQRTEfq,
9138 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9139 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9140 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
9141 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
9142 : GIR_EraseFromParent, /*InsnID*/0,
9143 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9144 : // GIR_Coverage, 1266,
9145 : GIR_Done,
9146 : // Label 495: @21643
9147 : GIM_Try, /*On fail goto*//*Label 496*/ 21689, // Rule ID 1267 //
9148 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
9149 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrsqrte,
9150 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
9151 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
9152 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
9153 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
9154 : // (intrinsic_wo_chain:{ *:[v4f16] } 1148:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VRSQRTEhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
9155 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSQRTEhd,
9156 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9157 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9158 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
9159 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
9160 : GIR_EraseFromParent, /*InsnID*/0,
9161 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9162 : // GIR_Coverage, 1267,
9163 : GIR_Done,
9164 : // Label 496: @21689
9165 : GIM_Try, /*On fail goto*//*Label 497*/ 21735, // Rule ID 1268 //
9166 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
9167 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrsqrte,
9168 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
9169 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
9170 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
9171 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
9172 : // (intrinsic_wo_chain:{ *:[v8f16] } 1148:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VRSQRTEhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
9173 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSQRTEhq,
9174 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9175 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9176 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
9177 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
9178 : GIR_EraseFromParent, /*InsnID*/0,
9179 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9180 : // GIR_Coverage, 1268,
9181 : GIR_Done,
9182 : // Label 497: @21735
9183 : GIM_Try, /*On fail goto*//*Label 498*/ 21781, // Rule ID 1489 //
9184 : GIM_CheckFeatures, GIFBS_HasNEON,
9185 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqabs,
9186 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
9187 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
9188 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
9189 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
9190 : // (intrinsic_wo_chain:{ *:[v8i8] } 1111:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm) => (VQABSv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm)
9191 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQABSv8i8,
9192 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9193 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9194 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
9195 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
9196 : GIR_EraseFromParent, /*InsnID*/0,
9197 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9198 : // GIR_Coverage, 1489,
9199 : GIR_Done,
9200 : // Label 498: @21781
9201 : GIM_Try, /*On fail goto*//*Label 499*/ 21827, // Rule ID 1490 //
9202 : GIM_CheckFeatures, GIFBS_HasNEON,
9203 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqabs,
9204 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
9205 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
9206 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
9207 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
9208 : // (intrinsic_wo_chain:{ *:[v4i16] } 1111:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm) => (VQABSv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm)
9209 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQABSv4i16,
9210 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9211 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9212 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
9213 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
9214 : GIR_EraseFromParent, /*InsnID*/0,
9215 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9216 : // GIR_Coverage, 1490,
9217 : GIR_Done,
9218 : // Label 499: @21827
9219 : GIM_Try, /*On fail goto*//*Label 500*/ 21873, // Rule ID 1491 //
9220 : GIM_CheckFeatures, GIFBS_HasNEON,
9221 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqabs,
9222 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
9223 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
9224 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
9225 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
9226 : // (intrinsic_wo_chain:{ *:[v2i32] } 1111:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm) => (VQABSv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
9227 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQABSv2i32,
9228 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9229 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9230 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
9231 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
9232 : GIR_EraseFromParent, /*InsnID*/0,
9233 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9234 : // GIR_Coverage, 1491,
9235 : GIR_Done,
9236 : // Label 500: @21873
9237 : GIM_Try, /*On fail goto*//*Label 501*/ 21919, // Rule ID 1492 //
9238 : GIM_CheckFeatures, GIFBS_HasNEON,
9239 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqabs,
9240 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
9241 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
9242 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
9243 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
9244 : // (intrinsic_wo_chain:{ *:[v16i8] } 1111:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm) => (VQABSv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
9245 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQABSv16i8,
9246 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9247 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9248 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
9249 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
9250 : GIR_EraseFromParent, /*InsnID*/0,
9251 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9252 : // GIR_Coverage, 1492,
9253 : GIR_Done,
9254 : // Label 501: @21919
9255 : GIM_Try, /*On fail goto*//*Label 502*/ 21965, // Rule ID 1493 //
9256 : GIM_CheckFeatures, GIFBS_HasNEON,
9257 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqabs,
9258 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
9259 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
9260 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
9261 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
9262 : // (intrinsic_wo_chain:{ *:[v8i16] } 1111:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm) => (VQABSv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm)
9263 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQABSv8i16,
9264 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9265 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9266 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
9267 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
9268 : GIR_EraseFromParent, /*InsnID*/0,
9269 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9270 : // GIR_Coverage, 1493,
9271 : GIR_Done,
9272 : // Label 502: @21965
9273 : GIM_Try, /*On fail goto*//*Label 503*/ 22011, // Rule ID 1494 //
9274 : GIM_CheckFeatures, GIFBS_HasNEON,
9275 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqabs,
9276 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
9277 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
9278 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
9279 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
9280 : // (intrinsic_wo_chain:{ *:[v4i32] } 1111:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) => (VQABSv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
9281 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQABSv4i32,
9282 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9283 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9284 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
9285 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
9286 : GIR_EraseFromParent, /*InsnID*/0,
9287 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9288 : // GIR_Coverage, 1494,
9289 : GIR_Done,
9290 : // Label 503: @22011
9291 : GIM_Try, /*On fail goto*//*Label 504*/ 22057, // Rule ID 1505 //
9292 : GIM_CheckFeatures, GIFBS_HasNEON,
9293 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqneg,
9294 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
9295 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
9296 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
9297 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
9298 : // (intrinsic_wo_chain:{ *:[v8i8] } 1119:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm) => (VQNEGv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm)
9299 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQNEGv8i8,
9300 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9301 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9302 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
9303 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
9304 : GIR_EraseFromParent, /*InsnID*/0,
9305 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9306 : // GIR_Coverage, 1505,
9307 : GIR_Done,
9308 : // Label 504: @22057
9309 : GIM_Try, /*On fail goto*//*Label 505*/ 22103, // Rule ID 1506 //
9310 : GIM_CheckFeatures, GIFBS_HasNEON,
9311 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqneg,
9312 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
9313 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
9314 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
9315 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
9316 : // (intrinsic_wo_chain:{ *:[v4i16] } 1119:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm) => (VQNEGv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm)
9317 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQNEGv4i16,
9318 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9319 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9320 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
9321 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
9322 : GIR_EraseFromParent, /*InsnID*/0,
9323 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9324 : // GIR_Coverage, 1506,
9325 : GIR_Done,
9326 : // Label 505: @22103
9327 : GIM_Try, /*On fail goto*//*Label 506*/ 22149, // Rule ID 1507 //
9328 : GIM_CheckFeatures, GIFBS_HasNEON,
9329 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqneg,
9330 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
9331 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
9332 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
9333 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
9334 : // (intrinsic_wo_chain:{ *:[v2i32] } 1119:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm) => (VQNEGv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
9335 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQNEGv2i32,
9336 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9337 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9338 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
9339 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
9340 : GIR_EraseFromParent, /*InsnID*/0,
9341 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9342 : // GIR_Coverage, 1507,
9343 : GIR_Done,
9344 : // Label 506: @22149
9345 : GIM_Try, /*On fail goto*//*Label 507*/ 22195, // Rule ID 1508 //
9346 : GIM_CheckFeatures, GIFBS_HasNEON,
9347 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqneg,
9348 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
9349 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
9350 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
9351 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
9352 : // (intrinsic_wo_chain:{ *:[v16i8] } 1119:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm) => (VQNEGv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
9353 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQNEGv16i8,
9354 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9355 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9356 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
9357 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
9358 : GIR_EraseFromParent, /*InsnID*/0,
9359 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9360 : // GIR_Coverage, 1508,
9361 : GIR_Done,
9362 : // Label 507: @22195
9363 : GIM_Try, /*On fail goto*//*Label 508*/ 22241, // Rule ID 1509 //
9364 : GIM_CheckFeatures, GIFBS_HasNEON,
9365 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqneg,
9366 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
9367 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
9368 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
9369 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
9370 : // (intrinsic_wo_chain:{ *:[v8i16] } 1119:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm) => (VQNEGv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm)
9371 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQNEGv8i16,
9372 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9373 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9374 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
9375 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
9376 : GIR_EraseFromParent, /*InsnID*/0,
9377 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9378 : // GIR_Coverage, 1509,
9379 : GIR_Done,
9380 : // Label 508: @22241
9381 : GIM_Try, /*On fail goto*//*Label 509*/ 22287, // Rule ID 1510 //
9382 : GIM_CheckFeatures, GIFBS_HasNEON,
9383 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqneg,
9384 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
9385 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
9386 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
9387 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
9388 : // (intrinsic_wo_chain:{ *:[v4i32] } 1119:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) => (VQNEGv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
9389 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQNEGv4i32,
9390 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9391 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9392 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
9393 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
9394 : GIR_EraseFromParent, /*InsnID*/0,
9395 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9396 : // GIR_Coverage, 1510,
9397 : GIR_Done,
9398 : // Label 509: @22287
9399 : GIM_Try, /*On fail goto*//*Label 510*/ 22333, // Rule ID 1511 //
9400 : GIM_CheckFeatures, GIFBS_HasNEON,
9401 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcls,
9402 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
9403 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
9404 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
9405 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
9406 : // (intrinsic_wo_chain:{ *:[v8i8] } 1060:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm) => (VCLSv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm)
9407 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCLSv8i8,
9408 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9409 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9410 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
9411 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
9412 : GIR_EraseFromParent, /*InsnID*/0,
9413 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9414 : // GIR_Coverage, 1511,
9415 : GIR_Done,
9416 : // Label 510: @22333
9417 : GIM_Try, /*On fail goto*//*Label 511*/ 22379, // Rule ID 1512 //
9418 : GIM_CheckFeatures, GIFBS_HasNEON,
9419 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcls,
9420 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
9421 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
9422 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
9423 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
9424 : // (intrinsic_wo_chain:{ *:[v4i16] } 1060:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm) => (VCLSv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm)
9425 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCLSv4i16,
9426 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9427 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9428 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
9429 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
9430 : GIR_EraseFromParent, /*InsnID*/0,
9431 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9432 : // GIR_Coverage, 1512,
9433 : GIR_Done,
9434 : // Label 511: @22379
9435 : GIM_Try, /*On fail goto*//*Label 512*/ 22425, // Rule ID 1513 //
9436 : GIM_CheckFeatures, GIFBS_HasNEON,
9437 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcls,
9438 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
9439 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
9440 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
9441 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
9442 : // (intrinsic_wo_chain:{ *:[v2i32] } 1060:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm) => (VCLSv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
9443 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCLSv2i32,
9444 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9445 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9446 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
9447 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
9448 : GIR_EraseFromParent, /*InsnID*/0,
9449 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9450 : // GIR_Coverage, 1513,
9451 : GIR_Done,
9452 : // Label 512: @22425
9453 : GIM_Try, /*On fail goto*//*Label 513*/ 22471, // Rule ID 1514 //
9454 : GIM_CheckFeatures, GIFBS_HasNEON,
9455 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcls,
9456 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
9457 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
9458 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
9459 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
9460 : // (intrinsic_wo_chain:{ *:[v16i8] } 1060:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm) => (VCLSv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
9461 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCLSv16i8,
9462 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9463 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9464 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
9465 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
9466 : GIR_EraseFromParent, /*InsnID*/0,
9467 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9468 : // GIR_Coverage, 1514,
9469 : GIR_Done,
9470 : // Label 513: @22471
9471 : GIM_Try, /*On fail goto*//*Label 514*/ 22517, // Rule ID 1515 //
9472 : GIM_CheckFeatures, GIFBS_HasNEON,
9473 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcls,
9474 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
9475 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
9476 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
9477 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
9478 : // (intrinsic_wo_chain:{ *:[v8i16] } 1060:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm) => (VCLSv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm)
9479 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCLSv8i16,
9480 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9481 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9482 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
9483 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
9484 : GIR_EraseFromParent, /*InsnID*/0,
9485 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9486 : // GIR_Coverage, 1515,
9487 : GIR_Done,
9488 : // Label 514: @22517
9489 : GIM_Try, /*On fail goto*//*Label 515*/ 22563, // Rule ID 1516 //
9490 : GIM_CheckFeatures, GIFBS_HasNEON,
9491 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcls,
9492 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
9493 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
9494 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
9495 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
9496 : // (intrinsic_wo_chain:{ *:[v4i32] } 1060:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) => (VCLSv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
9497 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCLSv4i32,
9498 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9499 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9500 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
9501 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
9502 : GIR_EraseFromParent, /*InsnID*/0,
9503 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9504 : // GIR_Coverage, 1516,
9505 : GIR_Done,
9506 : // Label 515: @22563
9507 : GIM_Try, /*On fail goto*//*Label 516*/ 22609, // Rule ID 1560 //
9508 : GIM_CheckFeatures, GIFBS_HasNEON,
9509 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqmovns,
9510 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
9511 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
9512 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
9513 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
9514 : // (intrinsic_wo_chain:{ *:[v8i8] } 1116:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm) => (VQMOVNsv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm)
9515 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQMOVNsv8i8,
9516 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9517 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9518 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
9519 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
9520 : GIR_EraseFromParent, /*InsnID*/0,
9521 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9522 : // GIR_Coverage, 1560,
9523 : GIR_Done,
9524 : // Label 516: @22609
9525 : GIM_Try, /*On fail goto*//*Label 517*/ 22655, // Rule ID 1561 //
9526 : GIM_CheckFeatures, GIFBS_HasNEON,
9527 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqmovns,
9528 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
9529 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
9530 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
9531 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
9532 : // (intrinsic_wo_chain:{ *:[v4i16] } 1116:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) => (VQMOVNsv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm)
9533 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQMOVNsv4i16,
9534 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9535 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9536 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
9537 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
9538 : GIR_EraseFromParent, /*InsnID*/0,
9539 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9540 : // GIR_Coverage, 1561,
9541 : GIR_Done,
9542 : // Label 517: @22655
9543 : GIM_Try, /*On fail goto*//*Label 518*/ 22701, // Rule ID 1562 //
9544 : GIM_CheckFeatures, GIFBS_HasNEON,
9545 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqmovns,
9546 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
9547 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
9548 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
9549 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
9550 : // (intrinsic_wo_chain:{ *:[v2i32] } 1116:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm) => (VQMOVNsv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm)
9551 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQMOVNsv2i32,
9552 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9553 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9554 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
9555 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
9556 : GIR_EraseFromParent, /*InsnID*/0,
9557 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9558 : // GIR_Coverage, 1562,
9559 : GIR_Done,
9560 : // Label 518: @22701
9561 : GIM_Try, /*On fail goto*//*Label 519*/ 22747, // Rule ID 1563 //
9562 : GIM_CheckFeatures, GIFBS_HasNEON,
9563 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqmovnu,
9564 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
9565 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
9566 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
9567 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
9568 : // (intrinsic_wo_chain:{ *:[v8i8] } 1118:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm) => (VQMOVNuv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm)
9569 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQMOVNuv8i8,
9570 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9571 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9572 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
9573 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
9574 : GIR_EraseFromParent, /*InsnID*/0,
9575 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9576 : // GIR_Coverage, 1563,
9577 : GIR_Done,
9578 : // Label 519: @22747
9579 : GIM_Try, /*On fail goto*//*Label 520*/ 22793, // Rule ID 1564 //
9580 : GIM_CheckFeatures, GIFBS_HasNEON,
9581 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqmovnu,
9582 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
9583 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
9584 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
9585 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
9586 : // (intrinsic_wo_chain:{ *:[v4i16] } 1118:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) => (VQMOVNuv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm)
9587 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQMOVNuv4i16,
9588 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9589 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9590 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
9591 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
9592 : GIR_EraseFromParent, /*InsnID*/0,
9593 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9594 : // GIR_Coverage, 1564,
9595 : GIR_Done,
9596 : // Label 520: @22793
9597 : GIM_Try, /*On fail goto*//*Label 521*/ 22839, // Rule ID 1565 //
9598 : GIM_CheckFeatures, GIFBS_HasNEON,
9599 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqmovnu,
9600 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
9601 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
9602 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
9603 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
9604 : // (intrinsic_wo_chain:{ *:[v2i32] } 1118:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm) => (VQMOVNuv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm)
9605 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQMOVNuv2i32,
9606 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9607 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9608 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
9609 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
9610 : GIR_EraseFromParent, /*InsnID*/0,
9611 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9612 : // GIR_Coverage, 1565,
9613 : GIR_Done,
9614 : // Label 521: @22839
9615 : GIM_Try, /*On fail goto*//*Label 522*/ 22885, // Rule ID 1566 //
9616 : GIM_CheckFeatures, GIFBS_HasNEON,
9617 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqmovnsu,
9618 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
9619 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
9620 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
9621 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
9622 : // (intrinsic_wo_chain:{ *:[v8i8] } 1117:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm) => (VQMOVNsuv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm)
9623 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQMOVNsuv8i8,
9624 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9625 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9626 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
9627 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
9628 : GIR_EraseFromParent, /*InsnID*/0,
9629 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9630 : // GIR_Coverage, 1566,
9631 : GIR_Done,
9632 : // Label 522: @22885
9633 : GIM_Try, /*On fail goto*//*Label 523*/ 22931, // Rule ID 1567 //
9634 : GIM_CheckFeatures, GIFBS_HasNEON,
9635 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqmovnsu,
9636 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
9637 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
9638 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
9639 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
9640 : // (intrinsic_wo_chain:{ *:[v4i16] } 1117:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) => (VQMOVNsuv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm)
9641 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQMOVNsuv4i16,
9642 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9643 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9644 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
9645 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
9646 : GIR_EraseFromParent, /*InsnID*/0,
9647 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9648 : // GIR_Coverage, 1567,
9649 : GIR_Done,
9650 : // Label 523: @22931
9651 : GIM_Try, /*On fail goto*//*Label 524*/ 22977, // Rule ID 1568 //
9652 : GIM_CheckFeatures, GIFBS_HasNEON,
9653 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqmovnsu,
9654 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
9655 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
9656 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
9657 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
9658 : // (intrinsic_wo_chain:{ *:[v2i32] } 1117:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm) => (VQMOVNsuv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm)
9659 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQMOVNsuv2i32,
9660 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9661 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9662 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
9663 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
9664 : GIR_EraseFromParent, /*InsnID*/0,
9665 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9666 : // GIR_Coverage, 1568,
9667 : GIR_Done,
9668 : // Label 524: @22977
9669 : GIM_Try, /*On fail goto*//*Label 525*/ 23017, // Rule ID 1591 //
9670 : GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
9671 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtas,
9672 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
9673 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
9674 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
9675 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
9676 : // (intrinsic_wo_chain:{ *:[v2i32] } 1061:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VCVTANSDf:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
9677 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTANSDf,
9678 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9679 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9680 : GIR_EraseFromParent, /*InsnID*/0,
9681 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9682 : // GIR_Coverage, 1591,
9683 : GIR_Done,
9684 : // Label 525: @23017
9685 : GIM_Try, /*On fail goto*//*Label 526*/ 23057, // Rule ID 1592 //
9686 : GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
9687 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtas,
9688 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
9689 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
9690 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
9691 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
9692 : // (intrinsic_wo_chain:{ *:[v4i32] } 1061:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VCVTANSQf:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
9693 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTANSQf,
9694 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9695 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9696 : GIR_EraseFromParent, /*InsnID*/0,
9697 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9698 : // GIR_Coverage, 1592,
9699 : GIR_Done,
9700 : // Label 526: @23057
9701 : GIM_Try, /*On fail goto*//*Label 527*/ 23097, // Rule ID 1593 //
9702 : GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
9703 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtau,
9704 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
9705 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
9706 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
9707 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
9708 : // (intrinsic_wo_chain:{ *:[v2i32] } 1062:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VCVTANUDf:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
9709 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTANUDf,
9710 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9711 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9712 : GIR_EraseFromParent, /*InsnID*/0,
9713 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9714 : // GIR_Coverage, 1593,
9715 : GIR_Done,
9716 : // Label 527: @23097
9717 : GIM_Try, /*On fail goto*//*Label 528*/ 23137, // Rule ID 1594 //
9718 : GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
9719 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtau,
9720 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
9721 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
9722 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
9723 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
9724 : // (intrinsic_wo_chain:{ *:[v4i32] } 1062:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VCVTANUQf:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
9725 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTANUQf,
9726 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9727 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9728 : GIR_EraseFromParent, /*InsnID*/0,
9729 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9730 : // GIR_Coverage, 1594,
9731 : GIR_Done,
9732 : // Label 528: @23137
9733 : GIM_Try, /*On fail goto*//*Label 529*/ 23177, // Rule ID 1595 //
9734 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
9735 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtas,
9736 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
9737 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
9738 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
9739 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
9740 : // (intrinsic_wo_chain:{ *:[v4i16] } 1061:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VCVTANSDh:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
9741 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTANSDh,
9742 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9743 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9744 : GIR_EraseFromParent, /*InsnID*/0,
9745 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9746 : // GIR_Coverage, 1595,
9747 : GIR_Done,
9748 : // Label 529: @23177
9749 : GIM_Try, /*On fail goto*//*Label 530*/ 23217, // Rule ID 1596 //
9750 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
9751 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtas,
9752 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
9753 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
9754 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
9755 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
9756 : // (intrinsic_wo_chain:{ *:[v8i16] } 1061:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VCVTANSQh:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
9757 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTANSQh,
9758 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9759 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9760 : GIR_EraseFromParent, /*InsnID*/0,
9761 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9762 : // GIR_Coverage, 1596,
9763 : GIR_Done,
9764 : // Label 530: @23217
9765 : GIM_Try, /*On fail goto*//*Label 531*/ 23257, // Rule ID 1597 //
9766 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
9767 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtau,
9768 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
9769 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
9770 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
9771 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
9772 : // (intrinsic_wo_chain:{ *:[v4i16] } 1062:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VCVTANUDh:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
9773 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTANUDh,
9774 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9775 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9776 : GIR_EraseFromParent, /*InsnID*/0,
9777 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9778 : // GIR_Coverage, 1597,
9779 : GIR_Done,
9780 : // Label 531: @23257
9781 : GIM_Try, /*On fail goto*//*Label 532*/ 23297, // Rule ID 1598 //
9782 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
9783 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtau,
9784 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
9785 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
9786 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
9787 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
9788 : // (intrinsic_wo_chain:{ *:[v8i16] } 1062:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VCVTANUQh:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
9789 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTANUQh,
9790 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9791 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9792 : GIR_EraseFromParent, /*InsnID*/0,
9793 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9794 : // GIR_Coverage, 1598,
9795 : GIR_Done,
9796 : // Label 532: @23297
9797 : GIM_Try, /*On fail goto*//*Label 533*/ 23337, // Rule ID 1599 //
9798 : GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
9799 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtns,
9800 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
9801 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
9802 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
9803 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
9804 : // (intrinsic_wo_chain:{ *:[v2i32] } 1071:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VCVTNNSDf:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
9805 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTNNSDf,
9806 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9807 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9808 : GIR_EraseFromParent, /*InsnID*/0,
9809 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9810 : // GIR_Coverage, 1599,
9811 : GIR_Done,
9812 : // Label 533: @23337
9813 : GIM_Try, /*On fail goto*//*Label 534*/ 23377, // Rule ID 1600 //
9814 : GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
9815 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtns,
9816 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
9817 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
9818 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
9819 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
9820 : // (intrinsic_wo_chain:{ *:[v4i32] } 1071:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VCVTNNSQf:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
9821 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTNNSQf,
9822 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9823 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9824 : GIR_EraseFromParent, /*InsnID*/0,
9825 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9826 : // GIR_Coverage, 1600,
9827 : GIR_Done,
9828 : // Label 534: @23377
9829 : GIM_Try, /*On fail goto*//*Label 535*/ 23417, // Rule ID 1601 //
9830 : GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
9831 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtnu,
9832 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
9833 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
9834 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
9835 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
9836 : // (intrinsic_wo_chain:{ *:[v2i32] } 1072:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VCVTNNUDf:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
9837 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTNNUDf,
9838 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9839 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9840 : GIR_EraseFromParent, /*InsnID*/0,
9841 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9842 : // GIR_Coverage, 1601,
9843 : GIR_Done,
9844 : // Label 535: @23417
9845 : GIM_Try, /*On fail goto*//*Label 536*/ 23457, // Rule ID 1602 //
9846 : GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
9847 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtnu,
9848 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
9849 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
9850 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
9851 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
9852 : // (intrinsic_wo_chain:{ *:[v4i32] } 1072:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VCVTNNUQf:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
9853 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTNNUQf,
9854 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9855 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9856 : GIR_EraseFromParent, /*InsnID*/0,
9857 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9858 : // GIR_Coverage, 1602,
9859 : GIR_Done,
9860 : // Label 536: @23457
9861 : GIM_Try, /*On fail goto*//*Label 537*/ 23497, // Rule ID 1603 //
9862 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
9863 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtns,
9864 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
9865 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
9866 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
9867 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
9868 : // (intrinsic_wo_chain:{ *:[v4i16] } 1071:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VCVTNNSDh:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
9869 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTNNSDh,
9870 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9871 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9872 : GIR_EraseFromParent, /*InsnID*/0,
9873 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9874 : // GIR_Coverage, 1603,
9875 : GIR_Done,
9876 : // Label 537: @23497
9877 : GIM_Try, /*On fail goto*//*Label 538*/ 23537, // Rule ID 1604 //
9878 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
9879 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtns,
9880 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
9881 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
9882 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
9883 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
9884 : // (intrinsic_wo_chain:{ *:[v8i16] } 1071:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VCVTNNSQh:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
9885 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTNNSQh,
9886 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9887 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9888 : GIR_EraseFromParent, /*InsnID*/0,
9889 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9890 : // GIR_Coverage, 1604,
9891 : GIR_Done,
9892 : // Label 538: @23537
9893 : GIM_Try, /*On fail goto*//*Label 539*/ 23577, // Rule ID 1605 //
9894 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
9895 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtnu,
9896 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
9897 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
9898 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
9899 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
9900 : // (intrinsic_wo_chain:{ *:[v4i16] } 1072:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VCVTNNUDh:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
9901 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTNNUDh,
9902 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9903 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9904 : GIR_EraseFromParent, /*InsnID*/0,
9905 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9906 : // GIR_Coverage, 1605,
9907 : GIR_Done,
9908 : // Label 539: @23577
9909 : GIM_Try, /*On fail goto*//*Label 540*/ 23617, // Rule ID 1606 //
9910 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
9911 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtnu,
9912 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
9913 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
9914 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
9915 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
9916 : // (intrinsic_wo_chain:{ *:[v8i16] } 1072:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VCVTNNUQh:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
9917 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTNNUQh,
9918 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9919 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9920 : GIR_EraseFromParent, /*InsnID*/0,
9921 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9922 : // GIR_Coverage, 1606,
9923 : GIR_Done,
9924 : // Label 540: @23617
9925 : GIM_Try, /*On fail goto*//*Label 541*/ 23657, // Rule ID 1607 //
9926 : GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
9927 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtps,
9928 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
9929 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
9930 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
9931 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
9932 : // (intrinsic_wo_chain:{ *:[v2i32] } 1073:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VCVTPNSDf:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
9933 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTPNSDf,
9934 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9935 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9936 : GIR_EraseFromParent, /*InsnID*/0,
9937 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9938 : // GIR_Coverage, 1607,
9939 : GIR_Done,
9940 : // Label 541: @23657
9941 : GIM_Try, /*On fail goto*//*Label 542*/ 23697, // Rule ID 1608 //
9942 : GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
9943 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtps,
9944 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
9945 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
9946 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
9947 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
9948 : // (intrinsic_wo_chain:{ *:[v4i32] } 1073:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VCVTPNSQf:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
9949 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTPNSQf,
9950 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9951 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9952 : GIR_EraseFromParent, /*InsnID*/0,
9953 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9954 : // GIR_Coverage, 1608,
9955 : GIR_Done,
9956 : // Label 542: @23697
9957 : GIM_Try, /*On fail goto*//*Label 543*/ 23737, // Rule ID 1609 //
9958 : GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
9959 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtpu,
9960 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
9961 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
9962 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
9963 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
9964 : // (intrinsic_wo_chain:{ *:[v2i32] } 1074:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VCVTPNUDf:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
9965 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTPNUDf,
9966 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9967 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9968 : GIR_EraseFromParent, /*InsnID*/0,
9969 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9970 : // GIR_Coverage, 1609,
9971 : GIR_Done,
9972 : // Label 543: @23737
9973 : GIM_Try, /*On fail goto*//*Label 544*/ 23777, // Rule ID 1610 //
9974 : GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
9975 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtpu,
9976 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
9977 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
9978 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
9979 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
9980 : // (intrinsic_wo_chain:{ *:[v4i32] } 1074:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VCVTPNUQf:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
9981 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTPNUQf,
9982 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9983 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
9984 : GIR_EraseFromParent, /*InsnID*/0,
9985 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
9986 : // GIR_Coverage, 1610,
9987 : GIR_Done,
9988 : // Label 544: @23777
9989 : GIM_Try, /*On fail goto*//*Label 545*/ 23817, // Rule ID 1611 //
9990 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
9991 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtps,
9992 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
9993 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
9994 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
9995 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
9996 : // (intrinsic_wo_chain:{ *:[v4i16] } 1073:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VCVTPNSDh:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
9997 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTPNSDh,
9998 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
9999 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
10000 : GIR_EraseFromParent, /*InsnID*/0,
10001 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10002 : // GIR_Coverage, 1611,
10003 : GIR_Done,
10004 : // Label 545: @23817
10005 : GIM_Try, /*On fail goto*//*Label 546*/ 23857, // Rule ID 1612 //
10006 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
10007 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtps,
10008 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
10009 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
10010 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
10011 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
10012 : // (intrinsic_wo_chain:{ *:[v8i16] } 1073:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VCVTPNSQh:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
10013 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTPNSQh,
10014 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10015 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
10016 : GIR_EraseFromParent, /*InsnID*/0,
10017 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10018 : // GIR_Coverage, 1612,
10019 : GIR_Done,
10020 : // Label 546: @23857
10021 : GIM_Try, /*On fail goto*//*Label 547*/ 23897, // Rule ID 1613 //
10022 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
10023 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtpu,
10024 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
10025 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
10026 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
10027 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
10028 : // (intrinsic_wo_chain:{ *:[v4i16] } 1074:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VCVTPNUDh:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
10029 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTPNUDh,
10030 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10031 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
10032 : GIR_EraseFromParent, /*InsnID*/0,
10033 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10034 : // GIR_Coverage, 1613,
10035 : GIR_Done,
10036 : // Label 547: @23897
10037 : GIM_Try, /*On fail goto*//*Label 548*/ 23937, // Rule ID 1614 //
10038 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
10039 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtpu,
10040 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
10041 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
10042 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
10043 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
10044 : // (intrinsic_wo_chain:{ *:[v8i16] } 1074:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VCVTPNUQh:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
10045 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTPNUQh,
10046 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10047 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
10048 : GIR_EraseFromParent, /*InsnID*/0,
10049 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10050 : // GIR_Coverage, 1614,
10051 : GIR_Done,
10052 : // Label 548: @23937
10053 : GIM_Try, /*On fail goto*//*Label 549*/ 23977, // Rule ID 1615 //
10054 : GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
10055 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtms,
10056 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
10057 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
10058 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
10059 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
10060 : // (intrinsic_wo_chain:{ *:[v2i32] } 1069:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VCVTMNSDf:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
10061 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTMNSDf,
10062 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10063 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
10064 : GIR_EraseFromParent, /*InsnID*/0,
10065 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10066 : // GIR_Coverage, 1615,
10067 : GIR_Done,
10068 : // Label 549: @23977
10069 : GIM_Try, /*On fail goto*//*Label 550*/ 24017, // Rule ID 1616 //
10070 : GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
10071 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtms,
10072 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
10073 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
10074 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
10075 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
10076 : // (intrinsic_wo_chain:{ *:[v4i32] } 1069:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VCVTMNSQf:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
10077 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTMNSQf,
10078 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10079 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
10080 : GIR_EraseFromParent, /*InsnID*/0,
10081 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10082 : // GIR_Coverage, 1616,
10083 : GIR_Done,
10084 : // Label 550: @24017
10085 : GIM_Try, /*On fail goto*//*Label 551*/ 24057, // Rule ID 1617 //
10086 : GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
10087 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtmu,
10088 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
10089 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
10090 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
10091 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
10092 : // (intrinsic_wo_chain:{ *:[v2i32] } 1070:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VCVTMNUDf:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
10093 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTMNUDf,
10094 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10095 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
10096 : GIR_EraseFromParent, /*InsnID*/0,
10097 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10098 : // GIR_Coverage, 1617,
10099 : GIR_Done,
10100 : // Label 551: @24057
10101 : GIM_Try, /*On fail goto*//*Label 552*/ 24097, // Rule ID 1618 //
10102 : GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
10103 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtmu,
10104 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
10105 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
10106 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
10107 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
10108 : // (intrinsic_wo_chain:{ *:[v4i32] } 1070:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VCVTMNUQf:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
10109 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTMNUQf,
10110 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10111 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
10112 : GIR_EraseFromParent, /*InsnID*/0,
10113 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10114 : // GIR_Coverage, 1618,
10115 : GIR_Done,
10116 : // Label 552: @24097
10117 : GIM_Try, /*On fail goto*//*Label 553*/ 24137, // Rule ID 1619 //
10118 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
10119 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtms,
10120 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
10121 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
10122 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
10123 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
10124 : // (intrinsic_wo_chain:{ *:[v4i16] } 1069:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VCVTMNSDh:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
10125 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTMNSDh,
10126 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10127 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
10128 : GIR_EraseFromParent, /*InsnID*/0,
10129 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10130 : // GIR_Coverage, 1619,
10131 : GIR_Done,
10132 : // Label 553: @24137
10133 : GIM_Try, /*On fail goto*//*Label 554*/ 24177, // Rule ID 1620 //
10134 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
10135 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtms,
10136 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
10137 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
10138 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
10139 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
10140 : // (intrinsic_wo_chain:{ *:[v8i16] } 1069:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VCVTMNSQh:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
10141 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTMNSQh,
10142 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10143 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
10144 : GIR_EraseFromParent, /*InsnID*/0,
10145 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10146 : // GIR_Coverage, 1620,
10147 : GIR_Done,
10148 : // Label 554: @24177
10149 : GIM_Try, /*On fail goto*//*Label 555*/ 24217, // Rule ID 1621 //
10150 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
10151 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtmu,
10152 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
10153 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
10154 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
10155 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
10156 : // (intrinsic_wo_chain:{ *:[v4i16] } 1070:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VCVTMNUDh:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
10157 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTMNUDh,
10158 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10159 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
10160 : GIR_EraseFromParent, /*InsnID*/0,
10161 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10162 : // GIR_Coverage, 1621,
10163 : GIR_Done,
10164 : // Label 555: @24217
10165 : GIM_Try, /*On fail goto*//*Label 556*/ 24257, // Rule ID 1622 //
10166 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
10167 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtmu,
10168 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
10169 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
10170 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
10171 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
10172 : // (intrinsic_wo_chain:{ *:[v8i16] } 1070:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VCVTMNUQh:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
10173 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTMNUQh,
10174 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10175 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
10176 : GIR_EraseFromParent, /*InsnID*/0,
10177 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10178 : // GIR_Coverage, 1622,
10179 : GIR_Done,
10180 : // Label 556: @24257
10181 : GIM_Try, /*On fail goto*//*Label 557*/ 24303, // Rule ID 1639 //
10182 : GIM_CheckFeatures, GIFBS_HasFP16_HasNEON,
10183 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtfp2hf,
10184 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
10185 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
10186 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
10187 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
10188 : // (intrinsic_wo_chain:{ *:[v4i16] } 1065:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VCVTf2h:{ *:[v4i16] } QPR:{ *:[v4f32] }:$Vm)
10189 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTf2h,
10190 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10191 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
10192 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
10193 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
10194 : GIR_EraseFromParent, /*InsnID*/0,
10195 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10196 : // GIR_Coverage, 1639,
10197 : GIR_Done,
10198 : // Label 557: @24303
10199 : GIM_Try, /*On fail goto*//*Label 558*/ 24349, // Rule ID 1640 //
10200 : GIM_CheckFeatures, GIFBS_HasFP16_HasNEON,
10201 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvthf2fp,
10202 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
10203 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
10204 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
10205 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
10206 : // (intrinsic_wo_chain:{ *:[v4f32] } 1068:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm) => (VCVTh2f:{ *:[v4f32] } DPR:{ *:[v4i16] }:$Vm)
10207 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTh2f,
10208 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10209 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
10210 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
10211 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
10212 : GIR_EraseFromParent, /*InsnID*/0,
10213 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10214 : // GIR_Coverage, 1640,
10215 : GIR_Done,
10216 : // Label 558: @24349
10217 : GIM_Try, /*On fail goto*//*Label 559*/ 24389, // Rule ID 1662 //
10218 : GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
10219 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintn,
10220 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
10221 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
10222 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
10223 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
10224 : // (intrinsic_wo_chain:{ *:[v2f32] } 1141:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VRINTNNDf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
10225 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTNNDf,
10226 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10227 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
10228 : GIR_EraseFromParent, /*InsnID*/0,
10229 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10230 : // GIR_Coverage, 1662,
10231 : GIR_Done,
10232 : // Label 559: @24389
10233 : GIM_Try, /*On fail goto*//*Label 560*/ 24429, // Rule ID 1663 //
10234 : GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
10235 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintn,
10236 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
10237 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
10238 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
10239 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
10240 : // (intrinsic_wo_chain:{ *:[v4f32] } 1141:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VRINTNNQf:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
10241 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTNNQf,
10242 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10243 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
10244 : GIR_EraseFromParent, /*InsnID*/0,
10245 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10246 : // GIR_Coverage, 1663,
10247 : GIR_Done,
10248 : // Label 560: @24429
10249 : GIM_Try, /*On fail goto*//*Label 561*/ 24469, // Rule ID 1664 //
10250 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
10251 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintn,
10252 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
10253 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
10254 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
10255 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
10256 : // (intrinsic_wo_chain:{ *:[v4f16] } 1141:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VRINTNNDh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
10257 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTNNDh,
10258 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10259 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
10260 : GIR_EraseFromParent, /*InsnID*/0,
10261 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10262 : // GIR_Coverage, 1664,
10263 : GIR_Done,
10264 : // Label 561: @24469
10265 : GIM_Try, /*On fail goto*//*Label 562*/ 24509, // Rule ID 1665 //
10266 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
10267 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintn,
10268 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
10269 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
10270 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
10271 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
10272 : // (intrinsic_wo_chain:{ *:[v8f16] } 1141:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VRINTNNQh:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
10273 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTNNQh,
10274 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10275 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
10276 : GIR_EraseFromParent, /*InsnID*/0,
10277 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10278 : // GIR_Coverage, 1665,
10279 : GIR_Done,
10280 : // Label 562: @24509
10281 : GIM_Try, /*On fail goto*//*Label 563*/ 24549, // Rule ID 1666 //
10282 : GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
10283 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintx,
10284 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
10285 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
10286 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
10287 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
10288 : // (intrinsic_wo_chain:{ *:[v2f32] } 1143:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VRINTXNDf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
10289 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTXNDf,
10290 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10291 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
10292 : GIR_EraseFromParent, /*InsnID*/0,
10293 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10294 : // GIR_Coverage, 1666,
10295 : GIR_Done,
10296 : // Label 563: @24549
10297 : GIM_Try, /*On fail goto*//*Label 564*/ 24589, // Rule ID 1667 //
10298 : GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
10299 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintx,
10300 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
10301 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
10302 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
10303 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
10304 : // (intrinsic_wo_chain:{ *:[v4f32] } 1143:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VRINTXNQf:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
10305 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTXNQf,
10306 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10307 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
10308 : GIR_EraseFromParent, /*InsnID*/0,
10309 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10310 : // GIR_Coverage, 1667,
10311 : GIR_Done,
10312 : // Label 564: @24589
10313 : GIM_Try, /*On fail goto*//*Label 565*/ 24629, // Rule ID 1668 //
10314 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
10315 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintx,
10316 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
10317 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
10318 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
10319 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
10320 : // (intrinsic_wo_chain:{ *:[v4f16] } 1143:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VRINTXNDh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
10321 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTXNDh,
10322 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10323 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
10324 : GIR_EraseFromParent, /*InsnID*/0,
10325 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10326 : // GIR_Coverage, 1668,
10327 : GIR_Done,
10328 : // Label 565: @24629
10329 : GIM_Try, /*On fail goto*//*Label 566*/ 24669, // Rule ID 1669 //
10330 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
10331 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintx,
10332 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
10333 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
10334 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
10335 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
10336 : // (intrinsic_wo_chain:{ *:[v8f16] } 1143:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VRINTXNQh:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
10337 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTXNQh,
10338 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10339 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
10340 : GIR_EraseFromParent, /*InsnID*/0,
10341 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10342 : // GIR_Coverage, 1669,
10343 : GIR_Done,
10344 : // Label 566: @24669
10345 : GIM_Try, /*On fail goto*//*Label 567*/ 24709, // Rule ID 1670 //
10346 : GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
10347 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrinta,
10348 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
10349 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
10350 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
10351 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
10352 : // (intrinsic_wo_chain:{ *:[v2f32] } 1139:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VRINTANDf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
10353 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTANDf,
10354 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10355 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
10356 : GIR_EraseFromParent, /*InsnID*/0,
10357 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10358 : // GIR_Coverage, 1670,
10359 : GIR_Done,
10360 : // Label 567: @24709
10361 : GIM_Try, /*On fail goto*//*Label 568*/ 24749, // Rule ID 1671 //
10362 : GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
10363 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrinta,
10364 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
10365 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
10366 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
10367 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
10368 : // (intrinsic_wo_chain:{ *:[v4f32] } 1139:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VRINTANQf:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
10369 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTANQf,
10370 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10371 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
10372 : GIR_EraseFromParent, /*InsnID*/0,
10373 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10374 : // GIR_Coverage, 1671,
10375 : GIR_Done,
10376 : // Label 568: @24749
10377 : GIM_Try, /*On fail goto*//*Label 569*/ 24789, // Rule ID 1672 //
10378 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
10379 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrinta,
10380 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
10381 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
10382 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
10383 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
10384 : // (intrinsic_wo_chain:{ *:[v4f16] } 1139:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VRINTANDh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
10385 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTANDh,
10386 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10387 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
10388 : GIR_EraseFromParent, /*InsnID*/0,
10389 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10390 : // GIR_Coverage, 1672,
10391 : GIR_Done,
10392 : // Label 569: @24789
10393 : GIM_Try, /*On fail goto*//*Label 570*/ 24829, // Rule ID 1673 //
10394 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
10395 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrinta,
10396 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
10397 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
10398 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
10399 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
10400 : // (intrinsic_wo_chain:{ *:[v8f16] } 1139:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VRINTANQh:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
10401 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTANQh,
10402 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10403 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
10404 : GIR_EraseFromParent, /*InsnID*/0,
10405 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10406 : // GIR_Coverage, 1673,
10407 : GIR_Done,
10408 : // Label 570: @24829
10409 : GIM_Try, /*On fail goto*//*Label 571*/ 24869, // Rule ID 1674 //
10410 : GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
10411 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintz,
10412 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
10413 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
10414 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
10415 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
10416 : // (intrinsic_wo_chain:{ *:[v2f32] } 1144:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VRINTZNDf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
10417 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTZNDf,
10418 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10419 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
10420 : GIR_EraseFromParent, /*InsnID*/0,
10421 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10422 : // GIR_Coverage, 1674,
10423 : GIR_Done,
10424 : // Label 571: @24869
10425 : GIM_Try, /*On fail goto*//*Label 572*/ 24909, // Rule ID 1675 //
10426 : GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
10427 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintz,
10428 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
10429 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
10430 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
10431 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
10432 : // (intrinsic_wo_chain:{ *:[v4f32] } 1144:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VRINTZNQf:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
10433 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTZNQf,
10434 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10435 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
10436 : GIR_EraseFromParent, /*InsnID*/0,
10437 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10438 : // GIR_Coverage, 1675,
10439 : GIR_Done,
10440 : // Label 572: @24909
10441 : GIM_Try, /*On fail goto*//*Label 573*/ 24949, // Rule ID 1676 //
10442 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
10443 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintz,
10444 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
10445 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
10446 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
10447 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
10448 : // (intrinsic_wo_chain:{ *:[v4f16] } 1144:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VRINTZNDh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
10449 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTZNDh,
10450 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10451 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
10452 : GIR_EraseFromParent, /*InsnID*/0,
10453 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10454 : // GIR_Coverage, 1676,
10455 : GIR_Done,
10456 : // Label 573: @24949
10457 : GIM_Try, /*On fail goto*//*Label 574*/ 24989, // Rule ID 1677 //
10458 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
10459 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintz,
10460 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
10461 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
10462 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
10463 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
10464 : // (intrinsic_wo_chain:{ *:[v8f16] } 1144:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VRINTZNQh:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
10465 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTZNQh,
10466 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10467 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
10468 : GIR_EraseFromParent, /*InsnID*/0,
10469 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10470 : // GIR_Coverage, 1677,
10471 : GIR_Done,
10472 : // Label 574: @24989
10473 : GIM_Try, /*On fail goto*//*Label 575*/ 25029, // Rule ID 1678 //
10474 : GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
10475 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintm,
10476 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
10477 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
10478 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
10479 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
10480 : // (intrinsic_wo_chain:{ *:[v2f32] } 1140:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VRINTMNDf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
10481 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTMNDf,
10482 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10483 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
10484 : GIR_EraseFromParent, /*InsnID*/0,
10485 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10486 : // GIR_Coverage, 1678,
10487 : GIR_Done,
10488 : // Label 575: @25029
10489 : GIM_Try, /*On fail goto*//*Label 576*/ 25069, // Rule ID 1679 //
10490 : GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
10491 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintm,
10492 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
10493 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
10494 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
10495 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
10496 : // (intrinsic_wo_chain:{ *:[v4f32] } 1140:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VRINTMNQf:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
10497 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTMNQf,
10498 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10499 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
10500 : GIR_EraseFromParent, /*InsnID*/0,
10501 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10502 : // GIR_Coverage, 1679,
10503 : GIR_Done,
10504 : // Label 576: @25069
10505 : GIM_Try, /*On fail goto*//*Label 577*/ 25109, // Rule ID 1680 //
10506 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
10507 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintm,
10508 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
10509 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
10510 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
10511 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
10512 : // (intrinsic_wo_chain:{ *:[v4f16] } 1140:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VRINTMNDh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
10513 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTMNDh,
10514 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10515 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
10516 : GIR_EraseFromParent, /*InsnID*/0,
10517 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10518 : // GIR_Coverage, 1680,
10519 : GIR_Done,
10520 : // Label 577: @25109
10521 : GIM_Try, /*On fail goto*//*Label 578*/ 25149, // Rule ID 1681 //
10522 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
10523 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintm,
10524 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
10525 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
10526 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
10527 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
10528 : // (intrinsic_wo_chain:{ *:[v8f16] } 1140:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VRINTMNQh:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
10529 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTMNQh,
10530 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10531 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
10532 : GIR_EraseFromParent, /*InsnID*/0,
10533 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10534 : // GIR_Coverage, 1681,
10535 : GIR_Done,
10536 : // Label 578: @25149
10537 : GIM_Try, /*On fail goto*//*Label 579*/ 25189, // Rule ID 1682 //
10538 : GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
10539 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintp,
10540 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
10541 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
10542 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
10543 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
10544 : // (intrinsic_wo_chain:{ *:[v2f32] } 1142:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VRINTPNDf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
10545 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTPNDf,
10546 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10547 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
10548 : GIR_EraseFromParent, /*InsnID*/0,
10549 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10550 : // GIR_Coverage, 1682,
10551 : GIR_Done,
10552 : // Label 579: @25189
10553 : GIM_Try, /*On fail goto*//*Label 580*/ 25229, // Rule ID 1683 //
10554 : GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
10555 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintp,
10556 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
10557 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
10558 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
10559 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
10560 : // (intrinsic_wo_chain:{ *:[v4f32] } 1142:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VRINTPNQf:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
10561 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTPNQf,
10562 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10563 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
10564 : GIR_EraseFromParent, /*InsnID*/0,
10565 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10566 : // GIR_Coverage, 1683,
10567 : GIR_Done,
10568 : // Label 580: @25229
10569 : GIM_Try, /*On fail goto*//*Label 581*/ 25269, // Rule ID 1684 //
10570 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
10571 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintp,
10572 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
10573 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
10574 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
10575 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
10576 : // (intrinsic_wo_chain:{ *:[v4f16] } 1142:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VRINTPNDh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
10577 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTPNDh,
10578 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10579 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
10580 : GIR_EraseFromParent, /*InsnID*/0,
10581 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10582 : // GIR_Coverage, 1684,
10583 : GIR_Done,
10584 : // Label 581: @25269
10585 : GIM_Try, /*On fail goto*//*Label 582*/ 25309, // Rule ID 1685 //
10586 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
10587 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintp,
10588 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
10589 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
10590 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
10591 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
10592 : // (intrinsic_wo_chain:{ *:[v8f16] } 1142:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VRINTPNQh:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
10593 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTPNQh,
10594 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10595 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
10596 : GIR_EraseFromParent, /*InsnID*/0,
10597 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10598 : // GIR_Coverage, 1685,
10599 : GIR_Done,
10600 : // Label 582: @25309
10601 : GIM_Try, /*On fail goto*//*Label 583*/ 25349, // Rule ID 1688 //
10602 : GIM_CheckFeatures, GIFBS_HasCrypto_HasV8,
10603 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_aesimc,
10604 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
10605 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
10606 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
10607 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
10608 : // (intrinsic_wo_chain:{ *:[v16i8] } 1040:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm) => (AESIMC:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
10609 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::AESIMC,
10610 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10611 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
10612 : GIR_EraseFromParent, /*InsnID*/0,
10613 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10614 : // GIR_Coverage, 1688,
10615 : GIR_Done,
10616 : // Label 583: @25349
10617 : GIM_Try, /*On fail goto*//*Label 584*/ 25389, // Rule ID 1689 //
10618 : GIM_CheckFeatures, GIFBS_HasCrypto_HasV8,
10619 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_aesmc,
10620 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
10621 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
10622 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
10623 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
10624 : // (intrinsic_wo_chain:{ *:[v16i8] } 1041:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm) => (AESMC:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
10625 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::AESMC,
10626 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10627 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
10628 : GIR_EraseFromParent, /*InsnID*/0,
10629 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10630 : // GIR_Coverage, 1689,
10631 : GIR_Done,
10632 : // Label 584: @25389
10633 : GIM_Try, /*On fail goto*//*Label 585*/ 25438, // Rule ID 1705 //
10634 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
10635 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_sxtb16,
10636 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
10637 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
10638 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
10639 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
10640 : // (intrinsic_wo_chain:{ *:[i32] } 1230:{ *:[iPTR] }, GPR:{ *:[i32] }:$Src) => (SXTB16:{ *:[i32] } GPR:{ *:[i32] }:$Src, 0:{ *:[i32] })
10641 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SXTB16,
10642 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
10643 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Src
10644 : GIR_AddImm, /*InsnID*/0, /*Imm*/0,
10645 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
10646 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
10647 : GIR_EraseFromParent, /*InsnID*/0,
10648 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10649 : // GIR_Coverage, 1705,
10650 : GIR_Done,
10651 : // Label 585: @25438
10652 : GIM_Try, /*On fail goto*//*Label 586*/ 25487, // Rule ID 1903 //
10653 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
10654 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_sxtb16,
10655 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
10656 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
10657 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
10658 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
10659 : // (intrinsic_wo_chain:{ *:[i32] } 1230:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn) => (t2SXTB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, 0:{ *:[i32] })
10660 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SXTB16,
10661 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
10662 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
10663 : GIR_AddImm, /*InsnID*/0, /*Imm*/0,
10664 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
10665 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
10666 : GIR_EraseFromParent, /*InsnID*/0,
10667 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10668 : // GIR_Coverage, 1903,
10669 : GIR_Done,
10670 : // Label 586: @25487
10671 : GIM_Reject,
10672 : // Label 465: @25488
10673 : GIM_Try, /*On fail goto*//*Label 587*/ 46806,
10674 : GIM_CheckNumOperands, /*MI*/0, /*Expected*/4,
10675 : GIM_Try, /*On fail goto*//*Label 588*/ 25554, // Rule ID 1921 //
10676 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
10677 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uxtab16,
10678 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
10679 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
10680 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
10681 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
10682 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
10683 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
10684 : // (intrinsic_wo_chain:{ *:[i32] } 1254:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UXTAB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
10685 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UXTAB16,
10686 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
10687 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
10688 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
10689 : GIR_AddImm, /*InsnID*/0, /*Imm*/0,
10690 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
10691 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
10692 : GIR_EraseFromParent, /*InsnID*/0,
10693 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10694 : // GIR_Coverage, 1921,
10695 : GIR_Done,
10696 : // Label 588: @25554
10697 : GIM_Try, /*On fail goto*//*Label 589*/ 25644, // Rule ID 2818 //
10698 : GIM_CheckFeatures, GIFBS_HasNEON_HasV8_1a,
10699 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqadds,
10700 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
10701 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
10702 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
10703 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
10704 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
10705 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
10706 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
10707 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vqrdmulh,
10708 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
10709 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v4s16,
10710 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
10711 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
10712 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
10713 : GIM_CheckIsSafeToFold, /*InsnID*/1,
10714 : // (intrinsic_wo_chain:{ *:[v4i16] } 1112:{ *:[iPTR] }, (intrinsic_wo_chain:{ *:[v4i16] } 1120:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm), DPR:{ *:[v4i16] }:$src1) => (VQRDMLAHv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
10715 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRDMLAHv4i16,
10716 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10717 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src1
10718 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
10719 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
10720 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
10721 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
10722 : GIR_EraseFromParent, /*InsnID*/0,
10723 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10724 : // GIR_Coverage, 2818,
10725 : GIR_Done,
10726 : // Label 589: @25644
10727 : GIM_Try, /*On fail goto*//*Label 590*/ 25734, // Rule ID 2819 //
10728 : GIM_CheckFeatures, GIFBS_HasNEON_HasV8_1a,
10729 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqadds,
10730 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
10731 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
10732 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
10733 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
10734 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
10735 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
10736 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
10737 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vqrdmulh,
10738 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s32,
10739 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v2s32,
10740 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
10741 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
10742 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
10743 : GIM_CheckIsSafeToFold, /*InsnID*/1,
10744 : // (intrinsic_wo_chain:{ *:[v2i32] } 1112:{ *:[iPTR] }, (intrinsic_wo_chain:{ *:[v2i32] } 1120:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm), DPR:{ *:[v2i32] }:$src1) => (VQRDMLAHv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
10745 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRDMLAHv2i32,
10746 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10747 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src1
10748 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
10749 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
10750 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
10751 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
10752 : GIR_EraseFromParent, /*InsnID*/0,
10753 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10754 : // GIR_Coverage, 2819,
10755 : GIR_Done,
10756 : // Label 590: @25734
10757 : GIM_Try, /*On fail goto*//*Label 591*/ 25824, // Rule ID 2820 //
10758 : GIM_CheckFeatures, GIFBS_HasNEON_HasV8_1a,
10759 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqadds,
10760 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
10761 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
10762 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
10763 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
10764 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
10765 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
10766 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
10767 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vqrdmulh,
10768 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s16,
10769 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v8s16,
10770 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
10771 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::QPRRegClassID,
10772 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
10773 : GIM_CheckIsSafeToFold, /*InsnID*/1,
10774 : // (intrinsic_wo_chain:{ *:[v8i16] } 1112:{ *:[iPTR] }, (intrinsic_wo_chain:{ *:[v8i16] } 1120:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm), QPR:{ *:[v8i16] }:$src1) => (VQRDMLAHv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
10775 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRDMLAHv8i16,
10776 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10777 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src1
10778 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
10779 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
10780 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
10781 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
10782 : GIR_EraseFromParent, /*InsnID*/0,
10783 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10784 : // GIR_Coverage, 2820,
10785 : GIR_Done,
10786 : // Label 591: @25824
10787 : GIM_Try, /*On fail goto*//*Label 592*/ 25914, // Rule ID 2821 //
10788 : GIM_CheckFeatures, GIFBS_HasNEON_HasV8_1a,
10789 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqadds,
10790 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
10791 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
10792 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
10793 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
10794 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
10795 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
10796 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
10797 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vqrdmulh,
10798 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s32,
10799 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v4s32,
10800 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
10801 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::QPRRegClassID,
10802 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
10803 : GIM_CheckIsSafeToFold, /*InsnID*/1,
10804 : // (intrinsic_wo_chain:{ *:[v4i32] } 1112:{ *:[iPTR] }, (intrinsic_wo_chain:{ *:[v4i32] } 1120:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm), QPR:{ *:[v4i32] }:$src1) => (VQRDMLAHv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
10805 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRDMLAHv4i32,
10806 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10807 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src1
10808 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
10809 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
10810 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
10811 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
10812 : GIR_EraseFromParent, /*InsnID*/0,
10813 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10814 : // GIR_Coverage, 2821,
10815 : GIR_Done,
10816 : // Label 592: @25914
10817 : GIM_Try, /*On fail goto*//*Label 593*/ 26002, // Rule ID 2838 //
10818 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqadds,
10819 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
10820 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
10821 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
10822 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
10823 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
10824 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
10825 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
10826 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vqdmull,
10827 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
10828 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v4s16,
10829 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
10830 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
10831 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
10832 : GIM_CheckIsSafeToFold, /*InsnID*/1,
10833 : // (intrinsic_wo_chain:{ *:[v4i32] } 1112:{ *:[iPTR] }, (intrinsic_wo_chain:{ *:[v4i32] } 1115:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm), QPR:{ *:[v4i32] }:$src1) => (VQDMLALv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
10834 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQDMLALv4i32,
10835 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10836 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src1
10837 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
10838 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
10839 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
10840 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
10841 : GIR_EraseFromParent, /*InsnID*/0,
10842 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10843 : // GIR_Coverage, 2838,
10844 : GIR_Done,
10845 : // Label 593: @26002
10846 : GIM_Try, /*On fail goto*//*Label 594*/ 26090, // Rule ID 2839 //
10847 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqadds,
10848 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
10849 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
10850 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
10851 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
10852 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
10853 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
10854 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
10855 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vqdmull,
10856 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s32,
10857 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v2s32,
10858 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
10859 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
10860 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
10861 : GIM_CheckIsSafeToFold, /*InsnID*/1,
10862 : // (intrinsic_wo_chain:{ *:[v2i64] } 1112:{ *:[iPTR] }, (intrinsic_wo_chain:{ *:[v2i64] } 1115:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm), QPR:{ *:[v2i64] }:$src1) => (VQDMLALv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
10863 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQDMLALv2i64,
10864 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10865 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src1
10866 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
10867 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
10868 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
10869 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
10870 : GIR_EraseFromParent, /*InsnID*/0,
10871 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10872 : // GIR_Coverage, 2839,
10873 : GIR_Done,
10874 : // Label 594: @26090
10875 : GIM_Try, /*On fail goto*//*Label 595*/ 26173, // Rule ID 111 //
10876 : GIM_CheckFeatures, GIFBS_IsARM,
10877 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_qadd,
10878 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
10879 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
10880 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
10881 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
10882 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
10883 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
10884 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
10885 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_qadd,
10886 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
10887 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
10888 : // MIs[1] Rm
10889 : GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
10890 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
10891 : GIM_CheckIsSafeToFold, /*InsnID*/1,
10892 : // (intrinsic_wo_chain:{ *:[i32] } 1172:{ *:[iPTR] }, (intrinsic_wo_chain:{ *:[i32] } 1172:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rm), GPRnopc:{ *:[i32] }:$Rn) => (QDADD:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rn)
10893 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::QDADD,
10894 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
10895 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rm
10896 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rn
10897 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
10898 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
10899 : GIR_EraseFromParent, /*InsnID*/0,
10900 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10901 : // GIR_Coverage, 111,
10902 : GIR_Done,
10903 : // Label 595: @26173
10904 : GIM_Try, /*On fail goto*//*Label 596*/ 26256, // Rule ID 1935 //
10905 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
10906 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_qadd,
10907 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
10908 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
10909 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
10910 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
10911 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
10912 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
10913 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
10914 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_qadd,
10915 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
10916 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
10917 : // MIs[1] Rm
10918 : GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
10919 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
10920 : GIM_CheckIsSafeToFold, /*InsnID*/1,
10921 : // (intrinsic_wo_chain:{ *:[i32] } 1172:{ *:[iPTR] }, (intrinsic_wo_chain:{ *:[i32] } 1172:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rm), rGPR:{ *:[i32] }:$Rn) => (t2QDADD:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
10922 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2QDADD,
10923 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
10924 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rm
10925 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rn
10926 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
10927 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
10928 : GIR_EraseFromParent, /*InsnID*/0,
10929 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10930 : // GIR_Coverage, 1935,
10931 : GIR_Done,
10932 : // Label 596: @26256
10933 : GIM_Try, /*On fail goto*//*Label 597*/ 26346, // Rule ID 2175 //
10934 : GIM_CheckFeatures, GIFBS_HasNEON_HasV8_1a,
10935 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqadds,
10936 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
10937 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
10938 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
10939 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
10940 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
10941 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
10942 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
10943 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
10944 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vqrdmulh,
10945 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
10946 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v4s16,
10947 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
10948 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
10949 : GIM_CheckIsSafeToFold, /*InsnID*/1,
10950 : // (intrinsic_wo_chain:{ *:[v4i16] } 1112:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$src1, (intrinsic_wo_chain:{ *:[v4i16] } 1120:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)) => (VQRDMLAHv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
10951 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRDMLAHv4i16,
10952 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10953 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
10954 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
10955 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
10956 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
10957 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
10958 : GIR_EraseFromParent, /*InsnID*/0,
10959 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10960 : // GIR_Coverage, 2175,
10961 : GIR_Done,
10962 : // Label 597: @26346
10963 : GIM_Try, /*On fail goto*//*Label 598*/ 26436, // Rule ID 2176 //
10964 : GIM_CheckFeatures, GIFBS_HasNEON_HasV8_1a,
10965 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqadds,
10966 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
10967 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
10968 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
10969 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
10970 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
10971 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
10972 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
10973 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
10974 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vqrdmulh,
10975 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s32,
10976 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v2s32,
10977 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
10978 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
10979 : GIM_CheckIsSafeToFold, /*InsnID*/1,
10980 : // (intrinsic_wo_chain:{ *:[v2i32] } 1112:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$src1, (intrinsic_wo_chain:{ *:[v2i32] } 1120:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)) => (VQRDMLAHv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
10981 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRDMLAHv2i32,
10982 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
10983 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
10984 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
10985 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
10986 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
10987 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
10988 : GIR_EraseFromParent, /*InsnID*/0,
10989 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
10990 : // GIR_Coverage, 2176,
10991 : GIR_Done,
10992 : // Label 598: @26436
10993 : GIM_Try, /*On fail goto*//*Label 599*/ 26526, // Rule ID 2177 //
10994 : GIM_CheckFeatures, GIFBS_HasNEON_HasV8_1a,
10995 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqadds,
10996 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
10997 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
10998 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
10999 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
11000 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
11001 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
11002 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
11003 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
11004 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vqrdmulh,
11005 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s16,
11006 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v8s16,
11007 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
11008 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::QPRRegClassID,
11009 : GIM_CheckIsSafeToFold, /*InsnID*/1,
11010 : // (intrinsic_wo_chain:{ *:[v8i16] } 1112:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$src1, (intrinsic_wo_chain:{ *:[v8i16] } 1120:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)) => (VQRDMLAHv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
11011 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRDMLAHv8i16,
11012 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
11013 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
11014 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
11015 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
11016 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
11017 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
11018 : GIR_EraseFromParent, /*InsnID*/0,
11019 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
11020 : // GIR_Coverage, 2177,
11021 : GIR_Done,
11022 : // Label 599: @26526
11023 : GIM_Try, /*On fail goto*//*Label 600*/ 26616, // Rule ID 2178 //
11024 : GIM_CheckFeatures, GIFBS_HasNEON_HasV8_1a,
11025 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqadds,
11026 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
11027 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
11028 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
11029 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
11030 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
11031 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
11032 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
11033 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
11034 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vqrdmulh,
11035 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s32,
11036 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v4s32,
11037 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
11038 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::QPRRegClassID,
11039 : GIM_CheckIsSafeToFold, /*InsnID*/1,
11040 : // (intrinsic_wo_chain:{ *:[v4i32] } 1112:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src1, (intrinsic_wo_chain:{ *:[v4i32] } 1120:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)) => (VQRDMLAHv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
11041 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRDMLAHv4i32,
11042 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
11043 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
11044 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
11045 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
11046 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
11047 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
11048 : GIR_EraseFromParent, /*InsnID*/0,
11049 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
11050 : // GIR_Coverage, 2178,
11051 : GIR_Done,
11052 : // Label 600: @26616
11053 : GIM_Try, /*On fail goto*//*Label 601*/ 26706, // Rule ID 2183 //
11054 : GIM_CheckFeatures, GIFBS_HasNEON_HasV8_1a,
11055 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqsubs,
11056 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
11057 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
11058 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
11059 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
11060 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
11061 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
11062 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
11063 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
11064 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vqrdmulh,
11065 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
11066 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v4s16,
11067 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
11068 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
11069 : GIM_CheckIsSafeToFold, /*InsnID*/1,
11070 : // (intrinsic_wo_chain:{ *:[v4i16] } 1132:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$src1, (intrinsic_wo_chain:{ *:[v4i16] } 1120:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)) => (VQRDMLSHv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
11071 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRDMLSHv4i16,
11072 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
11073 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
11074 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
11075 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
11076 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
11077 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
11078 : GIR_EraseFromParent, /*InsnID*/0,
11079 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
11080 : // GIR_Coverage, 2183,
11081 : GIR_Done,
11082 : // Label 601: @26706
11083 : GIM_Try, /*On fail goto*//*Label 602*/ 26796, // Rule ID 2184 //
11084 : GIM_CheckFeatures, GIFBS_HasNEON_HasV8_1a,
11085 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqsubs,
11086 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
11087 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
11088 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
11089 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
11090 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
11091 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
11092 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
11093 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
11094 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vqrdmulh,
11095 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s32,
11096 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v2s32,
11097 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
11098 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
11099 : GIM_CheckIsSafeToFold, /*InsnID*/1,
11100 : // (intrinsic_wo_chain:{ *:[v2i32] } 1132:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$src1, (intrinsic_wo_chain:{ *:[v2i32] } 1120:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)) => (VQRDMLSHv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
11101 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRDMLSHv2i32,
11102 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
11103 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
11104 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
11105 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
11106 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
11107 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
11108 : GIR_EraseFromParent, /*InsnID*/0,
11109 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
11110 : // GIR_Coverage, 2184,
11111 : GIR_Done,
11112 : // Label 602: @26796
11113 : GIM_Try, /*On fail goto*//*Label 603*/ 26886, // Rule ID 2185 //
11114 : GIM_CheckFeatures, GIFBS_HasNEON_HasV8_1a,
11115 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqsubs,
11116 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
11117 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
11118 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
11119 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
11120 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
11121 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
11122 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
11123 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
11124 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vqrdmulh,
11125 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s16,
11126 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v8s16,
11127 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
11128 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::QPRRegClassID,
11129 : GIM_CheckIsSafeToFold, /*InsnID*/1,
11130 : // (intrinsic_wo_chain:{ *:[v8i16] } 1132:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$src1, (intrinsic_wo_chain:{ *:[v8i16] } 1120:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)) => (VQRDMLSHv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
11131 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRDMLSHv8i16,
11132 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
11133 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
11134 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
11135 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
11136 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
11137 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
11138 : GIR_EraseFromParent, /*InsnID*/0,
11139 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
11140 : // GIR_Coverage, 2185,
11141 : GIR_Done,
11142 : // Label 603: @26886
11143 : GIM_Try, /*On fail goto*//*Label 604*/ 26976, // Rule ID 2186 //
11144 : GIM_CheckFeatures, GIFBS_HasNEON_HasV8_1a,
11145 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqsubs,
11146 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
11147 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
11148 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
11149 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
11150 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
11151 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
11152 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
11153 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
11154 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vqrdmulh,
11155 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s32,
11156 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v4s32,
11157 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
11158 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::QPRRegClassID,
11159 : GIM_CheckIsSafeToFold, /*InsnID*/1,
11160 : // (intrinsic_wo_chain:{ *:[v4i32] } 1132:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src1, (intrinsic_wo_chain:{ *:[v4i32] } 1120:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)) => (VQRDMLSHv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
11161 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRDMLSHv4i32,
11162 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
11163 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
11164 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
11165 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
11166 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
11167 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
11168 : GIR_EraseFromParent, /*InsnID*/0,
11169 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
11170 : // GIR_Coverage, 2186,
11171 : GIR_Done,
11172 : // Label 604: @26976
11173 : GIM_Try, /*On fail goto*//*Label 605*/ 27064, // Rule ID 2191 //
11174 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqadds,
11175 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
11176 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
11177 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
11178 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
11179 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
11180 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
11181 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
11182 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
11183 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vqdmull,
11184 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
11185 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v4s16,
11186 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
11187 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
11188 : GIM_CheckIsSafeToFold, /*InsnID*/1,
11189 : // (intrinsic_wo_chain:{ *:[v4i32] } 1112:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src1, (intrinsic_wo_chain:{ *:[v4i32] } 1115:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)) => (VQDMLALv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
11190 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQDMLALv4i32,
11191 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
11192 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
11193 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
11194 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
11195 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
11196 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
11197 : GIR_EraseFromParent, /*InsnID*/0,
11198 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
11199 : // GIR_Coverage, 2191,
11200 : GIR_Done,
11201 : // Label 605: @27064
11202 : GIM_Try, /*On fail goto*//*Label 606*/ 27152, // Rule ID 2192 //
11203 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqadds,
11204 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
11205 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
11206 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
11207 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
11208 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
11209 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
11210 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
11211 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
11212 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vqdmull,
11213 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s32,
11214 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v2s32,
11215 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
11216 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
11217 : GIM_CheckIsSafeToFold, /*InsnID*/1,
11218 : // (intrinsic_wo_chain:{ *:[v2i64] } 1112:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$src1, (intrinsic_wo_chain:{ *:[v2i64] } 1115:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)) => (VQDMLALv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
11219 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQDMLALv2i64,
11220 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
11221 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
11222 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
11223 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
11224 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
11225 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
11226 : GIR_EraseFromParent, /*InsnID*/0,
11227 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
11228 : // GIR_Coverage, 2192,
11229 : GIR_Done,
11230 : // Label 606: @27152
11231 : GIM_Try, /*On fail goto*//*Label 607*/ 27240, // Rule ID 2198 //
11232 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqsubs,
11233 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
11234 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
11235 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
11236 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
11237 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
11238 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
11239 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
11240 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
11241 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vqdmull,
11242 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
11243 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v4s16,
11244 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
11245 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
11246 : GIM_CheckIsSafeToFold, /*InsnID*/1,
11247 : // (intrinsic_wo_chain:{ *:[v4i32] } 1132:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src1, (intrinsic_wo_chain:{ *:[v4i32] } 1115:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)) => (VQDMLSLv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
11248 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQDMLSLv4i32,
11249 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
11250 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
11251 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
11252 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
11253 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
11254 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
11255 : GIR_EraseFromParent, /*InsnID*/0,
11256 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
11257 : // GIR_Coverage, 2198,
11258 : GIR_Done,
11259 : // Label 607: @27240
11260 : GIM_Try, /*On fail goto*//*Label 608*/ 27328, // Rule ID 2199 //
11261 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqsubs,
11262 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
11263 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
11264 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
11265 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
11266 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
11267 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
11268 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
11269 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
11270 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vqdmull,
11271 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s32,
11272 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v2s32,
11273 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
11274 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
11275 : GIM_CheckIsSafeToFold, /*InsnID*/1,
11276 : // (intrinsic_wo_chain:{ *:[v2i64] } 1132:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$src1, (intrinsic_wo_chain:{ *:[v2i64] } 1115:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)) => (VQDMLSLv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
11277 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQDMLSLv2i64,
11278 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
11279 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
11280 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
11281 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
11282 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
11283 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
11284 : GIR_EraseFromParent, /*InsnID*/0,
11285 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
11286 : // GIR_Coverage, 2199,
11287 : GIR_Done,
11288 : // Label 608: @27328
11289 : GIM_Try, /*On fail goto*//*Label 609*/ 27411, // Rule ID 112 //
11290 : GIM_CheckFeatures, GIFBS_IsARM,
11291 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_qsub,
11292 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
11293 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
11294 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
11295 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
11296 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
11297 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
11298 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
11299 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
11300 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_qadd,
11301 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
11302 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
11303 : // MIs[1] Rn
11304 : GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
11305 : GIM_CheckIsSafeToFold, /*InsnID*/1,
11306 : // (intrinsic_wo_chain:{ *:[i32] } 1177:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rm, (intrinsic_wo_chain:{ *:[i32] } 1172:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rn)) => (QDSUB:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rn)
11307 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::QDSUB,
11308 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
11309 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
11310 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rn
11311 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
11312 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
11313 : GIR_EraseFromParent, /*InsnID*/0,
11314 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
11315 : // GIR_Coverage, 112,
11316 : GIR_Done,
11317 : // Label 609: @27411
11318 : GIM_Try, /*On fail goto*//*Label 610*/ 27494, // Rule ID 1936 //
11319 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
11320 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_qsub,
11321 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
11322 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
11323 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
11324 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
11325 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
11326 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
11327 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
11328 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
11329 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_qadd,
11330 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
11331 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
11332 : // MIs[1] Rn
11333 : GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
11334 : GIM_CheckIsSafeToFold, /*InsnID*/1,
11335 : // (intrinsic_wo_chain:{ *:[i32] } 1177:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rm, (intrinsic_wo_chain:{ *:[i32] } 1172:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rn)) => (t2QDSUB:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
11336 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2QDSUB,
11337 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
11338 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
11339 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rn
11340 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
11341 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
11342 : GIR_EraseFromParent, /*InsnID*/0,
11343 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
11344 : // GIR_Coverage, 1936,
11345 : GIR_Done,
11346 : // Label 610: @27494
11347 : GIM_Try, /*On fail goto*//*Label 611*/ 27577, // Rule ID 2525 //
11348 : GIM_CheckFeatures, GIFBS_IsARM,
11349 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_qadd,
11350 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
11351 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
11352 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
11353 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
11354 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
11355 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
11356 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
11357 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
11358 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_qadd,
11359 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
11360 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
11361 : // MIs[1] Rm
11362 : GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
11363 : GIM_CheckIsSafeToFold, /*InsnID*/1,
11364 : // (intrinsic_wo_chain:{ *:[i32] } 1172:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, (intrinsic_wo_chain:{ *:[i32] } 1172:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rm)) => (QDADD:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rn)
11365 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::QDADD,
11366 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
11367 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rm
11368 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
11369 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
11370 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
11371 : GIR_EraseFromParent, /*InsnID*/0,
11372 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
11373 : // GIR_Coverage, 2525,
11374 : GIR_Done,
11375 : // Label 611: @27577
11376 : GIM_Try, /*On fail goto*//*Label 612*/ 27660, // Rule ID 2776 //
11377 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
11378 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_qadd,
11379 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
11380 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
11381 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
11382 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
11383 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
11384 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
11385 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
11386 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
11387 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_qadd,
11388 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
11389 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
11390 : // MIs[1] Rm
11391 : GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
11392 : GIM_CheckIsSafeToFold, /*InsnID*/1,
11393 : // (intrinsic_wo_chain:{ *:[i32] } 1172:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, (intrinsic_wo_chain:{ *:[i32] } 1172:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rm)) => (t2QDADD:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
11394 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2QDADD,
11395 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
11396 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rm
11397 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
11398 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
11399 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
11400 : GIR_EraseFromParent, /*InsnID*/0,
11401 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
11402 : // GIR_Coverage, 2776,
11403 : GIR_Done,
11404 : // Label 612: @27660
11405 : GIM_Try, /*On fail goto*//*Label 613*/ 27728, // Rule ID 1723 //
11406 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
11407 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_usat,
11408 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
11409 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
11410 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
11411 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
11412 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
11413 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
11414 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
11415 : GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_31,
11416 : // MIs[1] Operand 1
11417 : // No operand predicates
11418 : GIM_CheckIsSafeToFold, /*InsnID*/1,
11419 : // (intrinsic_wo_chain:{ *:[i32] } 1249:{ *:[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] })
11420 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::USAT,
11421 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
11422 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // pos
11423 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
11424 : GIR_AddImm, /*InsnID*/0, /*Imm*/0,
11425 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
11426 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
11427 : GIR_EraseFromParent, /*InsnID*/0,
11428 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
11429 : // GIR_Coverage, 1723,
11430 : GIR_Done,
11431 : // Label 613: @27728
11432 : GIM_Try, /*On fail goto*//*Label 614*/ 27793, // Rule ID 1727 //
11433 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
11434 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_usat16,
11435 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
11436 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
11437 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
11438 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
11439 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
11440 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
11441 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
11442 : GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_15,
11443 : // MIs[1] Operand 1
11444 : // No operand predicates
11445 : GIM_CheckIsSafeToFold, /*InsnID*/1,
11446 : // (intrinsic_wo_chain:{ *:[i32] } 1250:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$a, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$pos) => (USAT16:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$pos, GPRnopc:{ *:[i32] }:$a)
11447 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::USAT16,
11448 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
11449 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // pos
11450 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
11451 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
11452 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
11453 : GIR_EraseFromParent, /*InsnID*/0,
11454 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
11455 : // GIR_Coverage, 1727,
11456 : GIR_Done,
11457 : // Label 614: @27793
11458 : GIM_Try, /*On fail goto*//*Label 615*/ 27861, // Rule ID 1940 //
11459 : GIM_CheckFeatures, GIFBS_IsThumb2,
11460 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_usat,
11461 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
11462 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
11463 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
11464 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
11465 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
11466 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
11467 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
11468 : GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_31,
11469 : // MIs[1] Operand 1
11470 : // No operand predicates
11471 : GIM_CheckIsSafeToFold, /*InsnID*/1,
11472 : // (intrinsic_wo_chain:{ *:[i32] } 1249:{ *:[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] })
11473 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2USAT,
11474 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
11475 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // pos
11476 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
11477 : GIR_AddImm, /*InsnID*/0, /*Imm*/0,
11478 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
11479 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
11480 : GIR_EraseFromParent, /*InsnID*/0,
11481 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
11482 : // GIR_Coverage, 1940,
11483 : GIR_Done,
11484 : // Label 615: @27861
11485 : GIM_Try, /*On fail goto*//*Label 616*/ 27926, // Rule ID 1942 //
11486 : GIM_CheckFeatures, GIFBS_IsThumb2,
11487 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_usat16,
11488 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
11489 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
11490 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
11491 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
11492 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
11493 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
11494 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
11495 : GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_15,
11496 : // MIs[1] Operand 1
11497 : // No operand predicates
11498 : GIM_CheckIsSafeToFold, /*InsnID*/1,
11499 : // (intrinsic_wo_chain:{ *:[i32] } 1250:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$pos) => (t2USAT16:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$pos, GPR:{ *:[i32] }:$a)
11500 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2USAT16,
11501 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
11502 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // pos
11503 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
11504 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
11505 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
11506 : GIR_EraseFromParent, /*InsnID*/0,
11507 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
11508 : // GIR_Coverage, 1942,
11509 : GIR_Done,
11510 : // Label 616: @27926
11511 : GIM_Try, /*On fail goto*//*Label 617*/ 27988, // Rule ID 1623 //
11512 : GIM_CheckFeatures, GIFBS_HasNEON,
11513 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtfp2fxs,
11514 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
11515 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
11516 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
11517 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
11518 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
11519 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
11520 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
11521 : // MIs[1] Operand 1
11522 : // No operand predicates
11523 : GIM_CheckIsSafeToFold, /*InsnID*/1,
11524 : // (intrinsic_wo_chain:{ *:[v2i32] } 1063:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTf2xsd:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
11525 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTf2xsd,
11526 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
11527 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
11528 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
11529 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
11530 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
11531 : GIR_EraseFromParent, /*InsnID*/0,
11532 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
11533 : // GIR_Coverage, 1623,
11534 : GIR_Done,
11535 : // Label 617: @27988
11536 : GIM_Try, /*On fail goto*//*Label 618*/ 28050, // Rule ID 1624 //
11537 : GIM_CheckFeatures, GIFBS_HasNEON,
11538 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtfp2fxu,
11539 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
11540 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
11541 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
11542 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
11543 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
11544 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
11545 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
11546 : // MIs[1] Operand 1
11547 : // No operand predicates
11548 : GIM_CheckIsSafeToFold, /*InsnID*/1,
11549 : // (intrinsic_wo_chain:{ *:[v2i32] } 1064:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTf2xud:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
11550 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTf2xud,
11551 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
11552 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
11553 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
11554 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
11555 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
11556 : GIR_EraseFromParent, /*InsnID*/0,
11557 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
11558 : // GIR_Coverage, 1624,
11559 : GIR_Done,
11560 : // Label 618: @28050
11561 : GIM_Try, /*On fail goto*//*Label 619*/ 28112, // Rule ID 1625 //
11562 : GIM_CheckFeatures, GIFBS_HasNEON,
11563 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtfxs2fp,
11564 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
11565 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
11566 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
11567 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
11568 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
11569 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
11570 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
11571 : // MIs[1] Operand 1
11572 : // No operand predicates
11573 : GIM_CheckIsSafeToFold, /*InsnID*/1,
11574 : // (intrinsic_wo_chain:{ *:[v2f32] } 1066:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTxs2fd:{ *:[v2f32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
11575 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTxs2fd,
11576 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
11577 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
11578 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
11579 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
11580 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
11581 : GIR_EraseFromParent, /*InsnID*/0,
11582 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
11583 : // GIR_Coverage, 1625,
11584 : GIR_Done,
11585 : // Label 619: @28112
11586 : GIM_Try, /*On fail goto*//*Label 620*/ 28174, // Rule ID 1626 //
11587 : GIM_CheckFeatures, GIFBS_HasNEON,
11588 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtfxu2fp,
11589 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
11590 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
11591 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
11592 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
11593 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
11594 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
11595 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
11596 : // MIs[1] Operand 1
11597 : // No operand predicates
11598 : GIM_CheckIsSafeToFold, /*InsnID*/1,
11599 : // (intrinsic_wo_chain:{ *:[v2f32] } 1067:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTxu2fd:{ *:[v2f32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
11600 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTxu2fd,
11601 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
11602 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
11603 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
11604 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
11605 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
11606 : GIR_EraseFromParent, /*InsnID*/0,
11607 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
11608 : // GIR_Coverage, 1626,
11609 : GIR_Done,
11610 : // Label 620: @28174
11611 : GIM_Try, /*On fail goto*//*Label 621*/ 28236, // Rule ID 1627 //
11612 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
11613 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtfp2fxs,
11614 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
11615 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
11616 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
11617 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
11618 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
11619 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
11620 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
11621 : // MIs[1] Operand 1
11622 : // No operand predicates
11623 : GIM_CheckIsSafeToFold, /*InsnID*/1,
11624 : // (intrinsic_wo_chain:{ *:[v4i16] } 1063:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTh2xsd:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
11625 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTh2xsd,
11626 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
11627 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
11628 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
11629 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
11630 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
11631 : GIR_EraseFromParent, /*InsnID*/0,
11632 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
11633 : // GIR_Coverage, 1627,
11634 : GIR_Done,
11635 : // Label 621: @28236
11636 : GIM_Try, /*On fail goto*//*Label 622*/ 28298, // Rule ID 1628 //
11637 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
11638 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtfp2fxu,
11639 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
11640 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
11641 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
11642 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
11643 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
11644 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
11645 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
11646 : // MIs[1] Operand 1
11647 : // No operand predicates
11648 : GIM_CheckIsSafeToFold, /*InsnID*/1,
11649 : // (intrinsic_wo_chain:{ *:[v4i16] } 1064:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTh2xud:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
11650 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTh2xud,
11651 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
11652 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
11653 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
11654 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
11655 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
11656 : GIR_EraseFromParent, /*InsnID*/0,
11657 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
11658 : // GIR_Coverage, 1628,
11659 : GIR_Done,
11660 : // Label 622: @28298
11661 : GIM_Try, /*On fail goto*//*Label 623*/ 28360, // Rule ID 1629 //
11662 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
11663 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtfxs2fp,
11664 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
11665 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
11666 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
11667 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
11668 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
11669 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
11670 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
11671 : // MIs[1] Operand 1
11672 : // No operand predicates
11673 : GIM_CheckIsSafeToFold, /*InsnID*/1,
11674 : // (intrinsic_wo_chain:{ *:[v4f16] } 1066:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTxs2hd:{ *:[v4f16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
11675 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTxs2hd,
11676 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
11677 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
11678 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
11679 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
11680 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
11681 : GIR_EraseFromParent, /*InsnID*/0,
11682 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
11683 : // GIR_Coverage, 1629,
11684 : GIR_Done,
11685 : // Label 623: @28360
11686 : GIM_Try, /*On fail goto*//*Label 624*/ 28422, // Rule ID 1630 //
11687 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
11688 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtfxu2fp,
11689 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
11690 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
11691 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
11692 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
11693 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
11694 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
11695 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
11696 : // MIs[1] Operand 1
11697 : // No operand predicates
11698 : GIM_CheckIsSafeToFold, /*InsnID*/1,
11699 : // (intrinsic_wo_chain:{ *:[v4f16] } 1067:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTxu2hd:{ *:[v4f16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
11700 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTxu2hd,
11701 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
11702 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
11703 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
11704 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
11705 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
11706 : GIR_EraseFromParent, /*InsnID*/0,
11707 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
11708 : // GIR_Coverage, 1630,
11709 : GIR_Done,
11710 : // Label 624: @28422
11711 : GIM_Try, /*On fail goto*//*Label 625*/ 28484, // Rule ID 1631 //
11712 : GIM_CheckFeatures, GIFBS_HasNEON,
11713 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtfp2fxs,
11714 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
11715 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
11716 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
11717 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
11718 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
11719 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
11720 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
11721 : // MIs[1] Operand 1
11722 : // No operand predicates
11723 : GIM_CheckIsSafeToFold, /*InsnID*/1,
11724 : // (intrinsic_wo_chain:{ *:[v4i32] } 1063:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTf2xsq:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
11725 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTf2xsq,
11726 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
11727 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
11728 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
11729 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
11730 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
11731 : GIR_EraseFromParent, /*InsnID*/0,
11732 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
11733 : // GIR_Coverage, 1631,
11734 : GIR_Done,
11735 : // Label 625: @28484
11736 : GIM_Try, /*On fail goto*//*Label 626*/ 28546, // Rule ID 1632 //
11737 : GIM_CheckFeatures, GIFBS_HasNEON,
11738 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtfp2fxu,
11739 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
11740 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
11741 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
11742 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
11743 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
11744 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
11745 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
11746 : // MIs[1] Operand 1
11747 : // No operand predicates
11748 : GIM_CheckIsSafeToFold, /*InsnID*/1,
11749 : // (intrinsic_wo_chain:{ *:[v4i32] } 1064:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTf2xuq:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
11750 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTf2xuq,
11751 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
11752 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
11753 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
11754 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
11755 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
11756 : GIR_EraseFromParent, /*InsnID*/0,
11757 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
11758 : // GIR_Coverage, 1632,
11759 : GIR_Done,
11760 : // Label 626: @28546
11761 : GIM_Try, /*On fail goto*//*Label 627*/ 28608, // Rule ID 1633 //
11762 : GIM_CheckFeatures, GIFBS_HasNEON,
11763 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtfxs2fp,
11764 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
11765 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
11766 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
11767 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
11768 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
11769 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
11770 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
11771 : // MIs[1] Operand 1
11772 : // No operand predicates
11773 : GIM_CheckIsSafeToFold, /*InsnID*/1,
11774 : // (intrinsic_wo_chain:{ *:[v4f32] } 1066:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTxs2fq:{ *:[v4f32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
11775 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTxs2fq,
11776 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
11777 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
11778 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
11779 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
11780 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
11781 : GIR_EraseFromParent, /*InsnID*/0,
11782 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
11783 : // GIR_Coverage, 1633,
11784 : GIR_Done,
11785 : // Label 627: @28608
11786 : GIM_Try, /*On fail goto*//*Label 628*/ 28670, // Rule ID 1634 //
11787 : GIM_CheckFeatures, GIFBS_HasNEON,
11788 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtfxu2fp,
11789 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
11790 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
11791 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
11792 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
11793 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
11794 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
11795 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
11796 : // MIs[1] Operand 1
11797 : // No operand predicates
11798 : GIM_CheckIsSafeToFold, /*InsnID*/1,
11799 : // (intrinsic_wo_chain:{ *:[v4f32] } 1067:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTxu2fq:{ *:[v4f32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
11800 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTxu2fq,
11801 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
11802 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
11803 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
11804 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
11805 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
11806 : GIR_EraseFromParent, /*InsnID*/0,
11807 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
11808 : // GIR_Coverage, 1634,
11809 : GIR_Done,
11810 : // Label 628: @28670
11811 : GIM_Try, /*On fail goto*//*Label 629*/ 28732, // Rule ID 1635 //
11812 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
11813 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtfp2fxs,
11814 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
11815 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
11816 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
11817 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
11818 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
11819 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
11820 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
11821 : // MIs[1] Operand 1
11822 : // No operand predicates
11823 : GIM_CheckIsSafeToFold, /*InsnID*/1,
11824 : // (intrinsic_wo_chain:{ *:[v8i16] } 1063:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTh2xsq:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
11825 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTh2xsq,
11826 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
11827 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
11828 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
11829 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
11830 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
11831 : GIR_EraseFromParent, /*InsnID*/0,
11832 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
11833 : // GIR_Coverage, 1635,
11834 : GIR_Done,
11835 : // Label 629: @28732
11836 : GIM_Try, /*On fail goto*//*Label 630*/ 28794, // Rule ID 1636 //
11837 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
11838 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtfp2fxu,
11839 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
11840 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
11841 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
11842 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
11843 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
11844 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
11845 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
11846 : // MIs[1] Operand 1
11847 : // No operand predicates
11848 : GIM_CheckIsSafeToFold, /*InsnID*/1,
11849 : // (intrinsic_wo_chain:{ *:[v8i16] } 1064:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTh2xuq:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
11850 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTh2xuq,
11851 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
11852 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
11853 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
11854 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
11855 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
11856 : GIR_EraseFromParent, /*InsnID*/0,
11857 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
11858 : // GIR_Coverage, 1636,
11859 : GIR_Done,
11860 : // Label 630: @28794
11861 : GIM_Try, /*On fail goto*//*Label 631*/ 28856, // Rule ID 1637 //
11862 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
11863 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtfxs2fp,
11864 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
11865 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
11866 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
11867 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
11868 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
11869 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
11870 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
11871 : // MIs[1] Operand 1
11872 : // No operand predicates
11873 : GIM_CheckIsSafeToFold, /*InsnID*/1,
11874 : // (intrinsic_wo_chain:{ *:[v8f16] } 1066:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTxs2hq:{ *:[v8f16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
11875 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTxs2hq,
11876 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
11877 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
11878 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
11879 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
11880 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
11881 : GIR_EraseFromParent, /*InsnID*/0,
11882 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
11883 : // GIR_Coverage, 1637,
11884 : GIR_Done,
11885 : // Label 631: @28856
11886 : GIM_Try, /*On fail goto*//*Label 632*/ 28918, // Rule ID 1638 //
11887 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
11888 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtfxu2fp,
11889 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
11890 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
11891 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
11892 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
11893 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
11894 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
11895 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
11896 : // MIs[1] Operand 1
11897 : // No operand predicates
11898 : GIM_CheckIsSafeToFold, /*InsnID*/1,
11899 : // (intrinsic_wo_chain:{ *:[v8f16] } 1067:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTxu2hq:{ *:[v8f16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
11900 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTxu2hq,
11901 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
11902 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
11903 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
11904 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
11905 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
11906 : GIR_EraseFromParent, /*InsnID*/0,
11907 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
11908 : // GIR_Coverage, 1638,
11909 : GIR_Done,
11910 : // Label 632: @28918
11911 : GIM_Try, /*On fail goto*//*Label 633*/ 28976, // Rule ID 107 //
11912 : GIM_CheckFeatures, GIFBS_IsARM,
11913 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_qadd8,
11914 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
11915 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
11916 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
11917 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
11918 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
11919 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
11920 : // (intrinsic_wo_chain:{ *:[i32] } 1174:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (QADD8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
11921 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::QADD8,
11922 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
11923 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
11924 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
11925 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
11926 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
11927 : GIR_EraseFromParent, /*InsnID*/0,
11928 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
11929 : // GIR_Coverage, 107,
11930 : GIR_Done,
11931 : // Label 633: @28976
11932 : GIM_Try, /*On fail goto*//*Label 634*/ 29034, // Rule ID 108 //
11933 : GIM_CheckFeatures, GIFBS_IsARM,
11934 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_qadd16,
11935 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
11936 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
11937 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
11938 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
11939 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
11940 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
11941 : // (intrinsic_wo_chain:{ *:[i32] } 1173:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (QADD16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
11942 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::QADD16,
11943 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
11944 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
11945 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
11946 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
11947 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
11948 : GIR_EraseFromParent, /*InsnID*/0,
11949 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
11950 : // GIR_Coverage, 108,
11951 : GIR_Done,
11952 : // Label 634: @29034
11953 : GIM_Try, /*On fail goto*//*Label 635*/ 29092, // Rule ID 109 //
11954 : GIM_CheckFeatures, GIFBS_IsARM,
11955 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_qsub16,
11956 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
11957 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
11958 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
11959 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
11960 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
11961 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
11962 : // (intrinsic_wo_chain:{ *:[i32] } 1178:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (QSUB16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
11963 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::QSUB16,
11964 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
11965 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
11966 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
11967 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
11968 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
11969 : GIR_EraseFromParent, /*InsnID*/0,
11970 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
11971 : // GIR_Coverage, 109,
11972 : GIR_Done,
11973 : // Label 635: @29092
11974 : GIM_Try, /*On fail goto*//*Label 636*/ 29150, // Rule ID 110 //
11975 : GIM_CheckFeatures, GIFBS_IsARM,
11976 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_qsub8,
11977 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
11978 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
11979 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
11980 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
11981 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
11982 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
11983 : // (intrinsic_wo_chain:{ *:[i32] } 1179:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (QSUB8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
11984 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::QSUB8,
11985 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
11986 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
11987 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
11988 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
11989 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
11990 : GIR_EraseFromParent, /*InsnID*/0,
11991 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
11992 : // GIR_Coverage, 110,
11993 : GIR_Done,
11994 : // Label 636: @29150
11995 : GIM_Try, /*On fail goto*//*Label 637*/ 29208, // Rule ID 113 //
11996 : GIM_CheckFeatures, GIFBS_IsARM,
11997 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_qsub,
11998 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
11999 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12000 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12001 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
12002 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
12003 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
12004 : // (intrinsic_wo_chain:{ *:[i32] } 1177:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rn) => (QSUB:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rn)
12005 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::QSUB,
12006 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12007 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
12008 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rn
12009 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
12010 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
12011 : GIR_EraseFromParent, /*InsnID*/0,
12012 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12013 : // GIR_Coverage, 113,
12014 : GIR_Done,
12015 : // Label 637: @29208
12016 : GIM_Try, /*On fail goto*//*Label 638*/ 29266, // Rule ID 114 //
12017 : GIM_CheckFeatures, GIFBS_IsARM,
12018 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_qadd,
12019 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12020 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12021 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12022 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
12023 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
12024 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
12025 : // (intrinsic_wo_chain:{ *:[i32] } 1172:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rn) => (QADD:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rn)
12026 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::QADD,
12027 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12028 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
12029 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rn
12030 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
12031 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
12032 : GIR_EraseFromParent, /*InsnID*/0,
12033 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12034 : // GIR_Coverage, 114,
12035 : GIR_Done,
12036 : // Label 638: @29266
12037 : GIM_Try, /*On fail goto*//*Label 639*/ 29324, // Rule ID 115 //
12038 : GIM_CheckFeatures, GIFBS_IsARM,
12039 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uqadd16,
12040 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12041 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12042 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12043 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
12044 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
12045 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
12046 : // (intrinsic_wo_chain:{ *:[i32] } 1241:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UQADD16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
12047 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UQADD16,
12048 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12049 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12050 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12051 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
12052 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
12053 : GIR_EraseFromParent, /*InsnID*/0,
12054 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12055 : // GIR_Coverage, 115,
12056 : GIR_Done,
12057 : // Label 639: @29324
12058 : GIM_Try, /*On fail goto*//*Label 640*/ 29382, // Rule ID 116 //
12059 : GIM_CheckFeatures, GIFBS_IsARM,
12060 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uqadd8,
12061 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12062 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12063 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12064 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
12065 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
12066 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
12067 : // (intrinsic_wo_chain:{ *:[i32] } 1242:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UQADD8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
12068 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UQADD8,
12069 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12070 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12071 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12072 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
12073 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
12074 : GIR_EraseFromParent, /*InsnID*/0,
12075 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12076 : // GIR_Coverage, 116,
12077 : GIR_Done,
12078 : // Label 640: @29382
12079 : GIM_Try, /*On fail goto*//*Label 641*/ 29440, // Rule ID 117 //
12080 : GIM_CheckFeatures, GIFBS_IsARM,
12081 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uqsub16,
12082 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12083 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12084 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12085 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
12086 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
12087 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
12088 : // (intrinsic_wo_chain:{ *:[i32] } 1245:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UQSUB16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
12089 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UQSUB16,
12090 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12091 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12092 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12093 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
12094 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
12095 : GIR_EraseFromParent, /*InsnID*/0,
12096 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12097 : // GIR_Coverage, 117,
12098 : GIR_Done,
12099 : // Label 641: @29440
12100 : GIM_Try, /*On fail goto*//*Label 642*/ 29498, // Rule ID 118 //
12101 : GIM_CheckFeatures, GIFBS_IsARM,
12102 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uqsub8,
12103 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12104 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12105 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12106 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
12107 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
12108 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
12109 : // (intrinsic_wo_chain:{ *:[i32] } 1246:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UQSUB8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
12110 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UQSUB8,
12111 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12112 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12113 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12114 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
12115 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
12116 : GIR_EraseFromParent, /*InsnID*/0,
12117 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12118 : // GIR_Coverage, 118,
12119 : GIR_Done,
12120 : // Label 642: @29498
12121 : GIM_Try, /*On fail goto*//*Label 643*/ 29556, // Rule ID 119 //
12122 : GIM_CheckFeatures, GIFBS_IsARM,
12123 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_qasx,
12124 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12125 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12126 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12127 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
12128 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
12129 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
12130 : // (intrinsic_wo_chain:{ *:[i32] } 1175:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (QASX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
12131 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::QASX,
12132 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12133 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12134 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12135 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
12136 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
12137 : GIR_EraseFromParent, /*InsnID*/0,
12138 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12139 : // GIR_Coverage, 119,
12140 : GIR_Done,
12141 : // Label 643: @29556
12142 : GIM_Try, /*On fail goto*//*Label 644*/ 29614, // Rule ID 120 //
12143 : GIM_CheckFeatures, GIFBS_IsARM,
12144 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_qsax,
12145 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12146 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12147 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12148 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
12149 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
12150 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
12151 : // (intrinsic_wo_chain:{ *:[i32] } 1176:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (QSAX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
12152 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::QSAX,
12153 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12154 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12155 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12156 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
12157 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
12158 : GIR_EraseFromParent, /*InsnID*/0,
12159 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12160 : // GIR_Coverage, 120,
12161 : GIR_Done,
12162 : // Label 644: @29614
12163 : GIM_Try, /*On fail goto*//*Label 645*/ 29672, // Rule ID 121 //
12164 : GIM_CheckFeatures, GIFBS_IsARM,
12165 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uqasx,
12166 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12167 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12168 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12169 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
12170 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
12171 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
12172 : // (intrinsic_wo_chain:{ *:[i32] } 1243:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UQASX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
12173 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UQASX,
12174 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12175 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12176 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12177 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
12178 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
12179 : GIR_EraseFromParent, /*InsnID*/0,
12180 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12181 : // GIR_Coverage, 121,
12182 : GIR_Done,
12183 : // Label 645: @29672
12184 : GIM_Try, /*On fail goto*//*Label 646*/ 29730, // Rule ID 122 //
12185 : GIM_CheckFeatures, GIFBS_IsARM,
12186 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uqsax,
12187 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12188 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12189 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12190 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
12191 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
12192 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
12193 : // (intrinsic_wo_chain:{ *:[i32] } 1244:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UQSAX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
12194 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UQSAX,
12195 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12196 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12197 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12198 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
12199 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
12200 : GIR_EraseFromParent, /*InsnID*/0,
12201 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12202 : // GIR_Coverage, 122,
12203 : GIR_Done,
12204 : // Label 646: @29730
12205 : GIM_Try, /*On fail goto*//*Label 647*/ 29788, // Rule ID 135 //
12206 : GIM_CheckFeatures, GIFBS_IsARM,
12207 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_shasx,
12208 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12209 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12210 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12211 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
12212 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
12213 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
12214 : // (intrinsic_wo_chain:{ *:[i32] } 1187:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SHASX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
12215 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SHASX,
12216 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12217 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12218 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12219 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
12220 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
12221 : GIR_EraseFromParent, /*InsnID*/0,
12222 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12223 : // GIR_Coverage, 135,
12224 : GIR_Done,
12225 : // Label 647: @29788
12226 : GIM_Try, /*On fail goto*//*Label 648*/ 29846, // Rule ID 136 //
12227 : GIM_CheckFeatures, GIFBS_IsARM,
12228 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_shadd16,
12229 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12230 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12231 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12232 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
12233 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
12234 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
12235 : // (intrinsic_wo_chain:{ *:[i32] } 1185:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SHADD16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
12236 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SHADD16,
12237 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12238 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12239 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12240 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
12241 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
12242 : GIR_EraseFromParent, /*InsnID*/0,
12243 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12244 : // GIR_Coverage, 136,
12245 : GIR_Done,
12246 : // Label 648: @29846
12247 : GIM_Try, /*On fail goto*//*Label 649*/ 29904, // Rule ID 137 //
12248 : GIM_CheckFeatures, GIFBS_IsARM,
12249 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_shadd8,
12250 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12251 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12252 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12253 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
12254 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
12255 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
12256 : // (intrinsic_wo_chain:{ *:[i32] } 1186:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SHADD8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
12257 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SHADD8,
12258 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12259 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12260 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12261 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
12262 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
12263 : GIR_EraseFromParent, /*InsnID*/0,
12264 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12265 : // GIR_Coverage, 137,
12266 : GIR_Done,
12267 : // Label 649: @29904
12268 : GIM_Try, /*On fail goto*//*Label 650*/ 29962, // Rule ID 138 //
12269 : GIM_CheckFeatures, GIFBS_IsARM,
12270 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_shsax,
12271 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12272 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12273 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12274 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
12275 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
12276 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
12277 : // (intrinsic_wo_chain:{ *:[i32] } 1188:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SHSAX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
12278 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SHSAX,
12279 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12280 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12281 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12282 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
12283 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
12284 : GIR_EraseFromParent, /*InsnID*/0,
12285 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12286 : // GIR_Coverage, 138,
12287 : GIR_Done,
12288 : // Label 650: @29962
12289 : GIM_Try, /*On fail goto*//*Label 651*/ 30020, // Rule ID 139 //
12290 : GIM_CheckFeatures, GIFBS_IsARM,
12291 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_shsub16,
12292 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12293 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12294 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12295 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
12296 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
12297 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
12298 : // (intrinsic_wo_chain:{ *:[i32] } 1189:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SHSUB16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
12299 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SHSUB16,
12300 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12301 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12302 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12303 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
12304 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
12305 : GIR_EraseFromParent, /*InsnID*/0,
12306 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12307 : // GIR_Coverage, 139,
12308 : GIR_Done,
12309 : // Label 651: @30020
12310 : GIM_Try, /*On fail goto*//*Label 652*/ 30078, // Rule ID 140 //
12311 : GIM_CheckFeatures, GIFBS_IsARM,
12312 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_shsub8,
12313 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12314 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12315 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12316 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
12317 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
12318 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
12319 : // (intrinsic_wo_chain:{ *:[i32] } 1190:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SHSUB8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
12320 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SHSUB8,
12321 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12322 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12323 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12324 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
12325 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
12326 : GIR_EraseFromParent, /*InsnID*/0,
12327 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12328 : // GIR_Coverage, 140,
12329 : GIR_Done,
12330 : // Label 652: @30078
12331 : GIM_Try, /*On fail goto*//*Label 653*/ 30136, // Rule ID 141 //
12332 : GIM_CheckFeatures, GIFBS_IsARM,
12333 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uhasx,
12334 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12335 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12336 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12337 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
12338 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
12339 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
12340 : // (intrinsic_wo_chain:{ *:[i32] } 1236:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UHASX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
12341 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UHASX,
12342 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12343 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12344 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12345 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
12346 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
12347 : GIR_EraseFromParent, /*InsnID*/0,
12348 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12349 : // GIR_Coverage, 141,
12350 : GIR_Done,
12351 : // Label 653: @30136
12352 : GIM_Try, /*On fail goto*//*Label 654*/ 30194, // Rule ID 142 //
12353 : GIM_CheckFeatures, GIFBS_IsARM,
12354 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uhadd16,
12355 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12356 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12357 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12358 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
12359 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
12360 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
12361 : // (intrinsic_wo_chain:{ *:[i32] } 1234:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UHADD16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
12362 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UHADD16,
12363 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12364 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12365 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12366 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
12367 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
12368 : GIR_EraseFromParent, /*InsnID*/0,
12369 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12370 : // GIR_Coverage, 142,
12371 : GIR_Done,
12372 : // Label 654: @30194
12373 : GIM_Try, /*On fail goto*//*Label 655*/ 30252, // Rule ID 143 //
12374 : GIM_CheckFeatures, GIFBS_IsARM,
12375 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uhadd8,
12376 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12377 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12378 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12379 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
12380 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
12381 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
12382 : // (intrinsic_wo_chain:{ *:[i32] } 1235:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UHADD8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
12383 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UHADD8,
12384 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12385 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12386 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12387 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
12388 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
12389 : GIR_EraseFromParent, /*InsnID*/0,
12390 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12391 : // GIR_Coverage, 143,
12392 : GIR_Done,
12393 : // Label 655: @30252
12394 : GIM_Try, /*On fail goto*//*Label 656*/ 30310, // Rule ID 144 //
12395 : GIM_CheckFeatures, GIFBS_IsARM,
12396 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uhsax,
12397 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12398 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12399 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12400 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
12401 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
12402 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
12403 : // (intrinsic_wo_chain:{ *:[i32] } 1237:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UHSAX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
12404 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UHSAX,
12405 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12406 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12407 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12408 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
12409 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
12410 : GIR_EraseFromParent, /*InsnID*/0,
12411 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12412 : // GIR_Coverage, 144,
12413 : GIR_Done,
12414 : // Label 656: @30310
12415 : GIM_Try, /*On fail goto*//*Label 657*/ 30368, // Rule ID 145 //
12416 : GIM_CheckFeatures, GIFBS_IsARM,
12417 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uhsub16,
12418 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12419 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12420 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12421 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
12422 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
12423 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
12424 : // (intrinsic_wo_chain:{ *:[i32] } 1238:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UHSUB16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
12425 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UHSUB16,
12426 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12427 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12428 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12429 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
12430 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
12431 : GIR_EraseFromParent, /*InsnID*/0,
12432 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12433 : // GIR_Coverage, 145,
12434 : GIR_Done,
12435 : // Label 657: @30368
12436 : GIM_Try, /*On fail goto*//*Label 658*/ 30426, // Rule ID 146 //
12437 : GIM_CheckFeatures, GIFBS_IsARM,
12438 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uhsub8,
12439 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12440 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12441 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12442 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
12443 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
12444 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
12445 : // (intrinsic_wo_chain:{ *:[i32] } 1239:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UHSUB8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
12446 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UHSUB8,
12447 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12448 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12449 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12450 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
12451 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
12452 : GIR_EraseFromParent, /*InsnID*/0,
12453 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12454 : // GIR_Coverage, 146,
12455 : GIR_Done,
12456 : // Label 658: @30426
12457 : GIM_Try, /*On fail goto*//*Label 659*/ 30484, // Rule ID 147 //
12458 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
12459 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_usad8,
12460 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12461 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12462 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12463 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
12464 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
12465 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
12466 : // (intrinsic_wo_chain:{ *:[i32] } 1247:{ *:[iPTR] }, GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) => (USAD8:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
12467 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::USAD8,
12468 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12469 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12470 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12471 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
12472 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
12473 : GIR_EraseFromParent, /*InsnID*/0,
12474 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12475 : // GIR_Coverage, 147,
12476 : GIR_Done,
12477 : // Label 659: @30484
12478 : GIM_Try, /*On fail goto*//*Label 660*/ 30536, // Rule ID 206 //
12479 : GIM_CheckFeatures, GIFBS_HasCRC_HasV8_IsARM,
12480 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_crc32b,
12481 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12482 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12483 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12484 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
12485 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
12486 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
12487 : // (intrinsic_wo_chain:{ *:[i32] } 1010:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (CRC32B:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
12488 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::CRC32B,
12489 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12490 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12491 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12492 : GIR_EraseFromParent, /*InsnID*/0,
12493 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12494 : // GIR_Coverage, 206,
12495 : GIR_Done,
12496 : // Label 660: @30536
12497 : GIM_Try, /*On fail goto*//*Label 661*/ 30588, // Rule ID 207 //
12498 : GIM_CheckFeatures, GIFBS_HasCRC_HasV8_IsARM,
12499 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_crc32cb,
12500 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12501 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12502 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12503 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
12504 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
12505 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
12506 : // (intrinsic_wo_chain:{ *:[i32] } 1011:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (CRC32CB:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
12507 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::CRC32CB,
12508 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12509 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12510 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12511 : GIR_EraseFromParent, /*InsnID*/0,
12512 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12513 : // GIR_Coverage, 207,
12514 : GIR_Done,
12515 : // Label 661: @30588
12516 : GIM_Try, /*On fail goto*//*Label 662*/ 30640, // Rule ID 208 //
12517 : GIM_CheckFeatures, GIFBS_HasCRC_HasV8_IsARM,
12518 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_crc32h,
12519 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12520 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12521 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12522 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
12523 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
12524 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
12525 : // (intrinsic_wo_chain:{ *:[i32] } 1014:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (CRC32H:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
12526 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::CRC32H,
12527 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12528 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12529 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12530 : GIR_EraseFromParent, /*InsnID*/0,
12531 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12532 : // GIR_Coverage, 208,
12533 : GIR_Done,
12534 : // Label 662: @30640
12535 : GIM_Try, /*On fail goto*//*Label 663*/ 30692, // Rule ID 209 //
12536 : GIM_CheckFeatures, GIFBS_HasCRC_HasV8_IsARM,
12537 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_crc32ch,
12538 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12539 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12540 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12541 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
12542 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
12543 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
12544 : // (intrinsic_wo_chain:{ *:[i32] } 1012:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (CRC32CH:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
12545 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::CRC32CH,
12546 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12547 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12548 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12549 : GIR_EraseFromParent, /*InsnID*/0,
12550 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12551 : // GIR_Coverage, 209,
12552 : GIR_Done,
12553 : // Label 663: @30692
12554 : GIM_Try, /*On fail goto*//*Label 664*/ 30744, // Rule ID 210 //
12555 : GIM_CheckFeatures, GIFBS_HasCRC_HasV8_IsARM,
12556 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_crc32w,
12557 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12558 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12559 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12560 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
12561 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
12562 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
12563 : // (intrinsic_wo_chain:{ *:[i32] } 1015:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (CRC32W:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
12564 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::CRC32W,
12565 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12566 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12567 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12568 : GIR_EraseFromParent, /*InsnID*/0,
12569 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12570 : // GIR_Coverage, 210,
12571 : GIR_Done,
12572 : // Label 664: @30744
12573 : GIM_Try, /*On fail goto*//*Label 665*/ 30796, // Rule ID 211 //
12574 : GIM_CheckFeatures, GIFBS_HasCRC_HasV8_IsARM,
12575 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_crc32cw,
12576 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12577 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12578 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12579 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
12580 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
12581 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
12582 : // (intrinsic_wo_chain:{ *:[i32] } 1013:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (CRC32CW:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
12583 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::CRC32CW,
12584 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12585 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12586 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12587 : GIR_EraseFromParent, /*InsnID*/0,
12588 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12589 : // GIR_Coverage, 211,
12590 : GIR_Done,
12591 : // Label 665: @30796
12592 : GIM_Try, /*On fail goto*//*Label 666*/ 30854, // Rule ID 436 //
12593 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
12594 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_qadd16,
12595 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12596 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12597 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12598 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
12599 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
12600 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
12601 : // (intrinsic_wo_chain:{ *:[i32] } 1173:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2QADD16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
12602 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2QADD16,
12603 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12604 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12605 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12606 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
12607 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
12608 : GIR_EraseFromParent, /*InsnID*/0,
12609 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12610 : // GIR_Coverage, 436,
12611 : GIR_Done,
12612 : // Label 666: @30854
12613 : GIM_Try, /*On fail goto*//*Label 667*/ 30912, // Rule ID 437 //
12614 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
12615 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_qadd8,
12616 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12617 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12618 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12619 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
12620 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
12621 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
12622 : // (intrinsic_wo_chain:{ *:[i32] } 1174:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2QADD8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
12623 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2QADD8,
12624 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12625 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12626 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12627 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
12628 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
12629 : GIR_EraseFromParent, /*InsnID*/0,
12630 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12631 : // GIR_Coverage, 437,
12632 : GIR_Done,
12633 : // Label 667: @30912
12634 : GIM_Try, /*On fail goto*//*Label 668*/ 30970, // Rule ID 438 //
12635 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
12636 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_qasx,
12637 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12638 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12639 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12640 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
12641 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
12642 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
12643 : // (intrinsic_wo_chain:{ *:[i32] } 1175:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2QASX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
12644 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2QASX,
12645 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12646 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12647 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12648 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
12649 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
12650 : GIR_EraseFromParent, /*InsnID*/0,
12651 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12652 : // GIR_Coverage, 438,
12653 : GIR_Done,
12654 : // Label 668: @30970
12655 : GIM_Try, /*On fail goto*//*Label 669*/ 31028, // Rule ID 439 //
12656 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
12657 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uqsub8,
12658 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12659 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12660 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12661 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
12662 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
12663 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
12664 : // (intrinsic_wo_chain:{ *:[i32] } 1246:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UQSUB8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
12665 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UQSUB8,
12666 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12667 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12668 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12669 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
12670 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
12671 : GIR_EraseFromParent, /*InsnID*/0,
12672 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12673 : // GIR_Coverage, 439,
12674 : GIR_Done,
12675 : // Label 669: @31028
12676 : GIM_Try, /*On fail goto*//*Label 670*/ 31086, // Rule ID 440 //
12677 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
12678 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_qsax,
12679 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12680 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12681 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12682 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
12683 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
12684 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
12685 : // (intrinsic_wo_chain:{ *:[i32] } 1176:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2QSAX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
12686 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2QSAX,
12687 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12688 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12689 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12690 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
12691 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
12692 : GIR_EraseFromParent, /*InsnID*/0,
12693 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12694 : // GIR_Coverage, 440,
12695 : GIR_Done,
12696 : // Label 670: @31086
12697 : GIM_Try, /*On fail goto*//*Label 671*/ 31144, // Rule ID 441 //
12698 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
12699 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_qsub16,
12700 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12701 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12702 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12703 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
12704 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
12705 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
12706 : // (intrinsic_wo_chain:{ *:[i32] } 1178:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2QSUB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
12707 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2QSUB16,
12708 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12709 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12710 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12711 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
12712 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
12713 : GIR_EraseFromParent, /*InsnID*/0,
12714 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12715 : // GIR_Coverage, 441,
12716 : GIR_Done,
12717 : // Label 671: @31144
12718 : GIM_Try, /*On fail goto*//*Label 672*/ 31202, // Rule ID 442 //
12719 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
12720 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_qsub8,
12721 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12722 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12723 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12724 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
12725 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
12726 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
12727 : // (intrinsic_wo_chain:{ *:[i32] } 1179:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2QSUB8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
12728 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2QSUB8,
12729 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12730 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12731 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12732 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
12733 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
12734 : GIR_EraseFromParent, /*InsnID*/0,
12735 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12736 : // GIR_Coverage, 442,
12737 : GIR_Done,
12738 : // Label 672: @31202
12739 : GIM_Try, /*On fail goto*//*Label 673*/ 31260, // Rule ID 443 //
12740 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
12741 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uqadd16,
12742 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12743 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12744 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12745 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
12746 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
12747 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
12748 : // (intrinsic_wo_chain:{ *:[i32] } 1241:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UQADD16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
12749 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UQADD16,
12750 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12751 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12752 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12753 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
12754 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
12755 : GIR_EraseFromParent, /*InsnID*/0,
12756 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12757 : // GIR_Coverage, 443,
12758 : GIR_Done,
12759 : // Label 673: @31260
12760 : GIM_Try, /*On fail goto*//*Label 674*/ 31318, // Rule ID 444 //
12761 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
12762 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uqadd8,
12763 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12764 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12765 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12766 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
12767 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
12768 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
12769 : // (intrinsic_wo_chain:{ *:[i32] } 1242:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UQADD8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
12770 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UQADD8,
12771 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12772 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12773 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12774 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
12775 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
12776 : GIR_EraseFromParent, /*InsnID*/0,
12777 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12778 : // GIR_Coverage, 444,
12779 : GIR_Done,
12780 : // Label 674: @31318
12781 : GIM_Try, /*On fail goto*//*Label 675*/ 31376, // Rule ID 445 //
12782 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
12783 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uqasx,
12784 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12785 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12786 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12787 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
12788 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
12789 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
12790 : // (intrinsic_wo_chain:{ *:[i32] } 1243:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UQASX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
12791 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UQASX,
12792 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12793 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12794 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12795 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
12796 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
12797 : GIR_EraseFromParent, /*InsnID*/0,
12798 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12799 : // GIR_Coverage, 445,
12800 : GIR_Done,
12801 : // Label 675: @31376
12802 : GIM_Try, /*On fail goto*//*Label 676*/ 31434, // Rule ID 446 //
12803 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
12804 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uqsax,
12805 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12806 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12807 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12808 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
12809 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
12810 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
12811 : // (intrinsic_wo_chain:{ *:[i32] } 1244:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UQSAX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
12812 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UQSAX,
12813 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12814 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12815 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12816 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
12817 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
12818 : GIR_EraseFromParent, /*InsnID*/0,
12819 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12820 : // GIR_Coverage, 446,
12821 : GIR_Done,
12822 : // Label 676: @31434
12823 : GIM_Try, /*On fail goto*//*Label 677*/ 31492, // Rule ID 447 //
12824 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
12825 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uqsub16,
12826 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12827 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12828 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12829 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
12830 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
12831 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
12832 : // (intrinsic_wo_chain:{ *:[i32] } 1245:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UQSUB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
12833 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UQSUB16,
12834 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12835 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12836 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12837 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
12838 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
12839 : GIR_EraseFromParent, /*InsnID*/0,
12840 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12841 : // GIR_Coverage, 447,
12842 : GIR_Done,
12843 : // Label 677: @31492
12844 : GIM_Try, /*On fail goto*//*Label 678*/ 31550, // Rule ID 460 //
12845 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
12846 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_shasx,
12847 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12848 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12849 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12850 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
12851 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
12852 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
12853 : // (intrinsic_wo_chain:{ *:[i32] } 1187:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SHASX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
12854 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SHASX,
12855 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12856 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12857 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12858 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
12859 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
12860 : GIR_EraseFromParent, /*InsnID*/0,
12861 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12862 : // GIR_Coverage, 460,
12863 : GIR_Done,
12864 : // Label 678: @31550
12865 : GIM_Try, /*On fail goto*//*Label 679*/ 31608, // Rule ID 461 //
12866 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
12867 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_shadd16,
12868 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12869 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12870 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12871 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
12872 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
12873 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
12874 : // (intrinsic_wo_chain:{ *:[i32] } 1185:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SHADD16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
12875 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SHADD16,
12876 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12877 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12878 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12879 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
12880 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
12881 : GIR_EraseFromParent, /*InsnID*/0,
12882 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12883 : // GIR_Coverage, 461,
12884 : GIR_Done,
12885 : // Label 679: @31608
12886 : GIM_Try, /*On fail goto*//*Label 680*/ 31666, // Rule ID 462 //
12887 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
12888 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_shadd8,
12889 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12890 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12891 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12892 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
12893 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
12894 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
12895 : // (intrinsic_wo_chain:{ *:[i32] } 1186:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SHADD8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
12896 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SHADD8,
12897 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12898 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12899 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12900 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
12901 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
12902 : GIR_EraseFromParent, /*InsnID*/0,
12903 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12904 : // GIR_Coverage, 462,
12905 : GIR_Done,
12906 : // Label 680: @31666
12907 : GIM_Try, /*On fail goto*//*Label 681*/ 31724, // Rule ID 463 //
12908 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
12909 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_shsax,
12910 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12911 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12912 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12913 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
12914 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
12915 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
12916 : // (intrinsic_wo_chain:{ *:[i32] } 1188:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SHSAX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
12917 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SHSAX,
12918 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12919 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12920 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12921 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
12922 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
12923 : GIR_EraseFromParent, /*InsnID*/0,
12924 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12925 : // GIR_Coverage, 463,
12926 : GIR_Done,
12927 : // Label 681: @31724
12928 : GIM_Try, /*On fail goto*//*Label 682*/ 31782, // Rule ID 464 //
12929 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
12930 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_shsub16,
12931 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12932 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12933 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12934 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
12935 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
12936 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
12937 : // (intrinsic_wo_chain:{ *:[i32] } 1189:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SHSUB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
12938 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SHSUB16,
12939 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12940 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12941 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12942 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
12943 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
12944 : GIR_EraseFromParent, /*InsnID*/0,
12945 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12946 : // GIR_Coverage, 464,
12947 : GIR_Done,
12948 : // Label 682: @31782
12949 : GIM_Try, /*On fail goto*//*Label 683*/ 31840, // Rule ID 465 //
12950 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
12951 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_shsub8,
12952 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12953 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12954 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12955 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
12956 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
12957 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
12958 : // (intrinsic_wo_chain:{ *:[i32] } 1190:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SHSUB8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
12959 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SHSUB8,
12960 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12961 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12962 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12963 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
12964 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
12965 : GIR_EraseFromParent, /*InsnID*/0,
12966 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12967 : // GIR_Coverage, 465,
12968 : GIR_Done,
12969 : // Label 683: @31840
12970 : GIM_Try, /*On fail goto*//*Label 684*/ 31898, // Rule ID 466 //
12971 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
12972 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uhasx,
12973 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12974 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12975 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12976 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
12977 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
12978 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
12979 : // (intrinsic_wo_chain:{ *:[i32] } 1236:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UHASX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
12980 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UHASX,
12981 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
12982 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
12983 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
12984 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
12985 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
12986 : GIR_EraseFromParent, /*InsnID*/0,
12987 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
12988 : // GIR_Coverage, 466,
12989 : GIR_Done,
12990 : // Label 684: @31898
12991 : GIM_Try, /*On fail goto*//*Label 685*/ 31956, // Rule ID 467 //
12992 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
12993 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uhadd16,
12994 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
12995 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
12996 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
12997 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
12998 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
12999 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
13000 : // (intrinsic_wo_chain:{ *:[i32] } 1234:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UHADD16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
13001 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UHADD16,
13002 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
13003 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
13004 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
13005 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
13006 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
13007 : GIR_EraseFromParent, /*InsnID*/0,
13008 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13009 : // GIR_Coverage, 467,
13010 : GIR_Done,
13011 : // Label 685: @31956
13012 : GIM_Try, /*On fail goto*//*Label 686*/ 32014, // Rule ID 468 //
13013 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
13014 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uhadd8,
13015 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
13016 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
13017 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
13018 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
13019 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
13020 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
13021 : // (intrinsic_wo_chain:{ *:[i32] } 1235:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UHADD8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
13022 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UHADD8,
13023 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
13024 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
13025 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
13026 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
13027 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
13028 : GIR_EraseFromParent, /*InsnID*/0,
13029 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13030 : // GIR_Coverage, 468,
13031 : GIR_Done,
13032 : // Label 686: @32014
13033 : GIM_Try, /*On fail goto*//*Label 687*/ 32072, // Rule ID 469 //
13034 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
13035 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uhsax,
13036 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
13037 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
13038 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
13039 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
13040 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
13041 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
13042 : // (intrinsic_wo_chain:{ *:[i32] } 1237:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UHSAX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
13043 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UHSAX,
13044 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
13045 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
13046 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
13047 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
13048 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
13049 : GIR_EraseFromParent, /*InsnID*/0,
13050 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13051 : // GIR_Coverage, 469,
13052 : GIR_Done,
13053 : // Label 687: @32072
13054 : GIM_Try, /*On fail goto*//*Label 688*/ 32130, // Rule ID 470 //
13055 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
13056 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uhsub16,
13057 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
13058 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
13059 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
13060 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
13061 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
13062 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
13063 : // (intrinsic_wo_chain:{ *:[i32] } 1238:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UHSUB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
13064 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UHSUB16,
13065 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
13066 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
13067 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
13068 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
13069 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
13070 : GIR_EraseFromParent, /*InsnID*/0,
13071 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13072 : // GIR_Coverage, 470,
13073 : GIR_Done,
13074 : // Label 688: @32130
13075 : GIM_Try, /*On fail goto*//*Label 689*/ 32188, // Rule ID 471 //
13076 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
13077 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uhsub8,
13078 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
13079 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
13080 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
13081 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
13082 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
13083 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
13084 : // (intrinsic_wo_chain:{ *:[i32] } 1239:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UHSUB8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
13085 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UHSUB8,
13086 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
13087 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
13088 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
13089 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
13090 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
13091 : GIR_EraseFromParent, /*InsnID*/0,
13092 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13093 : // GIR_Coverage, 471,
13094 : GIR_Done,
13095 : // Label 689: @32188
13096 : GIM_Try, /*On fail goto*//*Label 690*/ 32246, // Rule ID 472 //
13097 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
13098 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_usad8,
13099 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
13100 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
13101 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
13102 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
13103 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
13104 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
13105 : // (intrinsic_wo_chain:{ *:[i32] } 1247:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2USAD8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
13106 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2USAD8,
13107 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
13108 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
13109 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
13110 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
13111 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
13112 : GIR_EraseFromParent, /*InsnID*/0,
13113 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13114 : // GIR_Coverage, 472,
13115 : GIR_Done,
13116 : // Label 690: @32246
13117 : GIM_Try, /*On fail goto*//*Label 691*/ 32304, // Rule ID 528 //
13118 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
13119 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smuad,
13120 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
13121 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
13122 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
13123 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
13124 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
13125 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
13126 : // (intrinsic_wo_chain:{ *:[i32] } 1205:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SMUAD:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
13127 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMUAD,
13128 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
13129 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
13130 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
13131 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
13132 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
13133 : GIR_EraseFromParent, /*InsnID*/0,
13134 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13135 : // GIR_Coverage, 528,
13136 : GIR_Done,
13137 : // Label 691: @32304
13138 : GIM_Try, /*On fail goto*//*Label 692*/ 32362, // Rule ID 529 //
13139 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
13140 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smuadx,
13141 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
13142 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
13143 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
13144 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
13145 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
13146 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
13147 : // (intrinsic_wo_chain:{ *:[i32] } 1206:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SMUADX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
13148 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMUADX,
13149 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
13150 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
13151 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
13152 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
13153 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
13154 : GIR_EraseFromParent, /*InsnID*/0,
13155 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13156 : // GIR_Coverage, 529,
13157 : GIR_Done,
13158 : // Label 692: @32362
13159 : GIM_Try, /*On fail goto*//*Label 693*/ 32420, // Rule ID 530 //
13160 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
13161 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smusd,
13162 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
13163 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
13164 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
13165 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
13166 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
13167 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
13168 : // (intrinsic_wo_chain:{ *:[i32] } 1213:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SMUSD:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
13169 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMUSD,
13170 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
13171 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
13172 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
13173 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
13174 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
13175 : GIR_EraseFromParent, /*InsnID*/0,
13176 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13177 : // GIR_Coverage, 530,
13178 : GIR_Done,
13179 : // Label 693: @32420
13180 : GIM_Try, /*On fail goto*//*Label 694*/ 32478, // Rule ID 531 //
13181 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
13182 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smusdx,
13183 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
13184 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
13185 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
13186 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
13187 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
13188 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
13189 : // (intrinsic_wo_chain:{ *:[i32] } 1214:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SMUSDX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
13190 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMUSDX,
13191 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
13192 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
13193 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
13194 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
13195 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
13196 : GIR_EraseFromParent, /*InsnID*/0,
13197 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13198 : // GIR_Coverage, 531,
13199 : GIR_Done,
13200 : // Label 694: @32478
13201 : GIM_Try, /*On fail goto*//*Label 695*/ 32530, // Rule ID 545 //
13202 : GIM_CheckFeatures, GIFBS_HasCRC_HasV8_IsThumb2,
13203 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_crc32b,
13204 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
13205 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
13206 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
13207 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
13208 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
13209 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
13210 : // (intrinsic_wo_chain:{ *:[i32] } 1010:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2CRC32B:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
13211 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2CRC32B,
13212 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
13213 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
13214 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
13215 : GIR_EraseFromParent, /*InsnID*/0,
13216 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13217 : // GIR_Coverage, 545,
13218 : GIR_Done,
13219 : // Label 695: @32530
13220 : GIM_Try, /*On fail goto*//*Label 696*/ 32582, // Rule ID 546 //
13221 : GIM_CheckFeatures, GIFBS_HasCRC_HasV8_IsThumb2,
13222 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_crc32cb,
13223 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
13224 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
13225 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
13226 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
13227 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
13228 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
13229 : // (intrinsic_wo_chain:{ *:[i32] } 1011:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2CRC32CB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
13230 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2CRC32CB,
13231 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
13232 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
13233 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
13234 : GIR_EraseFromParent, /*InsnID*/0,
13235 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13236 : // GIR_Coverage, 546,
13237 : GIR_Done,
13238 : // Label 696: @32582
13239 : GIM_Try, /*On fail goto*//*Label 697*/ 32634, // Rule ID 547 //
13240 : GIM_CheckFeatures, GIFBS_HasCRC_HasV8_IsThumb2,
13241 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_crc32h,
13242 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
13243 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
13244 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
13245 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
13246 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
13247 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
13248 : // (intrinsic_wo_chain:{ *:[i32] } 1014:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2CRC32H:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
13249 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2CRC32H,
13250 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
13251 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
13252 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
13253 : GIR_EraseFromParent, /*InsnID*/0,
13254 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13255 : // GIR_Coverage, 547,
13256 : GIR_Done,
13257 : // Label 697: @32634
13258 : GIM_Try, /*On fail goto*//*Label 698*/ 32686, // Rule ID 548 //
13259 : GIM_CheckFeatures, GIFBS_HasCRC_HasV8_IsThumb2,
13260 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_crc32ch,
13261 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
13262 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
13263 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
13264 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
13265 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
13266 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
13267 : // (intrinsic_wo_chain:{ *:[i32] } 1012:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2CRC32CH:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
13268 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2CRC32CH,
13269 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
13270 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
13271 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
13272 : GIR_EraseFromParent, /*InsnID*/0,
13273 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13274 : // GIR_Coverage, 548,
13275 : GIR_Done,
13276 : // Label 698: @32686
13277 : GIM_Try, /*On fail goto*//*Label 699*/ 32738, // Rule ID 549 //
13278 : GIM_CheckFeatures, GIFBS_HasCRC_HasV8_IsThumb2,
13279 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_crc32w,
13280 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
13281 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
13282 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
13283 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
13284 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
13285 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
13286 : // (intrinsic_wo_chain:{ *:[i32] } 1015:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2CRC32W:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
13287 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2CRC32W,
13288 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
13289 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
13290 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
13291 : GIR_EraseFromParent, /*InsnID*/0,
13292 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13293 : // GIR_Coverage, 549,
13294 : GIR_Done,
13295 : // Label 699: @32738
13296 : GIM_Try, /*On fail goto*//*Label 700*/ 32790, // Rule ID 550 //
13297 : GIM_CheckFeatures, GIFBS_HasCRC_HasV8_IsThumb2,
13298 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_crc32cw,
13299 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
13300 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
13301 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
13302 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
13303 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
13304 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
13305 : // (intrinsic_wo_chain:{ *:[i32] } 1013:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2CRC32CW:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
13306 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2CRC32CW,
13307 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
13308 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
13309 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
13310 : GIR_EraseFromParent, /*InsnID*/0,
13311 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13312 : // GIR_Coverage, 550,
13313 : GIR_Done,
13314 : // Label 700: @32790
13315 : GIM_Try, /*On fail goto*//*Label 701*/ 32848, // Rule ID 778 //
13316 : GIM_CheckFeatures, GIFBS_HasNEON,
13317 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhadds,
13318 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
13319 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
13320 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
13321 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
13322 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
13323 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
13324 : // (intrinsic_wo_chain:{ *:[v4i16] } 1075:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VHADDsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
13325 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHADDsv4i16,
13326 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
13327 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
13328 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
13329 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
13330 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
13331 : GIR_EraseFromParent, /*InsnID*/0,
13332 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13333 : // GIR_Coverage, 778,
13334 : GIR_Done,
13335 : // Label 701: @32848
13336 : GIM_Try, /*On fail goto*//*Label 702*/ 32906, // Rule ID 779 //
13337 : GIM_CheckFeatures, GIFBS_HasNEON,
13338 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhadds,
13339 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
13340 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
13341 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
13342 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
13343 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
13344 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
13345 : // (intrinsic_wo_chain:{ *:[v2i32] } 1075:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VHADDsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
13346 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHADDsv2i32,
13347 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
13348 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
13349 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
13350 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
13351 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
13352 : GIR_EraseFromParent, /*InsnID*/0,
13353 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13354 : // GIR_Coverage, 779,
13355 : GIR_Done,
13356 : // Label 702: @32906
13357 : GIM_Try, /*On fail goto*//*Label 703*/ 32964, // Rule ID 780 //
13358 : GIM_CheckFeatures, GIFBS_HasNEON,
13359 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhadds,
13360 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
13361 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
13362 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
13363 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
13364 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
13365 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
13366 : // (intrinsic_wo_chain:{ *:[v8i16] } 1075:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VHADDsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
13367 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHADDsv8i16,
13368 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
13369 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
13370 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
13371 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
13372 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
13373 : GIR_EraseFromParent, /*InsnID*/0,
13374 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13375 : // GIR_Coverage, 780,
13376 : GIR_Done,
13377 : // Label 703: @32964
13378 : GIM_Try, /*On fail goto*//*Label 704*/ 33022, // Rule ID 781 //
13379 : GIM_CheckFeatures, GIFBS_HasNEON,
13380 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhadds,
13381 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
13382 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
13383 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
13384 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
13385 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
13386 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
13387 : // (intrinsic_wo_chain:{ *:[v4i32] } 1075:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VHADDsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
13388 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHADDsv4i32,
13389 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
13390 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
13391 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
13392 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
13393 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
13394 : GIR_EraseFromParent, /*InsnID*/0,
13395 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13396 : // GIR_Coverage, 781,
13397 : GIR_Done,
13398 : // Label 704: @33022
13399 : GIM_Try, /*On fail goto*//*Label 705*/ 33080, // Rule ID 782 //
13400 : GIM_CheckFeatures, GIFBS_HasNEON,
13401 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhadds,
13402 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
13403 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
13404 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
13405 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
13406 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
13407 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
13408 : // (intrinsic_wo_chain:{ *:[v8i8] } 1075:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VHADDsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
13409 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHADDsv8i8,
13410 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
13411 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
13412 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
13413 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
13414 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
13415 : GIR_EraseFromParent, /*InsnID*/0,
13416 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13417 : // GIR_Coverage, 782,
13418 : GIR_Done,
13419 : // Label 705: @33080
13420 : GIM_Try, /*On fail goto*//*Label 706*/ 33138, // Rule ID 783 //
13421 : GIM_CheckFeatures, GIFBS_HasNEON,
13422 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhadds,
13423 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
13424 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
13425 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
13426 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
13427 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
13428 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
13429 : // (intrinsic_wo_chain:{ *:[v16i8] } 1075:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VHADDsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
13430 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHADDsv16i8,
13431 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
13432 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
13433 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
13434 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
13435 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
13436 : GIR_EraseFromParent, /*InsnID*/0,
13437 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13438 : // GIR_Coverage, 783,
13439 : GIR_Done,
13440 : // Label 706: @33138
13441 : GIM_Try, /*On fail goto*//*Label 707*/ 33196, // Rule ID 784 //
13442 : GIM_CheckFeatures, GIFBS_HasNEON,
13443 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhaddu,
13444 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
13445 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
13446 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
13447 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
13448 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
13449 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
13450 : // (intrinsic_wo_chain:{ *:[v4i16] } 1076:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VHADDuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
13451 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHADDuv4i16,
13452 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
13453 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
13454 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
13455 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
13456 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
13457 : GIR_EraseFromParent, /*InsnID*/0,
13458 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13459 : // GIR_Coverage, 784,
13460 : GIR_Done,
13461 : // Label 707: @33196
13462 : GIM_Try, /*On fail goto*//*Label 708*/ 33254, // Rule ID 785 //
13463 : GIM_CheckFeatures, GIFBS_HasNEON,
13464 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhaddu,
13465 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
13466 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
13467 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
13468 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
13469 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
13470 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
13471 : // (intrinsic_wo_chain:{ *:[v2i32] } 1076:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VHADDuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
13472 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHADDuv2i32,
13473 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
13474 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
13475 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
13476 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
13477 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
13478 : GIR_EraseFromParent, /*InsnID*/0,
13479 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13480 : // GIR_Coverage, 785,
13481 : GIR_Done,
13482 : // Label 708: @33254
13483 : GIM_Try, /*On fail goto*//*Label 709*/ 33312, // Rule ID 786 //
13484 : GIM_CheckFeatures, GIFBS_HasNEON,
13485 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhaddu,
13486 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
13487 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
13488 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
13489 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
13490 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
13491 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
13492 : // (intrinsic_wo_chain:{ *:[v8i16] } 1076:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VHADDuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
13493 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHADDuv8i16,
13494 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
13495 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
13496 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
13497 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
13498 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
13499 : GIR_EraseFromParent, /*InsnID*/0,
13500 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13501 : // GIR_Coverage, 786,
13502 : GIR_Done,
13503 : // Label 709: @33312
13504 : GIM_Try, /*On fail goto*//*Label 710*/ 33370, // Rule ID 787 //
13505 : GIM_CheckFeatures, GIFBS_HasNEON,
13506 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhaddu,
13507 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
13508 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
13509 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
13510 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
13511 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
13512 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
13513 : // (intrinsic_wo_chain:{ *:[v4i32] } 1076:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VHADDuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
13514 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHADDuv4i32,
13515 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
13516 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
13517 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
13518 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
13519 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
13520 : GIR_EraseFromParent, /*InsnID*/0,
13521 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13522 : // GIR_Coverage, 787,
13523 : GIR_Done,
13524 : // Label 710: @33370
13525 : GIM_Try, /*On fail goto*//*Label 711*/ 33428, // Rule ID 788 //
13526 : GIM_CheckFeatures, GIFBS_HasNEON,
13527 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhaddu,
13528 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
13529 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
13530 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
13531 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
13532 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
13533 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
13534 : // (intrinsic_wo_chain:{ *:[v8i8] } 1076:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VHADDuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
13535 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHADDuv8i8,
13536 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
13537 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
13538 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
13539 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
13540 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
13541 : GIR_EraseFromParent, /*InsnID*/0,
13542 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13543 : // GIR_Coverage, 788,
13544 : GIR_Done,
13545 : // Label 711: @33428
13546 : GIM_Try, /*On fail goto*//*Label 712*/ 33486, // Rule ID 789 //
13547 : GIM_CheckFeatures, GIFBS_HasNEON,
13548 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhaddu,
13549 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
13550 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
13551 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
13552 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
13553 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
13554 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
13555 : // (intrinsic_wo_chain:{ *:[v16i8] } 1076:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VHADDuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
13556 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHADDuv16i8,
13557 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
13558 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
13559 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
13560 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
13561 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
13562 : GIR_EraseFromParent, /*InsnID*/0,
13563 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13564 : // GIR_Coverage, 789,
13565 : GIR_Done,
13566 : // Label 712: @33486
13567 : GIM_Try, /*On fail goto*//*Label 713*/ 33544, // Rule ID 790 //
13568 : GIM_CheckFeatures, GIFBS_HasNEON,
13569 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrhadds,
13570 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
13571 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
13572 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
13573 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
13574 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
13575 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
13576 : // (intrinsic_wo_chain:{ *:[v4i16] } 1137:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VRHADDsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
13577 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRHADDsv4i16,
13578 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
13579 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
13580 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
13581 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
13582 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
13583 : GIR_EraseFromParent, /*InsnID*/0,
13584 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13585 : // GIR_Coverage, 790,
13586 : GIR_Done,
13587 : // Label 713: @33544
13588 : GIM_Try, /*On fail goto*//*Label 714*/ 33602, // Rule ID 791 //
13589 : GIM_CheckFeatures, GIFBS_HasNEON,
13590 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrhadds,
13591 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
13592 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
13593 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
13594 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
13595 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
13596 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
13597 : // (intrinsic_wo_chain:{ *:[v2i32] } 1137:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VRHADDsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
13598 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRHADDsv2i32,
13599 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
13600 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
13601 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
13602 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
13603 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
13604 : GIR_EraseFromParent, /*InsnID*/0,
13605 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13606 : // GIR_Coverage, 791,
13607 : GIR_Done,
13608 : // Label 714: @33602
13609 : GIM_Try, /*On fail goto*//*Label 715*/ 33660, // Rule ID 792 //
13610 : GIM_CheckFeatures, GIFBS_HasNEON,
13611 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrhadds,
13612 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
13613 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
13614 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
13615 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
13616 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
13617 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
13618 : // (intrinsic_wo_chain:{ *:[v8i16] } 1137:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VRHADDsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
13619 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRHADDsv8i16,
13620 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
13621 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
13622 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
13623 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
13624 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
13625 : GIR_EraseFromParent, /*InsnID*/0,
13626 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13627 : // GIR_Coverage, 792,
13628 : GIR_Done,
13629 : // Label 715: @33660
13630 : GIM_Try, /*On fail goto*//*Label 716*/ 33718, // Rule ID 793 //
13631 : GIM_CheckFeatures, GIFBS_HasNEON,
13632 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrhadds,
13633 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
13634 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
13635 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
13636 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
13637 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
13638 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
13639 : // (intrinsic_wo_chain:{ *:[v4i32] } 1137:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VRHADDsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
13640 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRHADDsv4i32,
13641 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
13642 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
13643 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
13644 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
13645 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
13646 : GIR_EraseFromParent, /*InsnID*/0,
13647 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13648 : // GIR_Coverage, 793,
13649 : GIR_Done,
13650 : // Label 716: @33718
13651 : GIM_Try, /*On fail goto*//*Label 717*/ 33776, // Rule ID 794 //
13652 : GIM_CheckFeatures, GIFBS_HasNEON,
13653 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrhadds,
13654 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
13655 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
13656 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
13657 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
13658 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
13659 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
13660 : // (intrinsic_wo_chain:{ *:[v8i8] } 1137:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VRHADDsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
13661 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRHADDsv8i8,
13662 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
13663 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
13664 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
13665 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
13666 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
13667 : GIR_EraseFromParent, /*InsnID*/0,
13668 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13669 : // GIR_Coverage, 794,
13670 : GIR_Done,
13671 : // Label 717: @33776
13672 : GIM_Try, /*On fail goto*//*Label 718*/ 33834, // Rule ID 795 //
13673 : GIM_CheckFeatures, GIFBS_HasNEON,
13674 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrhadds,
13675 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
13676 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
13677 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
13678 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
13679 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
13680 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
13681 : // (intrinsic_wo_chain:{ *:[v16i8] } 1137:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VRHADDsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
13682 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRHADDsv16i8,
13683 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
13684 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
13685 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
13686 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
13687 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
13688 : GIR_EraseFromParent, /*InsnID*/0,
13689 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13690 : // GIR_Coverage, 795,
13691 : GIR_Done,
13692 : // Label 718: @33834
13693 : GIM_Try, /*On fail goto*//*Label 719*/ 33892, // Rule ID 796 //
13694 : GIM_CheckFeatures, GIFBS_HasNEON,
13695 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrhaddu,
13696 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
13697 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
13698 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
13699 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
13700 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
13701 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
13702 : // (intrinsic_wo_chain:{ *:[v4i16] } 1138:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VRHADDuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
13703 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRHADDuv4i16,
13704 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
13705 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
13706 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
13707 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
13708 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
13709 : GIR_EraseFromParent, /*InsnID*/0,
13710 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13711 : // GIR_Coverage, 796,
13712 : GIR_Done,
13713 : // Label 719: @33892
13714 : GIM_Try, /*On fail goto*//*Label 720*/ 33950, // Rule ID 797 //
13715 : GIM_CheckFeatures, GIFBS_HasNEON,
13716 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrhaddu,
13717 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
13718 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
13719 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
13720 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
13721 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
13722 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
13723 : // (intrinsic_wo_chain:{ *:[v2i32] } 1138:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VRHADDuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
13724 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRHADDuv2i32,
13725 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
13726 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
13727 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
13728 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
13729 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
13730 : GIR_EraseFromParent, /*InsnID*/0,
13731 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13732 : // GIR_Coverage, 797,
13733 : GIR_Done,
13734 : // Label 720: @33950
13735 : GIM_Try, /*On fail goto*//*Label 721*/ 34008, // Rule ID 798 //
13736 : GIM_CheckFeatures, GIFBS_HasNEON,
13737 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrhaddu,
13738 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
13739 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
13740 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
13741 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
13742 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
13743 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
13744 : // (intrinsic_wo_chain:{ *:[v8i16] } 1138:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VRHADDuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
13745 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRHADDuv8i16,
13746 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
13747 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
13748 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
13749 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
13750 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
13751 : GIR_EraseFromParent, /*InsnID*/0,
13752 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13753 : // GIR_Coverage, 798,
13754 : GIR_Done,
13755 : // Label 721: @34008
13756 : GIM_Try, /*On fail goto*//*Label 722*/ 34066, // Rule ID 799 //
13757 : GIM_CheckFeatures, GIFBS_HasNEON,
13758 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrhaddu,
13759 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
13760 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
13761 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
13762 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
13763 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
13764 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
13765 : // (intrinsic_wo_chain:{ *:[v4i32] } 1138:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VRHADDuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
13766 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRHADDuv4i32,
13767 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
13768 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
13769 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
13770 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
13771 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
13772 : GIR_EraseFromParent, /*InsnID*/0,
13773 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13774 : // GIR_Coverage, 799,
13775 : GIR_Done,
13776 : // Label 722: @34066
13777 : GIM_Try, /*On fail goto*//*Label 723*/ 34124, // Rule ID 800 //
13778 : GIM_CheckFeatures, GIFBS_HasNEON,
13779 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrhaddu,
13780 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
13781 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
13782 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
13783 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
13784 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
13785 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
13786 : // (intrinsic_wo_chain:{ *:[v8i8] } 1138:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VRHADDuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
13787 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRHADDuv8i8,
13788 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
13789 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
13790 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
13791 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
13792 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
13793 : GIR_EraseFromParent, /*InsnID*/0,
13794 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13795 : // GIR_Coverage, 800,
13796 : GIR_Done,
13797 : // Label 723: @34124
13798 : GIM_Try, /*On fail goto*//*Label 724*/ 34182, // Rule ID 801 //
13799 : GIM_CheckFeatures, GIFBS_HasNEON,
13800 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrhaddu,
13801 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
13802 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
13803 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
13804 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
13805 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
13806 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
13807 : // (intrinsic_wo_chain:{ *:[v16i8] } 1138:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VRHADDuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
13808 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRHADDuv16i8,
13809 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
13810 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
13811 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
13812 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
13813 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
13814 : GIR_EraseFromParent, /*InsnID*/0,
13815 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13816 : // GIR_Coverage, 801,
13817 : GIR_Done,
13818 : // Label 724: @34182
13819 : GIM_Try, /*On fail goto*//*Label 725*/ 34240, // Rule ID 802 //
13820 : GIM_CheckFeatures, GIFBS_HasNEON,
13821 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqadds,
13822 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
13823 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
13824 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
13825 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
13826 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
13827 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
13828 : // (intrinsic_wo_chain:{ *:[v4i16] } 1112:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VQADDsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
13829 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQADDsv4i16,
13830 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
13831 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
13832 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
13833 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
13834 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
13835 : GIR_EraseFromParent, /*InsnID*/0,
13836 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13837 : // GIR_Coverage, 802,
13838 : GIR_Done,
13839 : // Label 725: @34240
13840 : GIM_Try, /*On fail goto*//*Label 726*/ 34298, // Rule ID 803 //
13841 : GIM_CheckFeatures, GIFBS_HasNEON,
13842 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqadds,
13843 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
13844 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
13845 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
13846 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
13847 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
13848 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
13849 : // (intrinsic_wo_chain:{ *:[v2i32] } 1112:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VQADDsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
13850 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQADDsv2i32,
13851 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
13852 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
13853 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
13854 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
13855 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
13856 : GIR_EraseFromParent, /*InsnID*/0,
13857 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13858 : // GIR_Coverage, 803,
13859 : GIR_Done,
13860 : // Label 726: @34298
13861 : GIM_Try, /*On fail goto*//*Label 727*/ 34356, // Rule ID 804 //
13862 : GIM_CheckFeatures, GIFBS_HasNEON,
13863 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqadds,
13864 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
13865 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
13866 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
13867 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
13868 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
13869 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
13870 : // (intrinsic_wo_chain:{ *:[v8i16] } 1112:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VQADDsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
13871 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQADDsv8i16,
13872 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
13873 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
13874 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
13875 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
13876 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
13877 : GIR_EraseFromParent, /*InsnID*/0,
13878 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13879 : // GIR_Coverage, 804,
13880 : GIR_Done,
13881 : // Label 727: @34356
13882 : GIM_Try, /*On fail goto*//*Label 728*/ 34414, // Rule ID 805 //
13883 : GIM_CheckFeatures, GIFBS_HasNEON,
13884 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqadds,
13885 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
13886 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
13887 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
13888 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
13889 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
13890 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
13891 : // (intrinsic_wo_chain:{ *:[v4i32] } 1112:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VQADDsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
13892 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQADDsv4i32,
13893 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
13894 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
13895 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
13896 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
13897 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
13898 : GIR_EraseFromParent, /*InsnID*/0,
13899 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13900 : // GIR_Coverage, 805,
13901 : GIR_Done,
13902 : // Label 728: @34414
13903 : GIM_Try, /*On fail goto*//*Label 729*/ 34472, // Rule ID 806 //
13904 : GIM_CheckFeatures, GIFBS_HasNEON,
13905 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqadds,
13906 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
13907 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
13908 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
13909 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
13910 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
13911 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
13912 : // (intrinsic_wo_chain:{ *:[v8i8] } 1112:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VQADDsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
13913 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQADDsv8i8,
13914 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
13915 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
13916 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
13917 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
13918 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
13919 : GIR_EraseFromParent, /*InsnID*/0,
13920 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13921 : // GIR_Coverage, 806,
13922 : GIR_Done,
13923 : // Label 729: @34472
13924 : GIM_Try, /*On fail goto*//*Label 730*/ 34530, // Rule ID 807 //
13925 : GIM_CheckFeatures, GIFBS_HasNEON,
13926 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqadds,
13927 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
13928 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
13929 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
13930 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
13931 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
13932 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
13933 : // (intrinsic_wo_chain:{ *:[v16i8] } 1112:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VQADDsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
13934 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQADDsv16i8,
13935 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
13936 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
13937 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
13938 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
13939 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
13940 : GIR_EraseFromParent, /*InsnID*/0,
13941 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13942 : // GIR_Coverage, 807,
13943 : GIR_Done,
13944 : // Label 730: @34530
13945 : GIM_Try, /*On fail goto*//*Label 731*/ 34588, // Rule ID 808 //
13946 : GIM_CheckFeatures, GIFBS_HasNEON,
13947 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqadds,
13948 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
13949 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
13950 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
13951 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
13952 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
13953 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
13954 : // (intrinsic_wo_chain:{ *:[v1i64] } 1112:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm) => (VQADDsv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
13955 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQADDsv1i64,
13956 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
13957 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
13958 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
13959 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
13960 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
13961 : GIR_EraseFromParent, /*InsnID*/0,
13962 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13963 : // GIR_Coverage, 808,
13964 : GIR_Done,
13965 : // Label 731: @34588
13966 : GIM_Try, /*On fail goto*//*Label 732*/ 34646, // Rule ID 809 //
13967 : GIM_CheckFeatures, GIFBS_HasNEON,
13968 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqadds,
13969 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
13970 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
13971 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
13972 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
13973 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
13974 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
13975 : // (intrinsic_wo_chain:{ *:[v2i64] } 1112:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm) => (VQADDsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
13976 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQADDsv2i64,
13977 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
13978 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
13979 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
13980 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
13981 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
13982 : GIR_EraseFromParent, /*InsnID*/0,
13983 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
13984 : // GIR_Coverage, 809,
13985 : GIR_Done,
13986 : // Label 732: @34646
13987 : GIM_Try, /*On fail goto*//*Label 733*/ 34704, // Rule ID 810 //
13988 : GIM_CheckFeatures, GIFBS_HasNEON,
13989 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqaddu,
13990 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
13991 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
13992 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
13993 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
13994 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
13995 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
13996 : // (intrinsic_wo_chain:{ *:[v4i16] } 1113:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VQADDuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
13997 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQADDuv4i16,
13998 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
13999 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14000 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14001 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14002 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14003 : GIR_EraseFromParent, /*InsnID*/0,
14004 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14005 : // GIR_Coverage, 810,
14006 : GIR_Done,
14007 : // Label 733: @34704
14008 : GIM_Try, /*On fail goto*//*Label 734*/ 34762, // Rule ID 811 //
14009 : GIM_CheckFeatures, GIFBS_HasNEON,
14010 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqaddu,
14011 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
14012 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
14013 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
14014 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
14015 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
14016 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
14017 : // (intrinsic_wo_chain:{ *:[v2i32] } 1113:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VQADDuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
14018 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQADDuv2i32,
14019 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14020 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14021 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14022 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14023 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14024 : GIR_EraseFromParent, /*InsnID*/0,
14025 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14026 : // GIR_Coverage, 811,
14027 : GIR_Done,
14028 : // Label 734: @34762
14029 : GIM_Try, /*On fail goto*//*Label 735*/ 34820, // Rule ID 812 //
14030 : GIM_CheckFeatures, GIFBS_HasNEON,
14031 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqaddu,
14032 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
14033 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
14034 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
14035 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
14036 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
14037 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
14038 : // (intrinsic_wo_chain:{ *:[v8i16] } 1113:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VQADDuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
14039 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQADDuv8i16,
14040 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14041 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14042 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14043 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14044 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14045 : GIR_EraseFromParent, /*InsnID*/0,
14046 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14047 : // GIR_Coverage, 812,
14048 : GIR_Done,
14049 : // Label 735: @34820
14050 : GIM_Try, /*On fail goto*//*Label 736*/ 34878, // Rule ID 813 //
14051 : GIM_CheckFeatures, GIFBS_HasNEON,
14052 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqaddu,
14053 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
14054 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
14055 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
14056 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
14057 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
14058 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
14059 : // (intrinsic_wo_chain:{ *:[v4i32] } 1113:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VQADDuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
14060 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQADDuv4i32,
14061 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14062 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14063 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14064 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14065 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14066 : GIR_EraseFromParent, /*InsnID*/0,
14067 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14068 : // GIR_Coverage, 813,
14069 : GIR_Done,
14070 : // Label 736: @34878
14071 : GIM_Try, /*On fail goto*//*Label 737*/ 34936, // Rule ID 814 //
14072 : GIM_CheckFeatures, GIFBS_HasNEON,
14073 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqaddu,
14074 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
14075 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
14076 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
14077 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
14078 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
14079 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
14080 : // (intrinsic_wo_chain:{ *:[v8i8] } 1113:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VQADDuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
14081 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQADDuv8i8,
14082 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14083 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14084 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14085 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14086 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14087 : GIR_EraseFromParent, /*InsnID*/0,
14088 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14089 : // GIR_Coverage, 814,
14090 : GIR_Done,
14091 : // Label 737: @34936
14092 : GIM_Try, /*On fail goto*//*Label 738*/ 34994, // Rule ID 815 //
14093 : GIM_CheckFeatures, GIFBS_HasNEON,
14094 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqaddu,
14095 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
14096 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
14097 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
14098 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
14099 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
14100 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
14101 : // (intrinsic_wo_chain:{ *:[v16i8] } 1113:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VQADDuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
14102 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQADDuv16i8,
14103 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14104 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14105 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14106 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14107 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14108 : GIR_EraseFromParent, /*InsnID*/0,
14109 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14110 : // GIR_Coverage, 815,
14111 : GIR_Done,
14112 : // Label 738: @34994
14113 : GIM_Try, /*On fail goto*//*Label 739*/ 35052, // Rule ID 816 //
14114 : GIM_CheckFeatures, GIFBS_HasNEON,
14115 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqaddu,
14116 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
14117 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
14118 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
14119 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
14120 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
14121 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
14122 : // (intrinsic_wo_chain:{ *:[v1i64] } 1113:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm) => (VQADDuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
14123 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQADDuv1i64,
14124 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14125 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14126 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14127 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14128 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14129 : GIR_EraseFromParent, /*InsnID*/0,
14130 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14131 : // GIR_Coverage, 816,
14132 : GIR_Done,
14133 : // Label 739: @35052
14134 : GIM_Try, /*On fail goto*//*Label 740*/ 35110, // Rule ID 817 //
14135 : GIM_CheckFeatures, GIFBS_HasNEON,
14136 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqaddu,
14137 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
14138 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
14139 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
14140 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
14141 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
14142 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
14143 : // (intrinsic_wo_chain:{ *:[v2i64] } 1113:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm) => (VQADDuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
14144 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQADDuv2i64,
14145 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14146 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14147 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14148 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14149 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14150 : GIR_EraseFromParent, /*InsnID*/0,
14151 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14152 : // GIR_Coverage, 817,
14153 : GIR_Done,
14154 : // Label 740: @35110
14155 : GIM_Try, /*On fail goto*//*Label 741*/ 35168, // Rule ID 818 //
14156 : GIM_CheckFeatures, GIFBS_HasNEON,
14157 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vraddhn,
14158 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
14159 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
14160 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
14161 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
14162 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
14163 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
14164 : // (intrinsic_wo_chain:{ *:[v8i8] } 1134:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VRADDHNv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
14165 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRADDHNv8i8,
14166 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14167 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14168 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14169 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14170 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14171 : GIR_EraseFromParent, /*InsnID*/0,
14172 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14173 : // GIR_Coverage, 818,
14174 : GIR_Done,
14175 : // Label 741: @35168
14176 : GIM_Try, /*On fail goto*//*Label 742*/ 35226, // Rule ID 819 //
14177 : GIM_CheckFeatures, GIFBS_HasNEON,
14178 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vraddhn,
14179 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
14180 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
14181 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
14182 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
14183 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
14184 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
14185 : // (intrinsic_wo_chain:{ *:[v4i16] } 1134:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VRADDHNv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
14186 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRADDHNv4i16,
14187 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14188 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14189 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14190 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14191 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14192 : GIR_EraseFromParent, /*InsnID*/0,
14193 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14194 : // GIR_Coverage, 819,
14195 : GIR_Done,
14196 : // Label 742: @35226
14197 : GIM_Try, /*On fail goto*//*Label 743*/ 35284, // Rule ID 820 //
14198 : GIM_CheckFeatures, GIFBS_HasNEON,
14199 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vraddhn,
14200 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
14201 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
14202 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
14203 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
14204 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
14205 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
14206 : // (intrinsic_wo_chain:{ *:[v2i32] } 1134:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm) => (VRADDHNv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
14207 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRADDHNv2i32,
14208 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14209 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14210 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14211 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14212 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14213 : GIR_EraseFromParent, /*InsnID*/0,
14214 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14215 : // GIR_Coverage, 820,
14216 : GIR_Done,
14217 : // Label 743: @35284
14218 : GIM_Try, /*On fail goto*//*Label 744*/ 35342, // Rule ID 827 //
14219 : GIM_CheckFeatures, GIFBS_HasNEON,
14220 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vmulp,
14221 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
14222 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
14223 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
14224 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
14225 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
14226 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
14227 : // (intrinsic_wo_chain:{ *:[v8i8] } 1101:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VMULpd:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
14228 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMULpd,
14229 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14230 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14231 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14232 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14233 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14234 : GIR_EraseFromParent, /*InsnID*/0,
14235 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14236 : // GIR_Coverage, 827,
14237 : GIR_Done,
14238 : // Label 744: @35342
14239 : GIM_Try, /*On fail goto*//*Label 745*/ 35400, // Rule ID 828 //
14240 : GIM_CheckFeatures, GIFBS_HasNEON,
14241 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vmulp,
14242 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
14243 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
14244 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
14245 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
14246 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
14247 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
14248 : // (intrinsic_wo_chain:{ *:[v16i8] } 1101:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VMULpq:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
14249 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMULpq,
14250 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14251 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14252 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14253 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14254 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14255 : GIR_EraseFromParent, /*InsnID*/0,
14256 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14257 : // GIR_Coverage, 828,
14258 : GIR_Done,
14259 : // Label 745: @35400
14260 : GIM_Try, /*On fail goto*//*Label 746*/ 35458, // Rule ID 841 //
14261 : GIM_CheckFeatures, GIFBS_HasNEON,
14262 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqdmulh,
14263 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
14264 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
14265 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
14266 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
14267 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
14268 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
14269 : // (intrinsic_wo_chain:{ *:[v4i16] } 1114:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VQDMULHv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
14270 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQDMULHv4i16,
14271 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14272 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14273 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14274 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14275 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14276 : GIR_EraseFromParent, /*InsnID*/0,
14277 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14278 : // GIR_Coverage, 841,
14279 : GIR_Done,
14280 : // Label 746: @35458
14281 : GIM_Try, /*On fail goto*//*Label 747*/ 35516, // Rule ID 842 //
14282 : GIM_CheckFeatures, GIFBS_HasNEON,
14283 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqdmulh,
14284 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
14285 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
14286 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
14287 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
14288 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
14289 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
14290 : // (intrinsic_wo_chain:{ *:[v2i32] } 1114:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VQDMULHv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
14291 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQDMULHv2i32,
14292 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14293 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14294 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14295 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14296 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14297 : GIR_EraseFromParent, /*InsnID*/0,
14298 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14299 : // GIR_Coverage, 842,
14300 : GIR_Done,
14301 : // Label 747: @35516
14302 : GIM_Try, /*On fail goto*//*Label 748*/ 35574, // Rule ID 843 //
14303 : GIM_CheckFeatures, GIFBS_HasNEON,
14304 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqdmulh,
14305 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
14306 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
14307 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
14308 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
14309 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
14310 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
14311 : // (intrinsic_wo_chain:{ *:[v8i16] } 1114:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VQDMULHv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
14312 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQDMULHv8i16,
14313 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14314 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14315 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14316 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14317 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14318 : GIR_EraseFromParent, /*InsnID*/0,
14319 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14320 : // GIR_Coverage, 843,
14321 : GIR_Done,
14322 : // Label 748: @35574
14323 : GIM_Try, /*On fail goto*//*Label 749*/ 35632, // Rule ID 844 //
14324 : GIM_CheckFeatures, GIFBS_HasNEON,
14325 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqdmulh,
14326 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
14327 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
14328 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
14329 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
14330 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
14331 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
14332 : // (intrinsic_wo_chain:{ *:[v4i32] } 1114:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VQDMULHv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
14333 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQDMULHv4i32,
14334 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14335 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14336 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14337 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14338 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14339 : GIR_EraseFromParent, /*InsnID*/0,
14340 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14341 : // GIR_Coverage, 844,
14342 : GIR_Done,
14343 : // Label 749: @35632
14344 : GIM_Try, /*On fail goto*//*Label 750*/ 35690, // Rule ID 849 //
14345 : GIM_CheckFeatures, GIFBS_HasNEON,
14346 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrdmulh,
14347 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
14348 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
14349 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
14350 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
14351 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
14352 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
14353 : // (intrinsic_wo_chain:{ *:[v4i16] } 1120:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VQRDMULHv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
14354 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRDMULHv4i16,
14355 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14356 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14357 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14358 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14359 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14360 : GIR_EraseFromParent, /*InsnID*/0,
14361 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14362 : // GIR_Coverage, 849,
14363 : GIR_Done,
14364 : // Label 750: @35690
14365 : GIM_Try, /*On fail goto*//*Label 751*/ 35748, // Rule ID 850 //
14366 : GIM_CheckFeatures, GIFBS_HasNEON,
14367 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrdmulh,
14368 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
14369 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
14370 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
14371 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
14372 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
14373 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
14374 : // (intrinsic_wo_chain:{ *:[v2i32] } 1120:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VQRDMULHv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
14375 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRDMULHv2i32,
14376 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14377 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14378 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14379 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14380 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14381 : GIR_EraseFromParent, /*InsnID*/0,
14382 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14383 : // GIR_Coverage, 850,
14384 : GIR_Done,
14385 : // Label 751: @35748
14386 : GIM_Try, /*On fail goto*//*Label 752*/ 35806, // Rule ID 851 //
14387 : GIM_CheckFeatures, GIFBS_HasNEON,
14388 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrdmulh,
14389 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
14390 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
14391 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
14392 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
14393 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
14394 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
14395 : // (intrinsic_wo_chain:{ *:[v8i16] } 1120:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VQRDMULHv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
14396 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRDMULHv8i16,
14397 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14398 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14399 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14400 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14401 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14402 : GIR_EraseFromParent, /*InsnID*/0,
14403 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14404 : // GIR_Coverage, 851,
14405 : GIR_Done,
14406 : // Label 752: @35806
14407 : GIM_Try, /*On fail goto*//*Label 753*/ 35864, // Rule ID 852 //
14408 : GIM_CheckFeatures, GIFBS_HasNEON,
14409 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrdmulh,
14410 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
14411 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
14412 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
14413 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
14414 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
14415 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
14416 : // (intrinsic_wo_chain:{ *:[v4i32] } 1120:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VQRDMULHv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
14417 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRDMULHv4i32,
14418 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14419 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14420 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14421 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14422 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14423 : GIR_EraseFromParent, /*InsnID*/0,
14424 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14425 : // GIR_Coverage, 852,
14426 : GIR_Done,
14427 : // Label 753: @35864
14428 : GIM_Try, /*On fail goto*//*Label 754*/ 35922, // Rule ID 863 //
14429 : GIM_CheckFeatures, GIFBS_HasNEON,
14430 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vmullp,
14431 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
14432 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
14433 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
14434 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
14435 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
14436 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
14437 : // (intrinsic_wo_chain:{ *:[v8i16] } 1098:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VMULLp8:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
14438 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMULLp8,
14439 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14440 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14441 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14442 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14443 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14444 : GIR_EraseFromParent, /*InsnID*/0,
14445 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14446 : // GIR_Coverage, 863,
14447 : GIR_Done,
14448 : // Label 754: @35922
14449 : GIM_Try, /*On fail goto*//*Label 755*/ 35974, // Rule ID 864 //
14450 : GIM_CheckFeatures, GIFBS_HasCrypto_HasV8,
14451 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vmullp,
14452 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
14453 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
14454 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
14455 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
14456 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
14457 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
14458 : // (intrinsic_wo_chain:{ *:[v2i64] } 1098:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm) => (VMULLp64:{ *:[v2i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
14459 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMULLp64,
14460 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14461 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14462 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14463 : GIR_EraseFromParent, /*InsnID*/0,
14464 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14465 : // GIR_Coverage, 864,
14466 : GIR_Done,
14467 : // Label 755: @35974
14468 : GIM_Try, /*On fail goto*//*Label 756*/ 36032, // Rule ID 869 //
14469 : GIM_CheckFeatures, GIFBS_HasNEON,
14470 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqdmull,
14471 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
14472 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
14473 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
14474 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
14475 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
14476 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
14477 : // (intrinsic_wo_chain:{ *:[v4i32] } 1115:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VQDMULLv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
14478 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQDMULLv4i32,
14479 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14480 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14481 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14482 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14483 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14484 : GIR_EraseFromParent, /*InsnID*/0,
14485 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14486 : // GIR_Coverage, 869,
14487 : GIR_Done,
14488 : // Label 756: @36032
14489 : GIM_Try, /*On fail goto*//*Label 757*/ 36090, // Rule ID 870 //
14490 : GIM_CheckFeatures, GIFBS_HasNEON,
14491 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqdmull,
14492 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
14493 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
14494 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
14495 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
14496 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
14497 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
14498 : // (intrinsic_wo_chain:{ *:[v2i64] } 1115:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VQDMULLv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
14499 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQDMULLv2i64,
14500 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14501 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14502 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14503 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14504 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14505 : GIR_EraseFromParent, /*InsnID*/0,
14506 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14507 : // GIR_Coverage, 870,
14508 : GIR_Done,
14509 : // Label 757: @36090
14510 : GIM_Try, /*On fail goto*//*Label 758*/ 36148, // Rule ID 965 //
14511 : GIM_CheckFeatures, GIFBS_HasNEON,
14512 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhsubs,
14513 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
14514 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
14515 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
14516 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
14517 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
14518 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
14519 : // (intrinsic_wo_chain:{ *:[v4i16] } 1077:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VHSUBsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
14520 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHSUBsv4i16,
14521 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14522 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14523 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14524 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14525 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14526 : GIR_EraseFromParent, /*InsnID*/0,
14527 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14528 : // GIR_Coverage, 965,
14529 : GIR_Done,
14530 : // Label 758: @36148
14531 : GIM_Try, /*On fail goto*//*Label 759*/ 36206, // Rule ID 966 //
14532 : GIM_CheckFeatures, GIFBS_HasNEON,
14533 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhsubs,
14534 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
14535 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
14536 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
14537 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
14538 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
14539 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
14540 : // (intrinsic_wo_chain:{ *:[v2i32] } 1077:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VHSUBsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
14541 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHSUBsv2i32,
14542 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14543 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14544 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14545 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14546 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14547 : GIR_EraseFromParent, /*InsnID*/0,
14548 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14549 : // GIR_Coverage, 966,
14550 : GIR_Done,
14551 : // Label 759: @36206
14552 : GIM_Try, /*On fail goto*//*Label 760*/ 36264, // Rule ID 967 //
14553 : GIM_CheckFeatures, GIFBS_HasNEON,
14554 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhsubs,
14555 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
14556 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
14557 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
14558 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
14559 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
14560 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
14561 : // (intrinsic_wo_chain:{ *:[v8i16] } 1077:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VHSUBsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
14562 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHSUBsv8i16,
14563 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14564 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14565 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14566 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14567 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14568 : GIR_EraseFromParent, /*InsnID*/0,
14569 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14570 : // GIR_Coverage, 967,
14571 : GIR_Done,
14572 : // Label 760: @36264
14573 : GIM_Try, /*On fail goto*//*Label 761*/ 36322, // Rule ID 968 //
14574 : GIM_CheckFeatures, GIFBS_HasNEON,
14575 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhsubs,
14576 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
14577 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
14578 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
14579 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
14580 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
14581 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
14582 : // (intrinsic_wo_chain:{ *:[v4i32] } 1077:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VHSUBsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
14583 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHSUBsv4i32,
14584 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14585 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14586 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14587 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14588 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14589 : GIR_EraseFromParent, /*InsnID*/0,
14590 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14591 : // GIR_Coverage, 968,
14592 : GIR_Done,
14593 : // Label 761: @36322
14594 : GIM_Try, /*On fail goto*//*Label 762*/ 36380, // Rule ID 969 //
14595 : GIM_CheckFeatures, GIFBS_HasNEON,
14596 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhsubs,
14597 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
14598 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
14599 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
14600 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
14601 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
14602 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
14603 : // (intrinsic_wo_chain:{ *:[v8i8] } 1077:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VHSUBsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
14604 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHSUBsv8i8,
14605 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14606 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14607 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14608 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14609 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14610 : GIR_EraseFromParent, /*InsnID*/0,
14611 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14612 : // GIR_Coverage, 969,
14613 : GIR_Done,
14614 : // Label 762: @36380
14615 : GIM_Try, /*On fail goto*//*Label 763*/ 36438, // Rule ID 970 //
14616 : GIM_CheckFeatures, GIFBS_HasNEON,
14617 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhsubs,
14618 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
14619 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
14620 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
14621 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
14622 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
14623 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
14624 : // (intrinsic_wo_chain:{ *:[v16i8] } 1077:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VHSUBsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
14625 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHSUBsv16i8,
14626 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14627 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14628 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14629 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14630 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14631 : GIR_EraseFromParent, /*InsnID*/0,
14632 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14633 : // GIR_Coverage, 970,
14634 : GIR_Done,
14635 : // Label 763: @36438
14636 : GIM_Try, /*On fail goto*//*Label 764*/ 36496, // Rule ID 971 //
14637 : GIM_CheckFeatures, GIFBS_HasNEON,
14638 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhsubu,
14639 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
14640 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
14641 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
14642 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
14643 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
14644 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
14645 : // (intrinsic_wo_chain:{ *:[v4i16] } 1078:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VHSUBuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
14646 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHSUBuv4i16,
14647 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14648 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14649 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14650 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14651 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14652 : GIR_EraseFromParent, /*InsnID*/0,
14653 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14654 : // GIR_Coverage, 971,
14655 : GIR_Done,
14656 : // Label 764: @36496
14657 : GIM_Try, /*On fail goto*//*Label 765*/ 36554, // Rule ID 972 //
14658 : GIM_CheckFeatures, GIFBS_HasNEON,
14659 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhsubu,
14660 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
14661 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
14662 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
14663 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
14664 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
14665 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
14666 : // (intrinsic_wo_chain:{ *:[v2i32] } 1078:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VHSUBuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
14667 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHSUBuv2i32,
14668 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14669 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14670 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14671 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14672 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14673 : GIR_EraseFromParent, /*InsnID*/0,
14674 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14675 : // GIR_Coverage, 972,
14676 : GIR_Done,
14677 : // Label 765: @36554
14678 : GIM_Try, /*On fail goto*//*Label 766*/ 36612, // Rule ID 973 //
14679 : GIM_CheckFeatures, GIFBS_HasNEON,
14680 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhsubu,
14681 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
14682 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
14683 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
14684 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
14685 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
14686 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
14687 : // (intrinsic_wo_chain:{ *:[v8i16] } 1078:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VHSUBuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
14688 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHSUBuv8i16,
14689 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14690 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14691 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14692 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14693 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14694 : GIR_EraseFromParent, /*InsnID*/0,
14695 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14696 : // GIR_Coverage, 973,
14697 : GIR_Done,
14698 : // Label 766: @36612
14699 : GIM_Try, /*On fail goto*//*Label 767*/ 36670, // Rule ID 974 //
14700 : GIM_CheckFeatures, GIFBS_HasNEON,
14701 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhsubu,
14702 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
14703 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
14704 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
14705 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
14706 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
14707 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
14708 : // (intrinsic_wo_chain:{ *:[v4i32] } 1078:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VHSUBuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
14709 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHSUBuv4i32,
14710 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14711 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14712 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14713 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14714 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14715 : GIR_EraseFromParent, /*InsnID*/0,
14716 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14717 : // GIR_Coverage, 974,
14718 : GIR_Done,
14719 : // Label 767: @36670
14720 : GIM_Try, /*On fail goto*//*Label 768*/ 36728, // Rule ID 975 //
14721 : GIM_CheckFeatures, GIFBS_HasNEON,
14722 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhsubu,
14723 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
14724 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
14725 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
14726 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
14727 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
14728 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
14729 : // (intrinsic_wo_chain:{ *:[v8i8] } 1078:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VHSUBuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
14730 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHSUBuv8i8,
14731 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14732 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14733 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14734 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14735 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14736 : GIR_EraseFromParent, /*InsnID*/0,
14737 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14738 : // GIR_Coverage, 975,
14739 : GIR_Done,
14740 : // Label 768: @36728
14741 : GIM_Try, /*On fail goto*//*Label 769*/ 36786, // Rule ID 976 //
14742 : GIM_CheckFeatures, GIFBS_HasNEON,
14743 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhsubu,
14744 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
14745 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
14746 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
14747 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
14748 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
14749 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
14750 : // (intrinsic_wo_chain:{ *:[v16i8] } 1078:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VHSUBuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
14751 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHSUBuv16i8,
14752 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14753 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14754 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14755 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14756 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14757 : GIR_EraseFromParent, /*InsnID*/0,
14758 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14759 : // GIR_Coverage, 976,
14760 : GIR_Done,
14761 : // Label 769: @36786
14762 : GIM_Try, /*On fail goto*//*Label 770*/ 36844, // Rule ID 977 //
14763 : GIM_CheckFeatures, GIFBS_HasNEON,
14764 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqsubs,
14765 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
14766 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
14767 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
14768 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
14769 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
14770 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
14771 : // (intrinsic_wo_chain:{ *:[v4i16] } 1132:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VQSUBsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
14772 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSUBsv4i16,
14773 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14774 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14775 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14776 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14777 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14778 : GIR_EraseFromParent, /*InsnID*/0,
14779 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14780 : // GIR_Coverage, 977,
14781 : GIR_Done,
14782 : // Label 770: @36844
14783 : GIM_Try, /*On fail goto*//*Label 771*/ 36902, // Rule ID 978 //
14784 : GIM_CheckFeatures, GIFBS_HasNEON,
14785 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqsubs,
14786 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
14787 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
14788 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
14789 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
14790 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
14791 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
14792 : // (intrinsic_wo_chain:{ *:[v2i32] } 1132:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VQSUBsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
14793 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSUBsv2i32,
14794 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14795 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14796 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14797 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14798 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14799 : GIR_EraseFromParent, /*InsnID*/0,
14800 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14801 : // GIR_Coverage, 978,
14802 : GIR_Done,
14803 : // Label 771: @36902
14804 : GIM_Try, /*On fail goto*//*Label 772*/ 36960, // Rule ID 979 //
14805 : GIM_CheckFeatures, GIFBS_HasNEON,
14806 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqsubs,
14807 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
14808 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
14809 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
14810 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
14811 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
14812 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
14813 : // (intrinsic_wo_chain:{ *:[v8i16] } 1132:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VQSUBsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
14814 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSUBsv8i16,
14815 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14816 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14817 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14818 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14819 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14820 : GIR_EraseFromParent, /*InsnID*/0,
14821 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14822 : // GIR_Coverage, 979,
14823 : GIR_Done,
14824 : // Label 772: @36960
14825 : GIM_Try, /*On fail goto*//*Label 773*/ 37018, // Rule ID 980 //
14826 : GIM_CheckFeatures, GIFBS_HasNEON,
14827 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqsubs,
14828 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
14829 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
14830 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
14831 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
14832 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
14833 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
14834 : // (intrinsic_wo_chain:{ *:[v4i32] } 1132:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VQSUBsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
14835 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSUBsv4i32,
14836 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14837 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14838 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14839 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14840 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14841 : GIR_EraseFromParent, /*InsnID*/0,
14842 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14843 : // GIR_Coverage, 980,
14844 : GIR_Done,
14845 : // Label 773: @37018
14846 : GIM_Try, /*On fail goto*//*Label 774*/ 37076, // Rule ID 981 //
14847 : GIM_CheckFeatures, GIFBS_HasNEON,
14848 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqsubs,
14849 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
14850 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
14851 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
14852 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
14853 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
14854 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
14855 : // (intrinsic_wo_chain:{ *:[v8i8] } 1132:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VQSUBsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
14856 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSUBsv8i8,
14857 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14858 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14859 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14860 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14861 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14862 : GIR_EraseFromParent, /*InsnID*/0,
14863 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14864 : // GIR_Coverage, 981,
14865 : GIR_Done,
14866 : // Label 774: @37076
14867 : GIM_Try, /*On fail goto*//*Label 775*/ 37134, // Rule ID 982 //
14868 : GIM_CheckFeatures, GIFBS_HasNEON,
14869 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqsubs,
14870 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
14871 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
14872 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
14873 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
14874 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
14875 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
14876 : // (intrinsic_wo_chain:{ *:[v16i8] } 1132:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VQSUBsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
14877 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSUBsv16i8,
14878 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14879 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14880 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14881 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14882 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14883 : GIR_EraseFromParent, /*InsnID*/0,
14884 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14885 : // GIR_Coverage, 982,
14886 : GIR_Done,
14887 : // Label 775: @37134
14888 : GIM_Try, /*On fail goto*//*Label 776*/ 37192, // Rule ID 983 //
14889 : GIM_CheckFeatures, GIFBS_HasNEON,
14890 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqsubs,
14891 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
14892 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
14893 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
14894 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
14895 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
14896 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
14897 : // (intrinsic_wo_chain:{ *:[v1i64] } 1132:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm) => (VQSUBsv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
14898 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSUBsv1i64,
14899 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14900 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14901 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14902 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14903 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14904 : GIR_EraseFromParent, /*InsnID*/0,
14905 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14906 : // GIR_Coverage, 983,
14907 : GIR_Done,
14908 : // Label 776: @37192
14909 : GIM_Try, /*On fail goto*//*Label 777*/ 37250, // Rule ID 984 //
14910 : GIM_CheckFeatures, GIFBS_HasNEON,
14911 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqsubs,
14912 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
14913 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
14914 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
14915 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
14916 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
14917 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
14918 : // (intrinsic_wo_chain:{ *:[v2i64] } 1132:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm) => (VQSUBsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
14919 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSUBsv2i64,
14920 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14921 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14922 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14923 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14924 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14925 : GIR_EraseFromParent, /*InsnID*/0,
14926 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14927 : // GIR_Coverage, 984,
14928 : GIR_Done,
14929 : // Label 777: @37250
14930 : GIM_Try, /*On fail goto*//*Label 778*/ 37308, // Rule ID 985 //
14931 : GIM_CheckFeatures, GIFBS_HasNEON,
14932 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqsubu,
14933 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
14934 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
14935 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
14936 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
14937 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
14938 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
14939 : // (intrinsic_wo_chain:{ *:[v4i16] } 1133:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VQSUBuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
14940 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSUBuv4i16,
14941 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14942 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14943 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14944 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14945 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14946 : GIR_EraseFromParent, /*InsnID*/0,
14947 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14948 : // GIR_Coverage, 985,
14949 : GIR_Done,
14950 : // Label 778: @37308
14951 : GIM_Try, /*On fail goto*//*Label 779*/ 37366, // Rule ID 986 //
14952 : GIM_CheckFeatures, GIFBS_HasNEON,
14953 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqsubu,
14954 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
14955 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
14956 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
14957 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
14958 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
14959 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
14960 : // (intrinsic_wo_chain:{ *:[v2i32] } 1133:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VQSUBuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
14961 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSUBuv2i32,
14962 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14963 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14964 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14965 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14966 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14967 : GIR_EraseFromParent, /*InsnID*/0,
14968 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14969 : // GIR_Coverage, 986,
14970 : GIR_Done,
14971 : // Label 779: @37366
14972 : GIM_Try, /*On fail goto*//*Label 780*/ 37424, // Rule ID 987 //
14973 : GIM_CheckFeatures, GIFBS_HasNEON,
14974 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqsubu,
14975 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
14976 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
14977 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
14978 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
14979 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
14980 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
14981 : // (intrinsic_wo_chain:{ *:[v8i16] } 1133:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VQSUBuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
14982 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSUBuv8i16,
14983 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
14984 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
14985 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
14986 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
14987 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
14988 : GIR_EraseFromParent, /*InsnID*/0,
14989 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
14990 : // GIR_Coverage, 987,
14991 : GIR_Done,
14992 : // Label 780: @37424
14993 : GIM_Try, /*On fail goto*//*Label 781*/ 37482, // Rule ID 988 //
14994 : GIM_CheckFeatures, GIFBS_HasNEON,
14995 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqsubu,
14996 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
14997 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
14998 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
14999 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
15000 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
15001 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
15002 : // (intrinsic_wo_chain:{ *:[v4i32] } 1133:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VQSUBuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
15003 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSUBuv4i32,
15004 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15005 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
15006 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15007 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15008 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15009 : GIR_EraseFromParent, /*InsnID*/0,
15010 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15011 : // GIR_Coverage, 988,
15012 : GIR_Done,
15013 : // Label 781: @37482
15014 : GIM_Try, /*On fail goto*//*Label 782*/ 37540, // Rule ID 989 //
15015 : GIM_CheckFeatures, GIFBS_HasNEON,
15016 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqsubu,
15017 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
15018 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
15019 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
15020 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
15021 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
15022 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
15023 : // (intrinsic_wo_chain:{ *:[v8i8] } 1133:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VQSUBuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
15024 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSUBuv8i8,
15025 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15026 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
15027 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15028 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15029 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15030 : GIR_EraseFromParent, /*InsnID*/0,
15031 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15032 : // GIR_Coverage, 989,
15033 : GIR_Done,
15034 : // Label 782: @37540
15035 : GIM_Try, /*On fail goto*//*Label 783*/ 37598, // Rule ID 990 //
15036 : GIM_CheckFeatures, GIFBS_HasNEON,
15037 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqsubu,
15038 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
15039 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
15040 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
15041 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
15042 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
15043 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
15044 : // (intrinsic_wo_chain:{ *:[v16i8] } 1133:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VQSUBuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
15045 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSUBuv16i8,
15046 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15047 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
15048 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15049 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15050 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15051 : GIR_EraseFromParent, /*InsnID*/0,
15052 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15053 : // GIR_Coverage, 990,
15054 : GIR_Done,
15055 : // Label 783: @37598
15056 : GIM_Try, /*On fail goto*//*Label 784*/ 37656, // Rule ID 991 //
15057 : GIM_CheckFeatures, GIFBS_HasNEON,
15058 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqsubu,
15059 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
15060 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
15061 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
15062 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
15063 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
15064 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
15065 : // (intrinsic_wo_chain:{ *:[v1i64] } 1133:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm) => (VQSUBuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
15066 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSUBuv1i64,
15067 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15068 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
15069 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15070 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15071 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15072 : GIR_EraseFromParent, /*InsnID*/0,
15073 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15074 : // GIR_Coverage, 991,
15075 : GIR_Done,
15076 : // Label 784: @37656
15077 : GIM_Try, /*On fail goto*//*Label 785*/ 37714, // Rule ID 992 //
15078 : GIM_CheckFeatures, GIFBS_HasNEON,
15079 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqsubu,
15080 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
15081 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
15082 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
15083 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
15084 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
15085 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
15086 : // (intrinsic_wo_chain:{ *:[v2i64] } 1133:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm) => (VQSUBuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
15087 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSUBuv2i64,
15088 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15089 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
15090 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15091 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15092 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15093 : GIR_EraseFromParent, /*InsnID*/0,
15094 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15095 : // GIR_Coverage, 992,
15096 : GIR_Done,
15097 : // Label 785: @37714
15098 : GIM_Try, /*On fail goto*//*Label 786*/ 37772, // Rule ID 993 //
15099 : GIM_CheckFeatures, GIFBS_HasNEON,
15100 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrsubhn,
15101 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
15102 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
15103 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
15104 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
15105 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
15106 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
15107 : // (intrinsic_wo_chain:{ *:[v8i8] } 1150:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VRSUBHNv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
15108 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSUBHNv8i8,
15109 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15110 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
15111 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15112 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15113 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15114 : GIR_EraseFromParent, /*InsnID*/0,
15115 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15116 : // GIR_Coverage, 993,
15117 : GIR_Done,
15118 : // Label 786: @37772
15119 : GIM_Try, /*On fail goto*//*Label 787*/ 37830, // Rule ID 994 //
15120 : GIM_CheckFeatures, GIFBS_HasNEON,
15121 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrsubhn,
15122 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
15123 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
15124 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
15125 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
15126 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
15127 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
15128 : // (intrinsic_wo_chain:{ *:[v4i16] } 1150:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VRSUBHNv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
15129 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSUBHNv4i16,
15130 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15131 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
15132 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15133 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15134 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15135 : GIR_EraseFromParent, /*InsnID*/0,
15136 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15137 : // GIR_Coverage, 994,
15138 : GIR_Done,
15139 : // Label 787: @37830
15140 : GIM_Try, /*On fail goto*//*Label 788*/ 37888, // Rule ID 995 //
15141 : GIM_CheckFeatures, GIFBS_HasNEON,
15142 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrsubhn,
15143 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
15144 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
15145 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
15146 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
15147 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
15148 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
15149 : // (intrinsic_wo_chain:{ *:[v2i32] } 1150:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm) => (VRSUBHNv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
15150 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSUBHNv2i32,
15151 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15152 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
15153 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15154 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15155 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15156 : GIR_EraseFromParent, /*InsnID*/0,
15157 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15158 : // GIR_Coverage, 995,
15159 : GIR_Done,
15160 : // Label 788: @37888
15161 : GIM_Try, /*On fail goto*//*Label 789*/ 37946, // Rule ID 1088 //
15162 : GIM_CheckFeatures, GIFBS_HasNEON,
15163 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vacge,
15164 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
15165 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
15166 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
15167 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
15168 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
15169 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
15170 : // (intrinsic_wo_chain:{ *:[v2i32] } 1057:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) => (VACGEfd:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
15171 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VACGEfd,
15172 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15173 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
15174 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15175 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15176 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15177 : GIR_EraseFromParent, /*InsnID*/0,
15178 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15179 : // GIR_Coverage, 1088,
15180 : GIR_Done,
15181 : // Label 789: @37946
15182 : GIM_Try, /*On fail goto*//*Label 790*/ 38004, // Rule ID 1089 //
15183 : GIM_CheckFeatures, GIFBS_HasNEON,
15184 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vacge,
15185 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
15186 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
15187 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
15188 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
15189 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
15190 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
15191 : // (intrinsic_wo_chain:{ *:[v4i32] } 1057:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) => (VACGEfq:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
15192 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VACGEfq,
15193 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15194 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
15195 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15196 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15197 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15198 : GIR_EraseFromParent, /*InsnID*/0,
15199 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15200 : // GIR_Coverage, 1089,
15201 : GIR_Done,
15202 : // Label 790: @38004
15203 : GIM_Try, /*On fail goto*//*Label 791*/ 38062, // Rule ID 1090 //
15204 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
15205 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vacge,
15206 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
15207 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
15208 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
15209 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
15210 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
15211 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
15212 : // (intrinsic_wo_chain:{ *:[v4i16] } 1057:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) => (VACGEhd:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
15213 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VACGEhd,
15214 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15215 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
15216 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15217 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15218 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15219 : GIR_EraseFromParent, /*InsnID*/0,
15220 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15221 : // GIR_Coverage, 1090,
15222 : GIR_Done,
15223 : // Label 791: @38062
15224 : GIM_Try, /*On fail goto*//*Label 792*/ 38120, // Rule ID 1091 //
15225 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
15226 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vacge,
15227 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
15228 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
15229 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
15230 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
15231 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
15232 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
15233 : // (intrinsic_wo_chain:{ *:[v8i16] } 1057:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) => (VACGEhq:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
15234 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VACGEhq,
15235 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15236 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
15237 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15238 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15239 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15240 : GIR_EraseFromParent, /*InsnID*/0,
15241 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15242 : // GIR_Coverage, 1091,
15243 : GIR_Done,
15244 : // Label 792: @38120
15245 : GIM_Try, /*On fail goto*//*Label 793*/ 38178, // Rule ID 1092 //
15246 : GIM_CheckFeatures, GIFBS_HasNEON,
15247 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vacgt,
15248 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
15249 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
15250 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
15251 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
15252 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
15253 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
15254 : // (intrinsic_wo_chain:{ *:[v2i32] } 1058:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) => (VACGTfd:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
15255 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VACGTfd,
15256 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15257 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
15258 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15259 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15260 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15261 : GIR_EraseFromParent, /*InsnID*/0,
15262 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15263 : // GIR_Coverage, 1092,
15264 : GIR_Done,
15265 : // Label 793: @38178
15266 : GIM_Try, /*On fail goto*//*Label 794*/ 38236, // Rule ID 1093 //
15267 : GIM_CheckFeatures, GIFBS_HasNEON,
15268 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vacgt,
15269 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
15270 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
15271 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
15272 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
15273 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
15274 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
15275 : // (intrinsic_wo_chain:{ *:[v4i32] } 1058:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) => (VACGTfq:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
15276 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VACGTfq,
15277 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15278 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
15279 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15280 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15281 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15282 : GIR_EraseFromParent, /*InsnID*/0,
15283 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15284 : // GIR_Coverage, 1093,
15285 : GIR_Done,
15286 : // Label 794: @38236
15287 : GIM_Try, /*On fail goto*//*Label 795*/ 38294, // Rule ID 1094 //
15288 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
15289 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vacgt,
15290 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
15291 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
15292 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
15293 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
15294 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
15295 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
15296 : // (intrinsic_wo_chain:{ *:[v4i16] } 1058:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) => (VACGThd:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
15297 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VACGThd,
15298 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15299 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
15300 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15301 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15302 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15303 : GIR_EraseFromParent, /*InsnID*/0,
15304 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15305 : // GIR_Coverage, 1094,
15306 : GIR_Done,
15307 : // Label 795: @38294
15308 : GIM_Try, /*On fail goto*//*Label 796*/ 38352, // Rule ID 1095 //
15309 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
15310 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vacgt,
15311 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
15312 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
15313 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
15314 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
15315 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
15316 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
15317 : // (intrinsic_wo_chain:{ *:[v8i16] } 1058:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) => (VACGThq:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
15318 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VACGThq,
15319 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15320 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
15321 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15322 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15323 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15324 : GIR_EraseFromParent, /*InsnID*/0,
15325 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15326 : // GIR_Coverage, 1095,
15327 : GIR_Done,
15328 : // Label 796: @38352
15329 : GIM_Try, /*On fail goto*//*Label 797*/ 38410, // Rule ID 1128 //
15330 : GIM_CheckFeatures, GIFBS_HasNEON,
15331 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vabds,
15332 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
15333 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
15334 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
15335 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
15336 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
15337 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
15338 : // (intrinsic_wo_chain:{ *:[v4i16] } 1054:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VABDsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
15339 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDsv4i16,
15340 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15341 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
15342 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15343 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15344 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15345 : GIR_EraseFromParent, /*InsnID*/0,
15346 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15347 : // GIR_Coverage, 1128,
15348 : GIR_Done,
15349 : // Label 797: @38410
15350 : GIM_Try, /*On fail goto*//*Label 798*/ 38468, // Rule ID 1129 //
15351 : GIM_CheckFeatures, GIFBS_HasNEON,
15352 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vabds,
15353 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
15354 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
15355 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
15356 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
15357 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
15358 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
15359 : // (intrinsic_wo_chain:{ *:[v2i32] } 1054:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VABDsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
15360 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDsv2i32,
15361 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15362 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
15363 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15364 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15365 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15366 : GIR_EraseFromParent, /*InsnID*/0,
15367 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15368 : // GIR_Coverage, 1129,
15369 : GIR_Done,
15370 : // Label 798: @38468
15371 : GIM_Try, /*On fail goto*//*Label 799*/ 38526, // Rule ID 1130 //
15372 : GIM_CheckFeatures, GIFBS_HasNEON,
15373 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vabds,
15374 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
15375 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
15376 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
15377 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
15378 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
15379 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
15380 : // (intrinsic_wo_chain:{ *:[v8i16] } 1054:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VABDsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
15381 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDsv8i16,
15382 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15383 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
15384 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15385 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15386 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15387 : GIR_EraseFromParent, /*InsnID*/0,
15388 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15389 : // GIR_Coverage, 1130,
15390 : GIR_Done,
15391 : // Label 799: @38526
15392 : GIM_Try, /*On fail goto*//*Label 800*/ 38584, // Rule ID 1131 //
15393 : GIM_CheckFeatures, GIFBS_HasNEON,
15394 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vabds,
15395 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
15396 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
15397 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
15398 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
15399 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
15400 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
15401 : // (intrinsic_wo_chain:{ *:[v4i32] } 1054:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VABDsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
15402 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDsv4i32,
15403 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15404 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
15405 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15406 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15407 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15408 : GIR_EraseFromParent, /*InsnID*/0,
15409 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15410 : // GIR_Coverage, 1131,
15411 : GIR_Done,
15412 : // Label 800: @38584
15413 : GIM_Try, /*On fail goto*//*Label 801*/ 38642, // Rule ID 1132 //
15414 : GIM_CheckFeatures, GIFBS_HasNEON,
15415 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vabds,
15416 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
15417 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
15418 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
15419 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
15420 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
15421 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
15422 : // (intrinsic_wo_chain:{ *:[v8i8] } 1054:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VABDsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
15423 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDsv8i8,
15424 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15425 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
15426 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15427 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15428 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15429 : GIR_EraseFromParent, /*InsnID*/0,
15430 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15431 : // GIR_Coverage, 1132,
15432 : GIR_Done,
15433 : // Label 801: @38642
15434 : GIM_Try, /*On fail goto*//*Label 802*/ 38700, // Rule ID 1133 //
15435 : GIM_CheckFeatures, GIFBS_HasNEON,
15436 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vabds,
15437 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
15438 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
15439 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
15440 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
15441 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
15442 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
15443 : // (intrinsic_wo_chain:{ *:[v16i8] } 1054:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VABDsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
15444 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDsv16i8,
15445 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15446 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
15447 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15448 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15449 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15450 : GIR_EraseFromParent, /*InsnID*/0,
15451 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15452 : // GIR_Coverage, 1133,
15453 : GIR_Done,
15454 : // Label 802: @38700
15455 : GIM_Try, /*On fail goto*//*Label 803*/ 38758, // Rule ID 1134 //
15456 : GIM_CheckFeatures, GIFBS_HasNEON,
15457 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vabdu,
15458 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
15459 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
15460 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
15461 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
15462 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
15463 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
15464 : // (intrinsic_wo_chain:{ *:[v4i16] } 1055:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VABDuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
15465 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDuv4i16,
15466 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15467 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
15468 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15469 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15470 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15471 : GIR_EraseFromParent, /*InsnID*/0,
15472 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15473 : // GIR_Coverage, 1134,
15474 : GIR_Done,
15475 : // Label 803: @38758
15476 : GIM_Try, /*On fail goto*//*Label 804*/ 38816, // Rule ID 1135 //
15477 : GIM_CheckFeatures, GIFBS_HasNEON,
15478 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vabdu,
15479 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
15480 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
15481 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
15482 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
15483 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
15484 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
15485 : // (intrinsic_wo_chain:{ *:[v2i32] } 1055:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VABDuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
15486 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDuv2i32,
15487 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15488 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
15489 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15490 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15491 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15492 : GIR_EraseFromParent, /*InsnID*/0,
15493 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15494 : // GIR_Coverage, 1135,
15495 : GIR_Done,
15496 : // Label 804: @38816
15497 : GIM_Try, /*On fail goto*//*Label 805*/ 38874, // Rule ID 1136 //
15498 : GIM_CheckFeatures, GIFBS_HasNEON,
15499 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vabdu,
15500 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
15501 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
15502 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
15503 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
15504 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
15505 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
15506 : // (intrinsic_wo_chain:{ *:[v8i16] } 1055:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VABDuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
15507 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDuv8i16,
15508 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15509 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
15510 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15511 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15512 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15513 : GIR_EraseFromParent, /*InsnID*/0,
15514 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15515 : // GIR_Coverage, 1136,
15516 : GIR_Done,
15517 : // Label 805: @38874
15518 : GIM_Try, /*On fail goto*//*Label 806*/ 38932, // Rule ID 1137 //
15519 : GIM_CheckFeatures, GIFBS_HasNEON,
15520 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vabdu,
15521 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
15522 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
15523 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
15524 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
15525 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
15526 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
15527 : // (intrinsic_wo_chain:{ *:[v4i32] } 1055:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VABDuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
15528 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDuv4i32,
15529 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15530 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
15531 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15532 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15533 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15534 : GIR_EraseFromParent, /*InsnID*/0,
15535 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15536 : // GIR_Coverage, 1137,
15537 : GIR_Done,
15538 : // Label 806: @38932
15539 : GIM_Try, /*On fail goto*//*Label 807*/ 38990, // Rule ID 1138 //
15540 : GIM_CheckFeatures, GIFBS_HasNEON,
15541 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vabdu,
15542 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
15543 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
15544 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
15545 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
15546 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
15547 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
15548 : // (intrinsic_wo_chain:{ *:[v8i8] } 1055:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VABDuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
15549 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDuv8i8,
15550 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15551 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
15552 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15553 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15554 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15555 : GIR_EraseFromParent, /*InsnID*/0,
15556 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15557 : // GIR_Coverage, 1138,
15558 : GIR_Done,
15559 : // Label 807: @38990
15560 : GIM_Try, /*On fail goto*//*Label 808*/ 39048, // Rule ID 1139 //
15561 : GIM_CheckFeatures, GIFBS_HasNEON,
15562 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vabdu,
15563 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
15564 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
15565 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
15566 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
15567 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
15568 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
15569 : // (intrinsic_wo_chain:{ *:[v16i8] } 1055:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VABDuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
15570 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDuv16i8,
15571 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15572 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
15573 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15574 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15575 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15576 : GIR_EraseFromParent, /*InsnID*/0,
15577 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15578 : // GIR_Coverage, 1139,
15579 : GIR_Done,
15580 : // Label 808: @39048
15581 : GIM_Try, /*On fail goto*//*Label 809*/ 39106, // Rule ID 1140 //
15582 : GIM_CheckFeatures, GIFBS_HasNEON,
15583 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vabds,
15584 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
15585 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
15586 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
15587 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
15588 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
15589 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
15590 : // (intrinsic_wo_chain:{ *:[v2f32] } 1054:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) => (VABDfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
15591 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDfd,
15592 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15593 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
15594 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15595 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15596 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15597 : GIR_EraseFromParent, /*InsnID*/0,
15598 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15599 : // GIR_Coverage, 1140,
15600 : GIR_Done,
15601 : // Label 809: @39106
15602 : GIM_Try, /*On fail goto*//*Label 810*/ 39164, // Rule ID 1141 //
15603 : GIM_CheckFeatures, GIFBS_HasNEON,
15604 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vabds,
15605 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
15606 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
15607 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
15608 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
15609 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
15610 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
15611 : // (intrinsic_wo_chain:{ *:[v4f32] } 1054:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) => (VABDfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
15612 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDfq,
15613 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15614 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
15615 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15616 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15617 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15618 : GIR_EraseFromParent, /*InsnID*/0,
15619 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15620 : // GIR_Coverage, 1141,
15621 : GIR_Done,
15622 : // Label 810: @39164
15623 : GIM_Try, /*On fail goto*//*Label 811*/ 39222, // Rule ID 1142 //
15624 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
15625 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vabds,
15626 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
15627 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
15628 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
15629 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
15630 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
15631 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
15632 : // (intrinsic_wo_chain:{ *:[v4f16] } 1054:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) => (VABDhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
15633 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDhd,
15634 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15635 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
15636 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15637 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15638 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15639 : GIR_EraseFromParent, /*InsnID*/0,
15640 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15641 : // GIR_Coverage, 1142,
15642 : GIR_Done,
15643 : // Label 811: @39222
15644 : GIM_Try, /*On fail goto*//*Label 812*/ 39280, // Rule ID 1143 //
15645 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
15646 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vabds,
15647 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
15648 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
15649 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
15650 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
15651 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
15652 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
15653 : // (intrinsic_wo_chain:{ *:[v8f16] } 1054:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) => (VABDhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
15654 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDhq,
15655 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15656 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
15657 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15658 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15659 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15660 : GIR_EraseFromParent, /*InsnID*/0,
15661 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15662 : // GIR_Coverage, 1143,
15663 : GIR_Done,
15664 : // Label 812: @39280
15665 : GIM_Try, /*On fail goto*//*Label 813*/ 39338, // Rule ID 1208 //
15666 : GIM_CheckFeatures, GIFBS_HasNEON,
15667 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpadd,
15668 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
15669 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
15670 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
15671 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
15672 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
15673 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
15674 : // (intrinsic_wo_chain:{ *:[v8i8] } 1104:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VPADDi8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
15675 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADDi8,
15676 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15677 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
15678 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15679 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15680 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15681 : GIR_EraseFromParent, /*InsnID*/0,
15682 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15683 : // GIR_Coverage, 1208,
15684 : GIR_Done,
15685 : // Label 813: @39338
15686 : GIM_Try, /*On fail goto*//*Label 814*/ 39396, // Rule ID 1209 //
15687 : GIM_CheckFeatures, GIFBS_HasNEON,
15688 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpadd,
15689 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
15690 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
15691 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
15692 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
15693 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
15694 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
15695 : // (intrinsic_wo_chain:{ *:[v4i16] } 1104:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VPADDi16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
15696 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADDi16,
15697 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15698 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
15699 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15700 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15701 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15702 : GIR_EraseFromParent, /*InsnID*/0,
15703 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15704 : // GIR_Coverage, 1209,
15705 : GIR_Done,
15706 : // Label 814: @39396
15707 : GIM_Try, /*On fail goto*//*Label 815*/ 39454, // Rule ID 1210 //
15708 : GIM_CheckFeatures, GIFBS_HasNEON,
15709 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpadd,
15710 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
15711 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
15712 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
15713 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
15714 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
15715 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
15716 : // (intrinsic_wo_chain:{ *:[v2i32] } 1104:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VPADDi32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
15717 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADDi32,
15718 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15719 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
15720 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15721 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15722 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15723 : GIR_EraseFromParent, /*InsnID*/0,
15724 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15725 : // GIR_Coverage, 1210,
15726 : GIR_Done,
15727 : // Label 815: @39454
15728 : GIM_Try, /*On fail goto*//*Label 816*/ 39512, // Rule ID 1211 //
15729 : GIM_CheckFeatures, GIFBS_HasNEON,
15730 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpadd,
15731 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
15732 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
15733 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
15734 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
15735 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
15736 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
15737 : // (intrinsic_wo_chain:{ *:[v2f32] } 1104:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) => (VPADDf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
15738 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADDf,
15739 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15740 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
15741 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15742 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15743 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15744 : GIR_EraseFromParent, /*InsnID*/0,
15745 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15746 : // GIR_Coverage, 1211,
15747 : GIR_Done,
15748 : // Label 816: @39512
15749 : GIM_Try, /*On fail goto*//*Label 817*/ 39570, // Rule ID 1212 //
15750 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
15751 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpadd,
15752 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
15753 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
15754 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
15755 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
15756 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
15757 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
15758 : // (intrinsic_wo_chain:{ *:[v4f16] } 1104:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) => (VPADDh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
15759 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADDh,
15760 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15761 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
15762 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15763 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15764 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15765 : GIR_EraseFromParent, /*InsnID*/0,
15766 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15767 : // GIR_Coverage, 1212,
15768 : GIR_Done,
15769 : // Label 817: @39570
15770 : GIM_Try, /*On fail goto*//*Label 818*/ 39628, // Rule ID 1225 //
15771 : GIM_CheckFeatures, GIFBS_HasNEON,
15772 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpadals,
15773 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
15774 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
15775 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
15776 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
15777 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
15778 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
15779 : // (intrinsic_wo_chain:{ *:[v4i16] } 1102:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v8i8] }:$Vm) => (VPADALsv8i8:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v8i8] }:$Vm)
15780 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADALsv8i8,
15781 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15782 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
15783 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15784 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15785 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15786 : GIR_EraseFromParent, /*InsnID*/0,
15787 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15788 : // GIR_Coverage, 1225,
15789 : GIR_Done,
15790 : // Label 818: @39628
15791 : GIM_Try, /*On fail goto*//*Label 819*/ 39686, // Rule ID 1226 //
15792 : GIM_CheckFeatures, GIFBS_HasNEON,
15793 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpadals,
15794 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
15795 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
15796 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
15797 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
15798 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
15799 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
15800 : // (intrinsic_wo_chain:{ *:[v2i32] } 1102:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v4i16] }:$Vm) => (VPADALsv4i16:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v4i16] }:$Vm)
15801 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADALsv4i16,
15802 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15803 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
15804 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15805 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15806 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15807 : GIR_EraseFromParent, /*InsnID*/0,
15808 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15809 : // GIR_Coverage, 1226,
15810 : GIR_Done,
15811 : // Label 819: @39686
15812 : GIM_Try, /*On fail goto*//*Label 820*/ 39744, // Rule ID 1227 //
15813 : GIM_CheckFeatures, GIFBS_HasNEON,
15814 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpadals,
15815 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
15816 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
15817 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
15818 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
15819 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
15820 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
15821 : // (intrinsic_wo_chain:{ *:[v1i64] } 1102:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v2i32] }:$Vm) => (VPADALsv2i32:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v2i32] }:$Vm)
15822 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADALsv2i32,
15823 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15824 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
15825 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15826 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15827 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15828 : GIR_EraseFromParent, /*InsnID*/0,
15829 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15830 : // GIR_Coverage, 1227,
15831 : GIR_Done,
15832 : // Label 820: @39744
15833 : GIM_Try, /*On fail goto*//*Label 821*/ 39802, // Rule ID 1228 //
15834 : GIM_CheckFeatures, GIFBS_HasNEON,
15835 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpadals,
15836 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
15837 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
15838 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
15839 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
15840 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
15841 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
15842 : // (intrinsic_wo_chain:{ *:[v8i16] } 1102:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v16i8] }:$Vm) => (VPADALsv16i8:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v16i8] }:$Vm)
15843 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADALsv16i8,
15844 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15845 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
15846 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15847 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15848 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15849 : GIR_EraseFromParent, /*InsnID*/0,
15850 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15851 : // GIR_Coverage, 1228,
15852 : GIR_Done,
15853 : // Label 821: @39802
15854 : GIM_Try, /*On fail goto*//*Label 822*/ 39860, // Rule ID 1229 //
15855 : GIM_CheckFeatures, GIFBS_HasNEON,
15856 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpadals,
15857 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
15858 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
15859 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
15860 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
15861 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
15862 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
15863 : // (intrinsic_wo_chain:{ *:[v4i32] } 1102:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v8i16] }:$Vm) => (VPADALsv8i16:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v8i16] }:$Vm)
15864 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADALsv8i16,
15865 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15866 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
15867 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15868 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15869 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15870 : GIR_EraseFromParent, /*InsnID*/0,
15871 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15872 : // GIR_Coverage, 1229,
15873 : GIR_Done,
15874 : // Label 822: @39860
15875 : GIM_Try, /*On fail goto*//*Label 823*/ 39918, // Rule ID 1230 //
15876 : GIM_CheckFeatures, GIFBS_HasNEON,
15877 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpadals,
15878 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
15879 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
15880 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
15881 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
15882 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
15883 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
15884 : // (intrinsic_wo_chain:{ *:[v2i64] } 1102:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v4i32] }:$Vm) => (VPADALsv4i32:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v4i32] }:$Vm)
15885 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADALsv4i32,
15886 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15887 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
15888 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15889 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15890 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15891 : GIR_EraseFromParent, /*InsnID*/0,
15892 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15893 : // GIR_Coverage, 1230,
15894 : GIR_Done,
15895 : // Label 823: @39918
15896 : GIM_Try, /*On fail goto*//*Label 824*/ 39976, // Rule ID 1231 //
15897 : GIM_CheckFeatures, GIFBS_HasNEON,
15898 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpadalu,
15899 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
15900 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
15901 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
15902 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
15903 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
15904 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
15905 : // (intrinsic_wo_chain:{ *:[v4i16] } 1103:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v8i8] }:$Vm) => (VPADALuv8i8:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v8i8] }:$Vm)
15906 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADALuv8i8,
15907 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15908 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
15909 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15910 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15911 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15912 : GIR_EraseFromParent, /*InsnID*/0,
15913 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15914 : // GIR_Coverage, 1231,
15915 : GIR_Done,
15916 : // Label 824: @39976
15917 : GIM_Try, /*On fail goto*//*Label 825*/ 40034, // Rule ID 1232 //
15918 : GIM_CheckFeatures, GIFBS_HasNEON,
15919 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpadalu,
15920 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
15921 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
15922 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
15923 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
15924 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
15925 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
15926 : // (intrinsic_wo_chain:{ *:[v2i32] } 1103:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v4i16] }:$Vm) => (VPADALuv4i16:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v4i16] }:$Vm)
15927 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADALuv4i16,
15928 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15929 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
15930 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15931 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15932 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15933 : GIR_EraseFromParent, /*InsnID*/0,
15934 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15935 : // GIR_Coverage, 1232,
15936 : GIR_Done,
15937 : // Label 825: @40034
15938 : GIM_Try, /*On fail goto*//*Label 826*/ 40092, // Rule ID 1233 //
15939 : GIM_CheckFeatures, GIFBS_HasNEON,
15940 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpadalu,
15941 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
15942 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
15943 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
15944 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
15945 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
15946 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
15947 : // (intrinsic_wo_chain:{ *:[v1i64] } 1103:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v2i32] }:$Vm) => (VPADALuv2i32:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v2i32] }:$Vm)
15948 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADALuv2i32,
15949 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15950 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
15951 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15952 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15953 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15954 : GIR_EraseFromParent, /*InsnID*/0,
15955 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15956 : // GIR_Coverage, 1233,
15957 : GIR_Done,
15958 : // Label 826: @40092
15959 : GIM_Try, /*On fail goto*//*Label 827*/ 40150, // Rule ID 1234 //
15960 : GIM_CheckFeatures, GIFBS_HasNEON,
15961 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpadalu,
15962 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
15963 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
15964 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
15965 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
15966 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
15967 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
15968 : // (intrinsic_wo_chain:{ *:[v8i16] } 1103:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v16i8] }:$Vm) => (VPADALuv16i8:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v16i8] }:$Vm)
15969 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADALuv16i8,
15970 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15971 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
15972 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15973 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15974 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15975 : GIR_EraseFromParent, /*InsnID*/0,
15976 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15977 : // GIR_Coverage, 1234,
15978 : GIR_Done,
15979 : // Label 827: @40150
15980 : GIM_Try, /*On fail goto*//*Label 828*/ 40208, // Rule ID 1235 //
15981 : GIM_CheckFeatures, GIFBS_HasNEON,
15982 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpadalu,
15983 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
15984 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
15985 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
15986 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
15987 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
15988 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
15989 : // (intrinsic_wo_chain:{ *:[v4i32] } 1103:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v8i16] }:$Vm) => (VPADALuv8i16:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v8i16] }:$Vm)
15990 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADALuv8i16,
15991 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
15992 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
15993 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
15994 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
15995 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
15996 : GIR_EraseFromParent, /*InsnID*/0,
15997 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
15998 : // GIR_Coverage, 1235,
15999 : GIR_Done,
16000 : // Label 828: @40208
16001 : GIM_Try, /*On fail goto*//*Label 829*/ 40266, // Rule ID 1236 //
16002 : GIM_CheckFeatures, GIFBS_HasNEON,
16003 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpadalu,
16004 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
16005 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
16006 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
16007 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
16008 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
16009 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
16010 : // (intrinsic_wo_chain:{ *:[v2i64] } 1103:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v4i32] }:$Vm) => (VPADALuv4i32:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v4i32] }:$Vm)
16011 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADALuv4i32,
16012 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16013 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
16014 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
16015 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16016 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16017 : GIR_EraseFromParent, /*InsnID*/0,
16018 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16019 : // GIR_Coverage, 1236,
16020 : GIR_Done,
16021 : // Label 829: @40266
16022 : GIM_Try, /*On fail goto*//*Label 830*/ 40324, // Rule ID 1237 //
16023 : GIM_CheckFeatures, GIFBS_HasNEON,
16024 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpmaxs,
16025 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
16026 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
16027 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
16028 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
16029 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
16030 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
16031 : // (intrinsic_wo_chain:{ *:[v8i8] } 1107:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VPMAXs8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
16032 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPMAXs8,
16033 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16034 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
16035 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
16036 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16037 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16038 : GIR_EraseFromParent, /*InsnID*/0,
16039 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16040 : // GIR_Coverage, 1237,
16041 : GIR_Done,
16042 : // Label 830: @40324
16043 : GIM_Try, /*On fail goto*//*Label 831*/ 40382, // Rule ID 1238 //
16044 : GIM_CheckFeatures, GIFBS_HasNEON,
16045 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpmaxs,
16046 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
16047 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
16048 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
16049 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
16050 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
16051 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
16052 : // (intrinsic_wo_chain:{ *:[v4i16] } 1107:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VPMAXs16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
16053 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPMAXs16,
16054 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16055 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
16056 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
16057 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16058 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16059 : GIR_EraseFromParent, /*InsnID*/0,
16060 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16061 : // GIR_Coverage, 1238,
16062 : GIR_Done,
16063 : // Label 831: @40382
16064 : GIM_Try, /*On fail goto*//*Label 832*/ 40440, // Rule ID 1239 //
16065 : GIM_CheckFeatures, GIFBS_HasNEON,
16066 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpmaxs,
16067 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
16068 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
16069 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
16070 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
16071 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
16072 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
16073 : // (intrinsic_wo_chain:{ *:[v2i32] } 1107:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VPMAXs32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
16074 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPMAXs32,
16075 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16076 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
16077 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
16078 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16079 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16080 : GIR_EraseFromParent, /*InsnID*/0,
16081 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16082 : // GIR_Coverage, 1239,
16083 : GIR_Done,
16084 : // Label 832: @40440
16085 : GIM_Try, /*On fail goto*//*Label 833*/ 40498, // Rule ID 1240 //
16086 : GIM_CheckFeatures, GIFBS_HasNEON,
16087 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpmaxu,
16088 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
16089 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
16090 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
16091 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
16092 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
16093 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
16094 : // (intrinsic_wo_chain:{ *:[v8i8] } 1108:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VPMAXu8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
16095 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPMAXu8,
16096 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16097 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
16098 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
16099 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16100 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16101 : GIR_EraseFromParent, /*InsnID*/0,
16102 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16103 : // GIR_Coverage, 1240,
16104 : GIR_Done,
16105 : // Label 833: @40498
16106 : GIM_Try, /*On fail goto*//*Label 834*/ 40556, // Rule ID 1241 //
16107 : GIM_CheckFeatures, GIFBS_HasNEON,
16108 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpmaxu,
16109 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
16110 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
16111 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
16112 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
16113 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
16114 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
16115 : // (intrinsic_wo_chain:{ *:[v4i16] } 1108:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VPMAXu16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
16116 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPMAXu16,
16117 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16118 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
16119 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
16120 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16121 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16122 : GIR_EraseFromParent, /*InsnID*/0,
16123 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16124 : // GIR_Coverage, 1241,
16125 : GIR_Done,
16126 : // Label 834: @40556
16127 : GIM_Try, /*On fail goto*//*Label 835*/ 40614, // Rule ID 1242 //
16128 : GIM_CheckFeatures, GIFBS_HasNEON,
16129 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpmaxu,
16130 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
16131 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
16132 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
16133 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
16134 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
16135 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
16136 : // (intrinsic_wo_chain:{ *:[v2i32] } 1108:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VPMAXu32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
16137 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPMAXu32,
16138 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16139 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
16140 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
16141 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16142 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16143 : GIR_EraseFromParent, /*InsnID*/0,
16144 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16145 : // GIR_Coverage, 1242,
16146 : GIR_Done,
16147 : // Label 835: @40614
16148 : GIM_Try, /*On fail goto*//*Label 836*/ 40672, // Rule ID 1243 //
16149 : GIM_CheckFeatures, GIFBS_HasNEON,
16150 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpmaxs,
16151 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
16152 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
16153 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
16154 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
16155 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
16156 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
16157 : // (intrinsic_wo_chain:{ *:[v2f32] } 1107:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) => (VPMAXf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
16158 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPMAXf,
16159 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16160 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
16161 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
16162 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16163 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16164 : GIR_EraseFromParent, /*InsnID*/0,
16165 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16166 : // GIR_Coverage, 1243,
16167 : GIR_Done,
16168 : // Label 836: @40672
16169 : GIM_Try, /*On fail goto*//*Label 837*/ 40730, // Rule ID 1244 //
16170 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
16171 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpmaxs,
16172 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
16173 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
16174 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
16175 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
16176 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
16177 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
16178 : // (intrinsic_wo_chain:{ *:[v4f16] } 1107:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) => (VPMAXh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
16179 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPMAXh,
16180 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16181 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
16182 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
16183 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16184 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16185 : GIR_EraseFromParent, /*InsnID*/0,
16186 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16187 : // GIR_Coverage, 1244,
16188 : GIR_Done,
16189 : // Label 837: @40730
16190 : GIM_Try, /*On fail goto*//*Label 838*/ 40788, // Rule ID 1245 //
16191 : GIM_CheckFeatures, GIFBS_HasNEON,
16192 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpmins,
16193 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
16194 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
16195 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
16196 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
16197 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
16198 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
16199 : // (intrinsic_wo_chain:{ *:[v8i8] } 1109:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VPMINs8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
16200 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPMINs8,
16201 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16202 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
16203 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
16204 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16205 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16206 : GIR_EraseFromParent, /*InsnID*/0,
16207 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16208 : // GIR_Coverage, 1245,
16209 : GIR_Done,
16210 : // Label 838: @40788
16211 : GIM_Try, /*On fail goto*//*Label 839*/ 40846, // Rule ID 1246 //
16212 : GIM_CheckFeatures, GIFBS_HasNEON,
16213 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpmins,
16214 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
16215 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
16216 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
16217 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
16218 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
16219 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
16220 : // (intrinsic_wo_chain:{ *:[v4i16] } 1109:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VPMINs16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
16221 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPMINs16,
16222 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16223 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
16224 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
16225 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16226 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16227 : GIR_EraseFromParent, /*InsnID*/0,
16228 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16229 : // GIR_Coverage, 1246,
16230 : GIR_Done,
16231 : // Label 839: @40846
16232 : GIM_Try, /*On fail goto*//*Label 840*/ 40904, // Rule ID 1247 //
16233 : GIM_CheckFeatures, GIFBS_HasNEON,
16234 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpmins,
16235 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
16236 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
16237 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
16238 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
16239 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
16240 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
16241 : // (intrinsic_wo_chain:{ *:[v2i32] } 1109:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VPMINs32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
16242 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPMINs32,
16243 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16244 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
16245 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
16246 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16247 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16248 : GIR_EraseFromParent, /*InsnID*/0,
16249 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16250 : // GIR_Coverage, 1247,
16251 : GIR_Done,
16252 : // Label 840: @40904
16253 : GIM_Try, /*On fail goto*//*Label 841*/ 40962, // Rule ID 1248 //
16254 : GIM_CheckFeatures, GIFBS_HasNEON,
16255 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpminu,
16256 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
16257 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
16258 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
16259 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
16260 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
16261 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
16262 : // (intrinsic_wo_chain:{ *:[v8i8] } 1110:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VPMINu8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
16263 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPMINu8,
16264 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16265 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
16266 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
16267 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16268 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16269 : GIR_EraseFromParent, /*InsnID*/0,
16270 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16271 : // GIR_Coverage, 1248,
16272 : GIR_Done,
16273 : // Label 841: @40962
16274 : GIM_Try, /*On fail goto*//*Label 842*/ 41020, // Rule ID 1249 //
16275 : GIM_CheckFeatures, GIFBS_HasNEON,
16276 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpminu,
16277 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
16278 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
16279 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
16280 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
16281 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
16282 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
16283 : // (intrinsic_wo_chain:{ *:[v4i16] } 1110:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VPMINu16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
16284 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPMINu16,
16285 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16286 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
16287 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
16288 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16289 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16290 : GIR_EraseFromParent, /*InsnID*/0,
16291 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16292 : // GIR_Coverage, 1249,
16293 : GIR_Done,
16294 : // Label 842: @41020
16295 : GIM_Try, /*On fail goto*//*Label 843*/ 41078, // Rule ID 1250 //
16296 : GIM_CheckFeatures, GIFBS_HasNEON,
16297 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpminu,
16298 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
16299 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
16300 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
16301 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
16302 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
16303 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
16304 : // (intrinsic_wo_chain:{ *:[v2i32] } 1110:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VPMINu32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
16305 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPMINu32,
16306 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16307 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
16308 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
16309 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16310 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16311 : GIR_EraseFromParent, /*InsnID*/0,
16312 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16313 : // GIR_Coverage, 1250,
16314 : GIR_Done,
16315 : // Label 843: @41078
16316 : GIM_Try, /*On fail goto*//*Label 844*/ 41136, // Rule ID 1251 //
16317 : GIM_CheckFeatures, GIFBS_HasNEON,
16318 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpmins,
16319 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
16320 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
16321 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
16322 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
16323 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
16324 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
16325 : // (intrinsic_wo_chain:{ *:[v2f32] } 1109:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) => (VPMINf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
16326 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPMINf,
16327 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16328 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
16329 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
16330 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16331 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16332 : GIR_EraseFromParent, /*InsnID*/0,
16333 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16334 : // GIR_Coverage, 1251,
16335 : GIR_Done,
16336 : // Label 844: @41136
16337 : GIM_Try, /*On fail goto*//*Label 845*/ 41194, // Rule ID 1252 //
16338 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
16339 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpmins,
16340 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
16341 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
16342 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
16343 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
16344 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
16345 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
16346 : // (intrinsic_wo_chain:{ *:[v4f16] } 1109:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) => (VPMINh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
16347 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPMINh,
16348 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16349 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
16350 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
16351 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16352 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16353 : GIR_EraseFromParent, /*InsnID*/0,
16354 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16355 : // GIR_Coverage, 1252,
16356 : GIR_Done,
16357 : // Label 845: @41194
16358 : GIM_Try, /*On fail goto*//*Label 846*/ 41252, // Rule ID 1259 //
16359 : GIM_CheckFeatures, GIFBS_HasNEON,
16360 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrecps,
16361 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
16362 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
16363 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
16364 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
16365 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
16366 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
16367 : // (intrinsic_wo_chain:{ *:[v2f32] } 1136:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) => (VRECPSfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
16368 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRECPSfd,
16369 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16370 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
16371 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
16372 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16373 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16374 : GIR_EraseFromParent, /*InsnID*/0,
16375 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16376 : // GIR_Coverage, 1259,
16377 : GIR_Done,
16378 : // Label 846: @41252
16379 : GIM_Try, /*On fail goto*//*Label 847*/ 41310, // Rule ID 1260 //
16380 : GIM_CheckFeatures, GIFBS_HasNEON,
16381 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrecps,
16382 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
16383 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
16384 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
16385 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
16386 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
16387 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
16388 : // (intrinsic_wo_chain:{ *:[v4f32] } 1136:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) => (VRECPSfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
16389 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRECPSfq,
16390 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16391 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
16392 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
16393 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16394 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16395 : GIR_EraseFromParent, /*InsnID*/0,
16396 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16397 : // GIR_Coverage, 1260,
16398 : GIR_Done,
16399 : // Label 847: @41310
16400 : GIM_Try, /*On fail goto*//*Label 848*/ 41368, // Rule ID 1261 //
16401 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
16402 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrecps,
16403 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
16404 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
16405 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
16406 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
16407 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
16408 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
16409 : // (intrinsic_wo_chain:{ *:[v4f16] } 1136:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) => (VRECPShd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
16410 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRECPShd,
16411 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16412 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
16413 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
16414 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16415 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16416 : GIR_EraseFromParent, /*InsnID*/0,
16417 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16418 : // GIR_Coverage, 1261,
16419 : GIR_Done,
16420 : // Label 848: @41368
16421 : GIM_Try, /*On fail goto*//*Label 849*/ 41426, // Rule ID 1262 //
16422 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
16423 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrecps,
16424 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
16425 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
16426 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
16427 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
16428 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
16429 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
16430 : // (intrinsic_wo_chain:{ *:[v8f16] } 1136:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) => (VRECPShq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
16431 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRECPShq,
16432 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16433 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
16434 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
16435 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16436 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16437 : GIR_EraseFromParent, /*InsnID*/0,
16438 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16439 : // GIR_Coverage, 1262,
16440 : GIR_Done,
16441 : // Label 849: @41426
16442 : GIM_Try, /*On fail goto*//*Label 850*/ 41484, // Rule ID 1269 //
16443 : GIM_CheckFeatures, GIFBS_HasNEON,
16444 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrsqrts,
16445 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
16446 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
16447 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
16448 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
16449 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
16450 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
16451 : // (intrinsic_wo_chain:{ *:[v2f32] } 1149:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) => (VRSQRTSfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
16452 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSQRTSfd,
16453 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16454 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
16455 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
16456 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16457 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16458 : GIR_EraseFromParent, /*InsnID*/0,
16459 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16460 : // GIR_Coverage, 1269,
16461 : GIR_Done,
16462 : // Label 850: @41484
16463 : GIM_Try, /*On fail goto*//*Label 851*/ 41542, // Rule ID 1270 //
16464 : GIM_CheckFeatures, GIFBS_HasNEON,
16465 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrsqrts,
16466 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
16467 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
16468 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
16469 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
16470 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
16471 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
16472 : // (intrinsic_wo_chain:{ *:[v4f32] } 1149:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) => (VRSQRTSfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
16473 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSQRTSfq,
16474 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16475 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
16476 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
16477 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16478 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16479 : GIR_EraseFromParent, /*InsnID*/0,
16480 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16481 : // GIR_Coverage, 1270,
16482 : GIR_Done,
16483 : // Label 851: @41542
16484 : GIM_Try, /*On fail goto*//*Label 852*/ 41600, // Rule ID 1271 //
16485 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
16486 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrsqrts,
16487 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
16488 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
16489 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
16490 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
16491 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
16492 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
16493 : // (intrinsic_wo_chain:{ *:[v4f16] } 1149:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) => (VRSQRTShd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
16494 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSQRTShd,
16495 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16496 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
16497 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
16498 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16499 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16500 : GIR_EraseFromParent, /*InsnID*/0,
16501 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16502 : // GIR_Coverage, 1271,
16503 : GIR_Done,
16504 : // Label 852: @41600
16505 : GIM_Try, /*On fail goto*//*Label 853*/ 41658, // Rule ID 1272 //
16506 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
16507 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrsqrts,
16508 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
16509 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
16510 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
16511 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
16512 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
16513 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
16514 : // (intrinsic_wo_chain:{ *:[v8f16] } 1149:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) => (VRSQRTShq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
16515 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSQRTShq,
16516 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16517 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
16518 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
16519 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16520 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16521 : GIR_EraseFromParent, /*InsnID*/0,
16522 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16523 : // GIR_Coverage, 1272,
16524 : GIR_Done,
16525 : // Label 853: @41658
16526 : GIM_Try, /*On fail goto*//*Label 854*/ 41716, // Rule ID 1273 //
16527 : GIM_CheckFeatures, GIFBS_HasNEON,
16528 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vshifts,
16529 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
16530 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
16531 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
16532 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
16533 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
16534 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
16535 : // (intrinsic_wo_chain:{ *:[v4i16] } 1152:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn) => (VSHLsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn)
16536 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSHLsv4i16,
16537 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16538 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
16539 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
16540 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16541 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16542 : GIR_EraseFromParent, /*InsnID*/0,
16543 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16544 : // GIR_Coverage, 1273,
16545 : GIR_Done,
16546 : // Label 854: @41716
16547 : GIM_Try, /*On fail goto*//*Label 855*/ 41774, // Rule ID 1274 //
16548 : GIM_CheckFeatures, GIFBS_HasNEON,
16549 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vshifts,
16550 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
16551 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
16552 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
16553 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
16554 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
16555 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
16556 : // (intrinsic_wo_chain:{ *:[v2i32] } 1152:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn) => (VSHLsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn)
16557 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSHLsv2i32,
16558 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16559 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
16560 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
16561 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16562 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16563 : GIR_EraseFromParent, /*InsnID*/0,
16564 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16565 : // GIR_Coverage, 1274,
16566 : GIR_Done,
16567 : // Label 855: @41774
16568 : GIM_Try, /*On fail goto*//*Label 856*/ 41832, // Rule ID 1275 //
16569 : GIM_CheckFeatures, GIFBS_HasNEON,
16570 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vshifts,
16571 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
16572 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
16573 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
16574 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
16575 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
16576 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
16577 : // (intrinsic_wo_chain:{ *:[v8i16] } 1152:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn) => (VSHLsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn)
16578 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSHLsv8i16,
16579 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16580 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
16581 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
16582 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16583 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16584 : GIR_EraseFromParent, /*InsnID*/0,
16585 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16586 : // GIR_Coverage, 1275,
16587 : GIR_Done,
16588 : // Label 856: @41832
16589 : GIM_Try, /*On fail goto*//*Label 857*/ 41890, // Rule ID 1276 //
16590 : GIM_CheckFeatures, GIFBS_HasNEON,
16591 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vshifts,
16592 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
16593 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
16594 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
16595 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
16596 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
16597 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
16598 : // (intrinsic_wo_chain:{ *:[v4i32] } 1152:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn) => (VSHLsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn)
16599 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSHLsv4i32,
16600 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16601 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
16602 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
16603 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16604 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16605 : GIR_EraseFromParent, /*InsnID*/0,
16606 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16607 : // GIR_Coverage, 1276,
16608 : GIR_Done,
16609 : // Label 857: @41890
16610 : GIM_Try, /*On fail goto*//*Label 858*/ 41948, // Rule ID 1277 //
16611 : GIM_CheckFeatures, GIFBS_HasNEON,
16612 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vshifts,
16613 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
16614 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
16615 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
16616 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
16617 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
16618 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
16619 : // (intrinsic_wo_chain:{ *:[v8i8] } 1152:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn) => (VSHLsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn)
16620 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSHLsv8i8,
16621 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16622 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
16623 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
16624 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16625 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16626 : GIR_EraseFromParent, /*InsnID*/0,
16627 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16628 : // GIR_Coverage, 1277,
16629 : GIR_Done,
16630 : // Label 858: @41948
16631 : GIM_Try, /*On fail goto*//*Label 859*/ 42006, // Rule ID 1278 //
16632 : GIM_CheckFeatures, GIFBS_HasNEON,
16633 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vshifts,
16634 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
16635 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
16636 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
16637 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
16638 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
16639 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
16640 : // (intrinsic_wo_chain:{ *:[v16i8] } 1152:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn) => (VSHLsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn)
16641 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSHLsv16i8,
16642 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16643 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
16644 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
16645 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16646 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16647 : GIR_EraseFromParent, /*InsnID*/0,
16648 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16649 : // GIR_Coverage, 1278,
16650 : GIR_Done,
16651 : // Label 859: @42006
16652 : GIM_Try, /*On fail goto*//*Label 860*/ 42064, // Rule ID 1279 //
16653 : GIM_CheckFeatures, GIFBS_HasNEON,
16654 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vshifts,
16655 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
16656 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
16657 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
16658 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
16659 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
16660 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
16661 : // (intrinsic_wo_chain:{ *:[v1i64] } 1152:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn) => (VSHLsv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn)
16662 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSHLsv1i64,
16663 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16664 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
16665 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
16666 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16667 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16668 : GIR_EraseFromParent, /*InsnID*/0,
16669 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16670 : // GIR_Coverage, 1279,
16671 : GIR_Done,
16672 : // Label 860: @42064
16673 : GIM_Try, /*On fail goto*//*Label 861*/ 42122, // Rule ID 1280 //
16674 : GIM_CheckFeatures, GIFBS_HasNEON,
16675 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vshifts,
16676 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
16677 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
16678 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
16679 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
16680 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
16681 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
16682 : // (intrinsic_wo_chain:{ *:[v2i64] } 1152:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn) => (VSHLsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn)
16683 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSHLsv2i64,
16684 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16685 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
16686 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
16687 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16688 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16689 : GIR_EraseFromParent, /*InsnID*/0,
16690 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16691 : // GIR_Coverage, 1280,
16692 : GIR_Done,
16693 : // Label 861: @42122
16694 : GIM_Try, /*On fail goto*//*Label 862*/ 42180, // Rule ID 1281 //
16695 : GIM_CheckFeatures, GIFBS_HasNEON,
16696 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vshiftu,
16697 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
16698 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
16699 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
16700 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
16701 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
16702 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
16703 : // (intrinsic_wo_chain:{ *:[v4i16] } 1153:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn) => (VSHLuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn)
16704 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSHLuv4i16,
16705 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16706 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
16707 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
16708 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16709 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16710 : GIR_EraseFromParent, /*InsnID*/0,
16711 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16712 : // GIR_Coverage, 1281,
16713 : GIR_Done,
16714 : // Label 862: @42180
16715 : GIM_Try, /*On fail goto*//*Label 863*/ 42238, // Rule ID 1282 //
16716 : GIM_CheckFeatures, GIFBS_HasNEON,
16717 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vshiftu,
16718 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
16719 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
16720 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
16721 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
16722 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
16723 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
16724 : // (intrinsic_wo_chain:{ *:[v2i32] } 1153:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn) => (VSHLuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn)
16725 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSHLuv2i32,
16726 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16727 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
16728 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
16729 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16730 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16731 : GIR_EraseFromParent, /*InsnID*/0,
16732 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16733 : // GIR_Coverage, 1282,
16734 : GIR_Done,
16735 : // Label 863: @42238
16736 : GIM_Try, /*On fail goto*//*Label 864*/ 42296, // Rule ID 1283 //
16737 : GIM_CheckFeatures, GIFBS_HasNEON,
16738 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vshiftu,
16739 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
16740 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
16741 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
16742 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
16743 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
16744 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
16745 : // (intrinsic_wo_chain:{ *:[v8i16] } 1153:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn) => (VSHLuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn)
16746 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSHLuv8i16,
16747 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16748 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
16749 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
16750 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16751 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16752 : GIR_EraseFromParent, /*InsnID*/0,
16753 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16754 : // GIR_Coverage, 1283,
16755 : GIR_Done,
16756 : // Label 864: @42296
16757 : GIM_Try, /*On fail goto*//*Label 865*/ 42354, // Rule ID 1284 //
16758 : GIM_CheckFeatures, GIFBS_HasNEON,
16759 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vshiftu,
16760 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
16761 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
16762 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
16763 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
16764 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
16765 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
16766 : // (intrinsic_wo_chain:{ *:[v4i32] } 1153:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn) => (VSHLuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn)
16767 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSHLuv4i32,
16768 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16769 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
16770 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
16771 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16772 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16773 : GIR_EraseFromParent, /*InsnID*/0,
16774 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16775 : // GIR_Coverage, 1284,
16776 : GIR_Done,
16777 : // Label 865: @42354
16778 : GIM_Try, /*On fail goto*//*Label 866*/ 42412, // Rule ID 1285 //
16779 : GIM_CheckFeatures, GIFBS_HasNEON,
16780 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vshiftu,
16781 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
16782 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
16783 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
16784 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
16785 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
16786 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
16787 : // (intrinsic_wo_chain:{ *:[v8i8] } 1153:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn) => (VSHLuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn)
16788 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSHLuv8i8,
16789 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16790 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
16791 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
16792 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16793 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16794 : GIR_EraseFromParent, /*InsnID*/0,
16795 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16796 : // GIR_Coverage, 1285,
16797 : GIR_Done,
16798 : // Label 866: @42412
16799 : GIM_Try, /*On fail goto*//*Label 867*/ 42470, // Rule ID 1286 //
16800 : GIM_CheckFeatures, GIFBS_HasNEON,
16801 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vshiftu,
16802 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
16803 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
16804 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
16805 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
16806 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
16807 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
16808 : // (intrinsic_wo_chain:{ *:[v16i8] } 1153:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn) => (VSHLuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn)
16809 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSHLuv16i8,
16810 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16811 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
16812 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
16813 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16814 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16815 : GIR_EraseFromParent, /*InsnID*/0,
16816 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16817 : // GIR_Coverage, 1286,
16818 : GIR_Done,
16819 : // Label 867: @42470
16820 : GIM_Try, /*On fail goto*//*Label 868*/ 42528, // Rule ID 1287 //
16821 : GIM_CheckFeatures, GIFBS_HasNEON,
16822 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vshiftu,
16823 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
16824 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
16825 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
16826 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
16827 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
16828 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
16829 : // (intrinsic_wo_chain:{ *:[v1i64] } 1153:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn) => (VSHLuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn)
16830 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSHLuv1i64,
16831 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16832 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
16833 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
16834 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16835 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16836 : GIR_EraseFromParent, /*InsnID*/0,
16837 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16838 : // GIR_Coverage, 1287,
16839 : GIR_Done,
16840 : // Label 868: @42528
16841 : GIM_Try, /*On fail goto*//*Label 869*/ 42586, // Rule ID 1288 //
16842 : GIM_CheckFeatures, GIFBS_HasNEON,
16843 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vshiftu,
16844 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
16845 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
16846 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
16847 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
16848 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
16849 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
16850 : // (intrinsic_wo_chain:{ *:[v2i64] } 1153:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn) => (VSHLuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn)
16851 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSHLuv2i64,
16852 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16853 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
16854 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
16855 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16856 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16857 : GIR_EraseFromParent, /*InsnID*/0,
16858 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16859 : // GIR_Coverage, 1288,
16860 : GIR_Done,
16861 : // Label 869: @42586
16862 : GIM_Try, /*On fail goto*//*Label 870*/ 42644, // Rule ID 1322 //
16863 : GIM_CheckFeatures, GIFBS_HasNEON,
16864 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrshifts,
16865 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
16866 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
16867 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
16868 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
16869 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
16870 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
16871 : // (intrinsic_wo_chain:{ *:[v4i16] } 1146:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn) => (VRSHLsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn)
16872 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSHLsv4i16,
16873 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16874 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
16875 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
16876 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16877 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16878 : GIR_EraseFromParent, /*InsnID*/0,
16879 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16880 : // GIR_Coverage, 1322,
16881 : GIR_Done,
16882 : // Label 870: @42644
16883 : GIM_Try, /*On fail goto*//*Label 871*/ 42702, // Rule ID 1323 //
16884 : GIM_CheckFeatures, GIFBS_HasNEON,
16885 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrshifts,
16886 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
16887 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
16888 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
16889 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
16890 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
16891 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
16892 : // (intrinsic_wo_chain:{ *:[v2i32] } 1146:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn) => (VRSHLsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn)
16893 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSHLsv2i32,
16894 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16895 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
16896 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
16897 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16898 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16899 : GIR_EraseFromParent, /*InsnID*/0,
16900 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16901 : // GIR_Coverage, 1323,
16902 : GIR_Done,
16903 : // Label 871: @42702
16904 : GIM_Try, /*On fail goto*//*Label 872*/ 42760, // Rule ID 1324 //
16905 : GIM_CheckFeatures, GIFBS_HasNEON,
16906 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrshifts,
16907 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
16908 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
16909 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
16910 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
16911 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
16912 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
16913 : // (intrinsic_wo_chain:{ *:[v8i16] } 1146:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn) => (VRSHLsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn)
16914 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSHLsv8i16,
16915 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16916 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
16917 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
16918 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16919 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16920 : GIR_EraseFromParent, /*InsnID*/0,
16921 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16922 : // GIR_Coverage, 1324,
16923 : GIR_Done,
16924 : // Label 872: @42760
16925 : GIM_Try, /*On fail goto*//*Label 873*/ 42818, // Rule ID 1325 //
16926 : GIM_CheckFeatures, GIFBS_HasNEON,
16927 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrshifts,
16928 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
16929 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
16930 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
16931 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
16932 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
16933 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
16934 : // (intrinsic_wo_chain:{ *:[v4i32] } 1146:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn) => (VRSHLsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn)
16935 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSHLsv4i32,
16936 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16937 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
16938 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
16939 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16940 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16941 : GIR_EraseFromParent, /*InsnID*/0,
16942 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16943 : // GIR_Coverage, 1325,
16944 : GIR_Done,
16945 : // Label 873: @42818
16946 : GIM_Try, /*On fail goto*//*Label 874*/ 42876, // Rule ID 1326 //
16947 : GIM_CheckFeatures, GIFBS_HasNEON,
16948 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrshifts,
16949 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
16950 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
16951 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
16952 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
16953 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
16954 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
16955 : // (intrinsic_wo_chain:{ *:[v8i8] } 1146:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn) => (VRSHLsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn)
16956 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSHLsv8i8,
16957 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16958 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
16959 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
16960 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16961 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16962 : GIR_EraseFromParent, /*InsnID*/0,
16963 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16964 : // GIR_Coverage, 1326,
16965 : GIR_Done,
16966 : // Label 874: @42876
16967 : GIM_Try, /*On fail goto*//*Label 875*/ 42934, // Rule ID 1327 //
16968 : GIM_CheckFeatures, GIFBS_HasNEON,
16969 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrshifts,
16970 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
16971 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
16972 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
16973 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
16974 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
16975 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
16976 : // (intrinsic_wo_chain:{ *:[v16i8] } 1146:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn) => (VRSHLsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn)
16977 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSHLsv16i8,
16978 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
16979 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
16980 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
16981 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
16982 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
16983 : GIR_EraseFromParent, /*InsnID*/0,
16984 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
16985 : // GIR_Coverage, 1327,
16986 : GIR_Done,
16987 : // Label 875: @42934
16988 : GIM_Try, /*On fail goto*//*Label 876*/ 42992, // Rule ID 1328 //
16989 : GIM_CheckFeatures, GIFBS_HasNEON,
16990 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrshifts,
16991 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
16992 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
16993 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
16994 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
16995 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
16996 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
16997 : // (intrinsic_wo_chain:{ *:[v1i64] } 1146:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn) => (VRSHLsv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn)
16998 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSHLsv1i64,
16999 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17000 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
17001 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
17002 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
17003 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
17004 : GIR_EraseFromParent, /*InsnID*/0,
17005 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17006 : // GIR_Coverage, 1328,
17007 : GIR_Done,
17008 : // Label 876: @42992
17009 : GIM_Try, /*On fail goto*//*Label 877*/ 43050, // Rule ID 1329 //
17010 : GIM_CheckFeatures, GIFBS_HasNEON,
17011 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrshifts,
17012 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
17013 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
17014 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
17015 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
17016 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
17017 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
17018 : // (intrinsic_wo_chain:{ *:[v2i64] } 1146:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn) => (VRSHLsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn)
17019 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSHLsv2i64,
17020 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17021 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
17022 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
17023 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
17024 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
17025 : GIR_EraseFromParent, /*InsnID*/0,
17026 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17027 : // GIR_Coverage, 1329,
17028 : GIR_Done,
17029 : // Label 877: @43050
17030 : GIM_Try, /*On fail goto*//*Label 878*/ 43108, // Rule ID 1330 //
17031 : GIM_CheckFeatures, GIFBS_HasNEON,
17032 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrshiftu,
17033 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
17034 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
17035 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
17036 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
17037 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
17038 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
17039 : // (intrinsic_wo_chain:{ *:[v4i16] } 1147:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn) => (VRSHLuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn)
17040 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSHLuv4i16,
17041 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17042 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
17043 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
17044 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
17045 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
17046 : GIR_EraseFromParent, /*InsnID*/0,
17047 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17048 : // GIR_Coverage, 1330,
17049 : GIR_Done,
17050 : // Label 878: @43108
17051 : GIM_Try, /*On fail goto*//*Label 879*/ 43166, // Rule ID 1331 //
17052 : GIM_CheckFeatures, GIFBS_HasNEON,
17053 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrshiftu,
17054 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
17055 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
17056 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
17057 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
17058 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
17059 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
17060 : // (intrinsic_wo_chain:{ *:[v2i32] } 1147:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn) => (VRSHLuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn)
17061 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSHLuv2i32,
17062 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17063 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
17064 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
17065 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
17066 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
17067 : GIR_EraseFromParent, /*InsnID*/0,
17068 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17069 : // GIR_Coverage, 1331,
17070 : GIR_Done,
17071 : // Label 879: @43166
17072 : GIM_Try, /*On fail goto*//*Label 880*/ 43224, // Rule ID 1332 //
17073 : GIM_CheckFeatures, GIFBS_HasNEON,
17074 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrshiftu,
17075 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
17076 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
17077 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
17078 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
17079 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
17080 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
17081 : // (intrinsic_wo_chain:{ *:[v8i16] } 1147:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn) => (VRSHLuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn)
17082 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSHLuv8i16,
17083 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17084 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
17085 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
17086 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
17087 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
17088 : GIR_EraseFromParent, /*InsnID*/0,
17089 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17090 : // GIR_Coverage, 1332,
17091 : GIR_Done,
17092 : // Label 880: @43224
17093 : GIM_Try, /*On fail goto*//*Label 881*/ 43282, // Rule ID 1333 //
17094 : GIM_CheckFeatures, GIFBS_HasNEON,
17095 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrshiftu,
17096 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
17097 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
17098 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
17099 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
17100 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
17101 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
17102 : // (intrinsic_wo_chain:{ *:[v4i32] } 1147:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn) => (VRSHLuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn)
17103 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSHLuv4i32,
17104 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17105 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
17106 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
17107 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
17108 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
17109 : GIR_EraseFromParent, /*InsnID*/0,
17110 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17111 : // GIR_Coverage, 1333,
17112 : GIR_Done,
17113 : // Label 881: @43282
17114 : GIM_Try, /*On fail goto*//*Label 882*/ 43340, // Rule ID 1334 //
17115 : GIM_CheckFeatures, GIFBS_HasNEON,
17116 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrshiftu,
17117 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
17118 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
17119 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
17120 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
17121 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
17122 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
17123 : // (intrinsic_wo_chain:{ *:[v8i8] } 1147:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn) => (VRSHLuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn)
17124 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSHLuv8i8,
17125 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17126 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
17127 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
17128 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
17129 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
17130 : GIR_EraseFromParent, /*InsnID*/0,
17131 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17132 : // GIR_Coverage, 1334,
17133 : GIR_Done,
17134 : // Label 882: @43340
17135 : GIM_Try, /*On fail goto*//*Label 883*/ 43398, // Rule ID 1335 //
17136 : GIM_CheckFeatures, GIFBS_HasNEON,
17137 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrshiftu,
17138 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
17139 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
17140 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
17141 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
17142 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
17143 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
17144 : // (intrinsic_wo_chain:{ *:[v16i8] } 1147:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn) => (VRSHLuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn)
17145 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSHLuv16i8,
17146 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17147 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
17148 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
17149 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
17150 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
17151 : GIR_EraseFromParent, /*InsnID*/0,
17152 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17153 : // GIR_Coverage, 1335,
17154 : GIR_Done,
17155 : // Label 883: @43398
17156 : GIM_Try, /*On fail goto*//*Label 884*/ 43456, // Rule ID 1336 //
17157 : GIM_CheckFeatures, GIFBS_HasNEON,
17158 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrshiftu,
17159 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
17160 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
17161 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
17162 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
17163 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
17164 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
17165 : // (intrinsic_wo_chain:{ *:[v1i64] } 1147:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn) => (VRSHLuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn)
17166 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSHLuv1i64,
17167 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17168 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
17169 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
17170 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
17171 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
17172 : GIR_EraseFromParent, /*InsnID*/0,
17173 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17174 : // GIR_Coverage, 1336,
17175 : GIR_Done,
17176 : // Label 884: @43456
17177 : GIM_Try, /*On fail goto*//*Label 885*/ 43514, // Rule ID 1337 //
17178 : GIM_CheckFeatures, GIFBS_HasNEON,
17179 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrshiftu,
17180 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
17181 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
17182 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
17183 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
17184 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
17185 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
17186 : // (intrinsic_wo_chain:{ *:[v2i64] } 1147:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn) => (VRSHLuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn)
17187 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSHLuv2i64,
17188 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17189 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
17190 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
17191 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
17192 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
17193 : GIR_EraseFromParent, /*InsnID*/0,
17194 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17195 : // GIR_Coverage, 1337,
17196 : GIR_Done,
17197 : // Label 885: @43514
17198 : GIM_Try, /*On fail goto*//*Label 886*/ 43572, // Rule ID 1357 //
17199 : GIM_CheckFeatures, GIFBS_HasNEON,
17200 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqshifts,
17201 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
17202 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
17203 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
17204 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
17205 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
17206 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
17207 : // (intrinsic_wo_chain:{ *:[v4i16] } 1129:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn) => (VQSHLsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn)
17208 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSHLsv4i16,
17209 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17210 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
17211 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
17212 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
17213 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
17214 : GIR_EraseFromParent, /*InsnID*/0,
17215 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17216 : // GIR_Coverage, 1357,
17217 : GIR_Done,
17218 : // Label 886: @43572
17219 : GIM_Try, /*On fail goto*//*Label 887*/ 43630, // Rule ID 1358 //
17220 : GIM_CheckFeatures, GIFBS_HasNEON,
17221 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqshifts,
17222 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
17223 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
17224 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
17225 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
17226 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
17227 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
17228 : // (intrinsic_wo_chain:{ *:[v2i32] } 1129:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn) => (VQSHLsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn)
17229 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSHLsv2i32,
17230 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17231 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
17232 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
17233 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
17234 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
17235 : GIR_EraseFromParent, /*InsnID*/0,
17236 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17237 : // GIR_Coverage, 1358,
17238 : GIR_Done,
17239 : // Label 887: @43630
17240 : GIM_Try, /*On fail goto*//*Label 888*/ 43688, // Rule ID 1359 //
17241 : GIM_CheckFeatures, GIFBS_HasNEON,
17242 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqshifts,
17243 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
17244 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
17245 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
17246 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
17247 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
17248 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
17249 : // (intrinsic_wo_chain:{ *:[v8i16] } 1129:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn) => (VQSHLsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn)
17250 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSHLsv8i16,
17251 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17252 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
17253 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
17254 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
17255 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
17256 : GIR_EraseFromParent, /*InsnID*/0,
17257 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17258 : // GIR_Coverage, 1359,
17259 : GIR_Done,
17260 : // Label 888: @43688
17261 : GIM_Try, /*On fail goto*//*Label 889*/ 43746, // Rule ID 1360 //
17262 : GIM_CheckFeatures, GIFBS_HasNEON,
17263 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqshifts,
17264 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
17265 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
17266 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
17267 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
17268 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
17269 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
17270 : // (intrinsic_wo_chain:{ *:[v4i32] } 1129:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn) => (VQSHLsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn)
17271 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSHLsv4i32,
17272 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17273 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
17274 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
17275 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
17276 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
17277 : GIR_EraseFromParent, /*InsnID*/0,
17278 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17279 : // GIR_Coverage, 1360,
17280 : GIR_Done,
17281 : // Label 889: @43746
17282 : GIM_Try, /*On fail goto*//*Label 890*/ 43804, // Rule ID 1361 //
17283 : GIM_CheckFeatures, GIFBS_HasNEON,
17284 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqshifts,
17285 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
17286 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
17287 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
17288 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
17289 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
17290 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
17291 : // (intrinsic_wo_chain:{ *:[v8i8] } 1129:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn) => (VQSHLsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn)
17292 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSHLsv8i8,
17293 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17294 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
17295 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
17296 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
17297 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
17298 : GIR_EraseFromParent, /*InsnID*/0,
17299 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17300 : // GIR_Coverage, 1361,
17301 : GIR_Done,
17302 : // Label 890: @43804
17303 : GIM_Try, /*On fail goto*//*Label 891*/ 43862, // Rule ID 1362 //
17304 : GIM_CheckFeatures, GIFBS_HasNEON,
17305 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqshifts,
17306 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
17307 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
17308 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
17309 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
17310 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
17311 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
17312 : // (intrinsic_wo_chain:{ *:[v16i8] } 1129:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn) => (VQSHLsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn)
17313 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSHLsv16i8,
17314 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17315 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
17316 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
17317 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
17318 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
17319 : GIR_EraseFromParent, /*InsnID*/0,
17320 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17321 : // GIR_Coverage, 1362,
17322 : GIR_Done,
17323 : // Label 891: @43862
17324 : GIM_Try, /*On fail goto*//*Label 892*/ 43920, // Rule ID 1363 //
17325 : GIM_CheckFeatures, GIFBS_HasNEON,
17326 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqshifts,
17327 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
17328 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
17329 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
17330 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
17331 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
17332 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
17333 : // (intrinsic_wo_chain:{ *:[v1i64] } 1129:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn) => (VQSHLsv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn)
17334 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSHLsv1i64,
17335 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17336 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
17337 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
17338 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
17339 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
17340 : GIR_EraseFromParent, /*InsnID*/0,
17341 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17342 : // GIR_Coverage, 1363,
17343 : GIR_Done,
17344 : // Label 892: @43920
17345 : GIM_Try, /*On fail goto*//*Label 893*/ 43978, // Rule ID 1364 //
17346 : GIM_CheckFeatures, GIFBS_HasNEON,
17347 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqshifts,
17348 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
17349 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
17350 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
17351 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
17352 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
17353 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
17354 : // (intrinsic_wo_chain:{ *:[v2i64] } 1129:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn) => (VQSHLsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn)
17355 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSHLsv2i64,
17356 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17357 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
17358 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
17359 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
17360 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
17361 : GIR_EraseFromParent, /*InsnID*/0,
17362 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17363 : // GIR_Coverage, 1364,
17364 : GIR_Done,
17365 : // Label 893: @43978
17366 : GIM_Try, /*On fail goto*//*Label 894*/ 44036, // Rule ID 1365 //
17367 : GIM_CheckFeatures, GIFBS_HasNEON,
17368 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqshiftu,
17369 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
17370 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
17371 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
17372 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
17373 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
17374 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
17375 : // (intrinsic_wo_chain:{ *:[v4i16] } 1131:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn) => (VQSHLuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn)
17376 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSHLuv4i16,
17377 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17378 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
17379 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
17380 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
17381 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
17382 : GIR_EraseFromParent, /*InsnID*/0,
17383 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17384 : // GIR_Coverage, 1365,
17385 : GIR_Done,
17386 : // Label 894: @44036
17387 : GIM_Try, /*On fail goto*//*Label 895*/ 44094, // Rule ID 1366 //
17388 : GIM_CheckFeatures, GIFBS_HasNEON,
17389 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqshiftu,
17390 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
17391 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
17392 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
17393 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
17394 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
17395 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
17396 : // (intrinsic_wo_chain:{ *:[v2i32] } 1131:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn) => (VQSHLuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn)
17397 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSHLuv2i32,
17398 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17399 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
17400 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
17401 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
17402 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
17403 : GIR_EraseFromParent, /*InsnID*/0,
17404 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17405 : // GIR_Coverage, 1366,
17406 : GIR_Done,
17407 : // Label 895: @44094
17408 : GIM_Try, /*On fail goto*//*Label 896*/ 44152, // Rule ID 1367 //
17409 : GIM_CheckFeatures, GIFBS_HasNEON,
17410 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqshiftu,
17411 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
17412 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
17413 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
17414 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
17415 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
17416 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
17417 : // (intrinsic_wo_chain:{ *:[v8i16] } 1131:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn) => (VQSHLuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn)
17418 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSHLuv8i16,
17419 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17420 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
17421 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
17422 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
17423 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
17424 : GIR_EraseFromParent, /*InsnID*/0,
17425 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17426 : // GIR_Coverage, 1367,
17427 : GIR_Done,
17428 : // Label 896: @44152
17429 : GIM_Try, /*On fail goto*//*Label 897*/ 44210, // Rule ID 1368 //
17430 : GIM_CheckFeatures, GIFBS_HasNEON,
17431 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqshiftu,
17432 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
17433 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
17434 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
17435 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
17436 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
17437 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
17438 : // (intrinsic_wo_chain:{ *:[v4i32] } 1131:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn) => (VQSHLuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn)
17439 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSHLuv4i32,
17440 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17441 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
17442 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
17443 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
17444 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
17445 : GIR_EraseFromParent, /*InsnID*/0,
17446 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17447 : // GIR_Coverage, 1368,
17448 : GIR_Done,
17449 : // Label 897: @44210
17450 : GIM_Try, /*On fail goto*//*Label 898*/ 44268, // Rule ID 1369 //
17451 : GIM_CheckFeatures, GIFBS_HasNEON,
17452 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqshiftu,
17453 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
17454 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
17455 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
17456 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
17457 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
17458 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
17459 : // (intrinsic_wo_chain:{ *:[v8i8] } 1131:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn) => (VQSHLuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn)
17460 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSHLuv8i8,
17461 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17462 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
17463 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
17464 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
17465 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
17466 : GIR_EraseFromParent, /*InsnID*/0,
17467 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17468 : // GIR_Coverage, 1369,
17469 : GIR_Done,
17470 : // Label 898: @44268
17471 : GIM_Try, /*On fail goto*//*Label 899*/ 44326, // Rule ID 1370 //
17472 : GIM_CheckFeatures, GIFBS_HasNEON,
17473 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqshiftu,
17474 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
17475 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
17476 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
17477 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
17478 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
17479 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
17480 : // (intrinsic_wo_chain:{ *:[v16i8] } 1131:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn) => (VQSHLuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn)
17481 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSHLuv16i8,
17482 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17483 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
17484 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
17485 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
17486 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
17487 : GIR_EraseFromParent, /*InsnID*/0,
17488 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17489 : // GIR_Coverage, 1370,
17490 : GIR_Done,
17491 : // Label 899: @44326
17492 : GIM_Try, /*On fail goto*//*Label 900*/ 44384, // Rule ID 1371 //
17493 : GIM_CheckFeatures, GIFBS_HasNEON,
17494 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqshiftu,
17495 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
17496 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
17497 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
17498 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
17499 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
17500 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
17501 : // (intrinsic_wo_chain:{ *:[v1i64] } 1131:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn) => (VQSHLuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn)
17502 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSHLuv1i64,
17503 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17504 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
17505 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
17506 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
17507 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
17508 : GIR_EraseFromParent, /*InsnID*/0,
17509 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17510 : // GIR_Coverage, 1371,
17511 : GIR_Done,
17512 : // Label 900: @44384
17513 : GIM_Try, /*On fail goto*//*Label 901*/ 44442, // Rule ID 1372 //
17514 : GIM_CheckFeatures, GIFBS_HasNEON,
17515 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqshiftu,
17516 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
17517 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
17518 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
17519 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
17520 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
17521 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
17522 : // (intrinsic_wo_chain:{ *:[v2i64] } 1131:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn) => (VQSHLuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn)
17523 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSHLuv2i64,
17524 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17525 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
17526 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
17527 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
17528 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
17529 : GIR_EraseFromParent, /*InsnID*/0,
17530 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17531 : // GIR_Coverage, 1372,
17532 : GIR_Done,
17533 : // Label 901: @44442
17534 : GIM_Try, /*On fail goto*//*Label 902*/ 44500, // Rule ID 1406 //
17535 : GIM_CheckFeatures, GIFBS_HasNEON,
17536 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrshifts,
17537 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
17538 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
17539 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
17540 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
17541 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
17542 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
17543 : // (intrinsic_wo_chain:{ *:[v4i16] } 1124:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn) => (VQRSHLsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn)
17544 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRSHLsv4i16,
17545 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17546 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
17547 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
17548 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
17549 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
17550 : GIR_EraseFromParent, /*InsnID*/0,
17551 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17552 : // GIR_Coverage, 1406,
17553 : GIR_Done,
17554 : // Label 902: @44500
17555 : GIM_Try, /*On fail goto*//*Label 903*/ 44558, // Rule ID 1407 //
17556 : GIM_CheckFeatures, GIFBS_HasNEON,
17557 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrshifts,
17558 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
17559 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
17560 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
17561 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
17562 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
17563 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
17564 : // (intrinsic_wo_chain:{ *:[v2i32] } 1124:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn) => (VQRSHLsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn)
17565 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRSHLsv2i32,
17566 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17567 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
17568 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
17569 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
17570 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
17571 : GIR_EraseFromParent, /*InsnID*/0,
17572 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17573 : // GIR_Coverage, 1407,
17574 : GIR_Done,
17575 : // Label 903: @44558
17576 : GIM_Try, /*On fail goto*//*Label 904*/ 44616, // Rule ID 1408 //
17577 : GIM_CheckFeatures, GIFBS_HasNEON,
17578 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrshifts,
17579 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
17580 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
17581 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
17582 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
17583 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
17584 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
17585 : // (intrinsic_wo_chain:{ *:[v8i16] } 1124:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn) => (VQRSHLsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn)
17586 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRSHLsv8i16,
17587 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17588 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
17589 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
17590 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
17591 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
17592 : GIR_EraseFromParent, /*InsnID*/0,
17593 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17594 : // GIR_Coverage, 1408,
17595 : GIR_Done,
17596 : // Label 904: @44616
17597 : GIM_Try, /*On fail goto*//*Label 905*/ 44674, // Rule ID 1409 //
17598 : GIM_CheckFeatures, GIFBS_HasNEON,
17599 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrshifts,
17600 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
17601 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
17602 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
17603 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
17604 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
17605 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
17606 : // (intrinsic_wo_chain:{ *:[v4i32] } 1124:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn) => (VQRSHLsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn)
17607 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRSHLsv4i32,
17608 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17609 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
17610 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
17611 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
17612 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
17613 : GIR_EraseFromParent, /*InsnID*/0,
17614 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17615 : // GIR_Coverage, 1409,
17616 : GIR_Done,
17617 : // Label 905: @44674
17618 : GIM_Try, /*On fail goto*//*Label 906*/ 44732, // Rule ID 1410 //
17619 : GIM_CheckFeatures, GIFBS_HasNEON,
17620 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrshifts,
17621 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
17622 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
17623 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
17624 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
17625 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
17626 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
17627 : // (intrinsic_wo_chain:{ *:[v8i8] } 1124:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn) => (VQRSHLsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn)
17628 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRSHLsv8i8,
17629 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17630 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
17631 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
17632 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
17633 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
17634 : GIR_EraseFromParent, /*InsnID*/0,
17635 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17636 : // GIR_Coverage, 1410,
17637 : GIR_Done,
17638 : // Label 906: @44732
17639 : GIM_Try, /*On fail goto*//*Label 907*/ 44790, // Rule ID 1411 //
17640 : GIM_CheckFeatures, GIFBS_HasNEON,
17641 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrshifts,
17642 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
17643 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
17644 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
17645 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
17646 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
17647 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
17648 : // (intrinsic_wo_chain:{ *:[v16i8] } 1124:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn) => (VQRSHLsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn)
17649 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRSHLsv16i8,
17650 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17651 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
17652 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
17653 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
17654 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
17655 : GIR_EraseFromParent, /*InsnID*/0,
17656 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17657 : // GIR_Coverage, 1411,
17658 : GIR_Done,
17659 : // Label 907: @44790
17660 : GIM_Try, /*On fail goto*//*Label 908*/ 44848, // Rule ID 1412 //
17661 : GIM_CheckFeatures, GIFBS_HasNEON,
17662 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrshifts,
17663 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
17664 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
17665 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
17666 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
17667 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
17668 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
17669 : // (intrinsic_wo_chain:{ *:[v1i64] } 1124:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn) => (VQRSHLsv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn)
17670 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRSHLsv1i64,
17671 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17672 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
17673 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
17674 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
17675 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
17676 : GIR_EraseFromParent, /*InsnID*/0,
17677 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17678 : // GIR_Coverage, 1412,
17679 : GIR_Done,
17680 : // Label 908: @44848
17681 : GIM_Try, /*On fail goto*//*Label 909*/ 44906, // Rule ID 1413 //
17682 : GIM_CheckFeatures, GIFBS_HasNEON,
17683 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrshifts,
17684 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
17685 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
17686 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
17687 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
17688 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
17689 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
17690 : // (intrinsic_wo_chain:{ *:[v2i64] } 1124:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn) => (VQRSHLsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn)
17691 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRSHLsv2i64,
17692 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17693 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
17694 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
17695 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
17696 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
17697 : GIR_EraseFromParent, /*InsnID*/0,
17698 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17699 : // GIR_Coverage, 1413,
17700 : GIR_Done,
17701 : // Label 909: @44906
17702 : GIM_Try, /*On fail goto*//*Label 910*/ 44964, // Rule ID 1414 //
17703 : GIM_CheckFeatures, GIFBS_HasNEON,
17704 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrshiftu,
17705 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
17706 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
17707 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
17708 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
17709 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
17710 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
17711 : // (intrinsic_wo_chain:{ *:[v4i16] } 1125:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn) => (VQRSHLuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn)
17712 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRSHLuv4i16,
17713 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17714 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
17715 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
17716 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
17717 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
17718 : GIR_EraseFromParent, /*InsnID*/0,
17719 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17720 : // GIR_Coverage, 1414,
17721 : GIR_Done,
17722 : // Label 910: @44964
17723 : GIM_Try, /*On fail goto*//*Label 911*/ 45022, // Rule ID 1415 //
17724 : GIM_CheckFeatures, GIFBS_HasNEON,
17725 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrshiftu,
17726 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
17727 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
17728 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
17729 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
17730 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
17731 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
17732 : // (intrinsic_wo_chain:{ *:[v2i32] } 1125:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn) => (VQRSHLuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn)
17733 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRSHLuv2i32,
17734 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17735 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
17736 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
17737 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
17738 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
17739 : GIR_EraseFromParent, /*InsnID*/0,
17740 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17741 : // GIR_Coverage, 1415,
17742 : GIR_Done,
17743 : // Label 911: @45022
17744 : GIM_Try, /*On fail goto*//*Label 912*/ 45080, // Rule ID 1416 //
17745 : GIM_CheckFeatures, GIFBS_HasNEON,
17746 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrshiftu,
17747 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
17748 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
17749 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
17750 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
17751 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
17752 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
17753 : // (intrinsic_wo_chain:{ *:[v8i16] } 1125:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn) => (VQRSHLuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn)
17754 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRSHLuv8i16,
17755 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17756 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
17757 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
17758 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
17759 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
17760 : GIR_EraseFromParent, /*InsnID*/0,
17761 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17762 : // GIR_Coverage, 1416,
17763 : GIR_Done,
17764 : // Label 912: @45080
17765 : GIM_Try, /*On fail goto*//*Label 913*/ 45138, // Rule ID 1417 //
17766 : GIM_CheckFeatures, GIFBS_HasNEON,
17767 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrshiftu,
17768 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
17769 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
17770 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
17771 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
17772 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
17773 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
17774 : // (intrinsic_wo_chain:{ *:[v4i32] } 1125:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn) => (VQRSHLuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn)
17775 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRSHLuv4i32,
17776 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17777 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
17778 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
17779 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
17780 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
17781 : GIR_EraseFromParent, /*InsnID*/0,
17782 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17783 : // GIR_Coverage, 1417,
17784 : GIR_Done,
17785 : // Label 913: @45138
17786 : GIM_Try, /*On fail goto*//*Label 914*/ 45196, // Rule ID 1418 //
17787 : GIM_CheckFeatures, GIFBS_HasNEON,
17788 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrshiftu,
17789 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
17790 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
17791 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
17792 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
17793 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
17794 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
17795 : // (intrinsic_wo_chain:{ *:[v8i8] } 1125:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn) => (VQRSHLuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn)
17796 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRSHLuv8i8,
17797 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17798 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
17799 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
17800 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
17801 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
17802 : GIR_EraseFromParent, /*InsnID*/0,
17803 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17804 : // GIR_Coverage, 1418,
17805 : GIR_Done,
17806 : // Label 914: @45196
17807 : GIM_Try, /*On fail goto*//*Label 915*/ 45254, // Rule ID 1419 //
17808 : GIM_CheckFeatures, GIFBS_HasNEON,
17809 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrshiftu,
17810 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
17811 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
17812 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
17813 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
17814 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
17815 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
17816 : // (intrinsic_wo_chain:{ *:[v16i8] } 1125:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn) => (VQRSHLuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn)
17817 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRSHLuv16i8,
17818 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17819 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
17820 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
17821 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
17822 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
17823 : GIR_EraseFromParent, /*InsnID*/0,
17824 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17825 : // GIR_Coverage, 1419,
17826 : GIR_Done,
17827 : // Label 915: @45254
17828 : GIM_Try, /*On fail goto*//*Label 916*/ 45312, // Rule ID 1420 //
17829 : GIM_CheckFeatures, GIFBS_HasNEON,
17830 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrshiftu,
17831 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
17832 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
17833 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
17834 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
17835 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
17836 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
17837 : // (intrinsic_wo_chain:{ *:[v1i64] } 1125:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn) => (VQRSHLuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn)
17838 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRSHLuv1i64,
17839 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17840 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
17841 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
17842 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
17843 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
17844 : GIR_EraseFromParent, /*InsnID*/0,
17845 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17846 : // GIR_Coverage, 1420,
17847 : GIR_Done,
17848 : // Label 916: @45312
17849 : GIM_Try, /*On fail goto*//*Label 917*/ 45370, // Rule ID 1421 //
17850 : GIM_CheckFeatures, GIFBS_HasNEON,
17851 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrshiftu,
17852 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
17853 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
17854 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
17855 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
17856 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
17857 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
17858 : // (intrinsic_wo_chain:{ *:[v2i64] } 1125:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn) => (VQRSHLuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn)
17859 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRSHLuv2i64,
17860 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17861 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
17862 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
17863 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
17864 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
17865 : GIR_EraseFromParent, /*InsnID*/0,
17866 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17867 : // GIR_Coverage, 1421,
17868 : GIR_Done,
17869 : // Label 917: @45370
17870 : GIM_Try, /*On fail goto*//*Label 918*/ 45422, // Rule ID 1686 //
17871 : GIM_CheckFeatures, GIFBS_HasCrypto_HasV8,
17872 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_aesd,
17873 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
17874 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
17875 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
17876 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
17877 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
17878 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
17879 : // (intrinsic_wo_chain:{ *:[v16i8] } 1038:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$src, QPR:{ *:[v16i8] }:$Vm) => (AESD:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src, QPR:{ *:[v16i8] }:$Vm)
17880 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::AESD,
17881 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17882 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
17883 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
17884 : GIR_EraseFromParent, /*InsnID*/0,
17885 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17886 : // GIR_Coverage, 1686,
17887 : GIR_Done,
17888 : // Label 918: @45422
17889 : GIM_Try, /*On fail goto*//*Label 919*/ 45474, // Rule ID 1687 //
17890 : GIM_CheckFeatures, GIFBS_HasCrypto_HasV8,
17891 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_aese,
17892 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
17893 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
17894 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
17895 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
17896 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
17897 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
17898 : // (intrinsic_wo_chain:{ *:[v16i8] } 1039:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$src, QPR:{ *:[v16i8] }:$Vm) => (AESE:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src, QPR:{ *:[v16i8] }:$Vm)
17899 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::AESE,
17900 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17901 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
17902 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
17903 : GIR_EraseFromParent, /*InsnID*/0,
17904 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17905 : // GIR_Coverage, 1687,
17906 : GIR_Done,
17907 : // Label 919: @45474
17908 : GIM_Try, /*On fail goto*//*Label 920*/ 45526, // Rule ID 1690 //
17909 : GIM_CheckFeatures, GIFBS_HasCrypto_HasV8,
17910 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_sha1su1,
17911 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
17912 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
17913 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
17914 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
17915 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
17916 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
17917 : // (intrinsic_wo_chain:{ *:[v4i32] } 1048:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vm) => (SHA1SU1:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vm)
17918 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SHA1SU1,
17919 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17920 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
17921 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
17922 : GIR_EraseFromParent, /*InsnID*/0,
17923 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17924 : // GIR_Coverage, 1690,
17925 : GIR_Done,
17926 : // Label 920: @45526
17927 : GIM_Try, /*On fail goto*//*Label 921*/ 45578, // Rule ID 1691 //
17928 : GIM_CheckFeatures, GIFBS_HasCrypto_HasV8,
17929 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_sha256su0,
17930 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
17931 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
17932 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
17933 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
17934 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
17935 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
17936 : // (intrinsic_wo_chain:{ *:[v4i32] } 1051:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vm) => (SHA256SU0:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vm)
17937 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SHA256SU0,
17938 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
17939 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
17940 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
17941 : GIR_EraseFromParent, /*InsnID*/0,
17942 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17943 : // GIR_Coverage, 1691,
17944 : GIR_Done,
17945 : // Label 921: @45578
17946 : GIM_Try, /*On fail goto*//*Label 922*/ 45639, // Rule ID 1707 //
17947 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
17948 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_sxtab16,
17949 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
17950 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
17951 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
17952 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
17953 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
17954 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
17955 : // (intrinsic_wo_chain:{ *:[i32] } 1229:{ *:[iPTR] }, GPR:{ *:[i32] }:$LHS, GPR:{ *:[i32] }:$RHS) => (SXTAB16:{ *:[i32] } GPR:{ *:[i32] }:$LHS, GPR:{ *:[i32] }:$RHS, 0:{ *:[i32] })
17956 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SXTAB16,
17957 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
17958 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // LHS
17959 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // RHS
17960 : GIR_AddImm, /*InsnID*/0, /*Imm*/0,
17961 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
17962 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
17963 : GIR_EraseFromParent, /*InsnID*/0,
17964 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17965 : // GIR_Coverage, 1707,
17966 : GIR_Done,
17967 : // Label 922: @45639
17968 : GIM_Try, /*On fail goto*//*Label 923*/ 45700, // Rule ID 1714 //
17969 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
17970 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uxtab16,
17971 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
17972 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
17973 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
17974 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
17975 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
17976 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
17977 : // (intrinsic_wo_chain:{ *:[i32] } 1254:{ *:[iPTR] }, GPR:{ *:[i32] }:$LHS, GPR:{ *:[i32] }:$RHS) => (UXTAB16:{ *:[i32] } GPR:{ *:[i32] }:$LHS, GPR:{ *:[i32] }:$RHS, 0:{ *:[i32] })
17978 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UXTAB16,
17979 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
17980 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // LHS
17981 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // RHS
17982 : GIR_AddImm, /*InsnID*/0, /*Imm*/0,
17983 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
17984 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
17985 : GIR_EraseFromParent, /*InsnID*/0,
17986 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
17987 : // GIR_Coverage, 1714,
17988 : GIR_Done,
17989 : // Label 923: @45700
17990 : GIM_Try, /*On fail goto*//*Label 924*/ 45758, // Rule ID 1741 //
17991 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
17992 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smuad,
17993 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
17994 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
17995 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
17996 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
17997 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
17998 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
17999 : // (intrinsic_wo_chain:{ *:[i32] } 1205:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SMUAD:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
18000 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMUAD,
18001 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
18002 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
18003 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
18004 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
18005 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
18006 : GIR_EraseFromParent, /*InsnID*/0,
18007 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18008 : // GIR_Coverage, 1741,
18009 : GIR_Done,
18010 : // Label 924: @45758
18011 : GIM_Try, /*On fail goto*//*Label 925*/ 45816, // Rule ID 1742 //
18012 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
18013 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smuadx,
18014 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
18015 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
18016 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
18017 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
18018 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
18019 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
18020 : // (intrinsic_wo_chain:{ *:[i32] } 1206:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SMUADX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
18021 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMUADX,
18022 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
18023 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
18024 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
18025 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
18026 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
18027 : GIR_EraseFromParent, /*InsnID*/0,
18028 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18029 : // GIR_Coverage, 1742,
18030 : GIR_Done,
18031 : // Label 925: @45816
18032 : GIM_Try, /*On fail goto*//*Label 926*/ 45874, // Rule ID 1743 //
18033 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
18034 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smusd,
18035 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
18036 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
18037 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
18038 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
18039 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
18040 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
18041 : // (intrinsic_wo_chain:{ *:[i32] } 1213:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SMUSD:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
18042 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMUSD,
18043 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
18044 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
18045 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
18046 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
18047 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
18048 : GIR_EraseFromParent, /*InsnID*/0,
18049 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18050 : // GIR_Coverage, 1743,
18051 : GIR_Done,
18052 : // Label 926: @45874
18053 : GIM_Try, /*On fail goto*//*Label 927*/ 45932, // Rule ID 1744 //
18054 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
18055 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smusdx,
18056 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
18057 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
18058 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
18059 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
18060 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
18061 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
18062 : // (intrinsic_wo_chain:{ *:[i32] } 1214:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SMUSDX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
18063 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMUSDX,
18064 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
18065 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
18066 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
18067 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
18068 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
18069 : GIR_EraseFromParent, /*InsnID*/0,
18070 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18071 : // GIR_Coverage, 1744,
18072 : GIR_Done,
18073 : // Label 927: @45932
18074 : GIM_Try, /*On fail goto*//*Label 928*/ 45990, // Rule ID 1801 //
18075 : GIM_CheckFeatures, GIFBS_HasV5TE_IsARM,
18076 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smulbb,
18077 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
18078 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
18079 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
18080 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
18081 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
18082 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
18083 : // (intrinsic_wo_chain:{ *:[i32] } 1207:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b) => (SMULBB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b)
18084 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMULBB,
18085 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
18086 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
18087 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
18088 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
18089 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
18090 : GIR_EraseFromParent, /*InsnID*/0,
18091 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18092 : // GIR_Coverage, 1801,
18093 : GIR_Done,
18094 : // Label 928: @45990
18095 : GIM_Try, /*On fail goto*//*Label 929*/ 46048, // Rule ID 1802 //
18096 : GIM_CheckFeatures, GIFBS_HasV5TE_IsARM,
18097 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smulbt,
18098 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
18099 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
18100 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
18101 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
18102 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
18103 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
18104 : // (intrinsic_wo_chain:{ *:[i32] } 1208:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b) => (SMULBT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b)
18105 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMULBT,
18106 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
18107 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
18108 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
18109 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
18110 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
18111 : GIR_EraseFromParent, /*InsnID*/0,
18112 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18113 : // GIR_Coverage, 1802,
18114 : GIR_Done,
18115 : // Label 929: @46048
18116 : GIM_Try, /*On fail goto*//*Label 930*/ 46106, // Rule ID 1803 //
18117 : GIM_CheckFeatures, GIFBS_HasV5TE_IsARM,
18118 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smultb,
18119 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
18120 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
18121 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
18122 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
18123 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
18124 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
18125 : // (intrinsic_wo_chain:{ *:[i32] } 1209:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b) => (SMULTB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b)
18126 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMULTB,
18127 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
18128 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
18129 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
18130 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
18131 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
18132 : GIR_EraseFromParent, /*InsnID*/0,
18133 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18134 : // GIR_Coverage, 1803,
18135 : GIR_Done,
18136 : // Label 930: @46106
18137 : GIM_Try, /*On fail goto*//*Label 931*/ 46164, // Rule ID 1804 //
18138 : GIM_CheckFeatures, GIFBS_HasV5TE_IsARM,
18139 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smultt,
18140 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
18141 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
18142 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
18143 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
18144 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
18145 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
18146 : // (intrinsic_wo_chain:{ *:[i32] } 1210:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b) => (SMULTT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b)
18147 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMULTT,
18148 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
18149 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
18150 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
18151 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
18152 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
18153 : GIR_EraseFromParent, /*InsnID*/0,
18154 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18155 : // GIR_Coverage, 1804,
18156 : GIR_Done,
18157 : // Label 931: @46164
18158 : GIM_Try, /*On fail goto*//*Label 932*/ 46222, // Rule ID 1805 //
18159 : GIM_CheckFeatures, GIFBS_HasV5TE_IsARM,
18160 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smulwb,
18161 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
18162 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
18163 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
18164 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
18165 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
18166 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
18167 : // (intrinsic_wo_chain:{ *:[i32] } 1211:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b) => (SMULWB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b)
18168 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMULWB,
18169 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
18170 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
18171 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
18172 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
18173 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
18174 : GIR_EraseFromParent, /*InsnID*/0,
18175 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18176 : // GIR_Coverage, 1805,
18177 : GIR_Done,
18178 : // Label 932: @46222
18179 : GIM_Try, /*On fail goto*//*Label 933*/ 46280, // Rule ID 1806 //
18180 : GIM_CheckFeatures, GIFBS_HasV5TE_IsARM,
18181 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smulwt,
18182 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
18183 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
18184 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
18185 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
18186 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
18187 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
18188 : // (intrinsic_wo_chain:{ *:[i32] } 1212:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b) => (SMULWT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b)
18189 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMULWT,
18190 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
18191 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
18192 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
18193 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
18194 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
18195 : GIR_EraseFromParent, /*InsnID*/0,
18196 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18197 : // GIR_Coverage, 1806,
18198 : GIR_Done,
18199 : // Label 933: @46280
18200 : GIM_Try, /*On fail goto*//*Label 934*/ 46341, // Rule ID 1904 //
18201 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
18202 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_sxtab16,
18203 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
18204 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
18205 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
18206 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
18207 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
18208 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
18209 : // (intrinsic_wo_chain:{ *:[i32] } 1229:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SXTAB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
18210 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SXTAB16,
18211 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
18212 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
18213 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
18214 : GIR_AddImm, /*InsnID*/0, /*Imm*/0,
18215 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
18216 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
18217 : GIR_EraseFromParent, /*InsnID*/0,
18218 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18219 : // GIR_Coverage, 1904,
18220 : GIR_Done,
18221 : // Label 934: @46341
18222 : GIM_Try, /*On fail goto*//*Label 935*/ 46399, // Rule ID 1933 //
18223 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
18224 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_qadd,
18225 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
18226 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
18227 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
18228 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
18229 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
18230 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
18231 : // (intrinsic_wo_chain:{ *:[i32] } 1172:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn) => (t2QADD:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
18232 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2QADD,
18233 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
18234 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
18235 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rn
18236 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
18237 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
18238 : GIR_EraseFromParent, /*InsnID*/0,
18239 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18240 : // GIR_Coverage, 1933,
18241 : GIR_Done,
18242 : // Label 935: @46399
18243 : GIM_Try, /*On fail goto*//*Label 936*/ 46457, // Rule ID 1934 //
18244 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
18245 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_qsub,
18246 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
18247 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
18248 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
18249 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
18250 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
18251 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
18252 : // (intrinsic_wo_chain:{ *:[i32] } 1177:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn) => (t2QSUB:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
18253 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2QSUB,
18254 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
18255 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
18256 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rn
18257 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
18258 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
18259 : GIR_EraseFromParent, /*InsnID*/0,
18260 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18261 : // GIR_Coverage, 1934,
18262 : GIR_Done,
18263 : // Label 936: @46457
18264 : GIM_Try, /*On fail goto*//*Label 937*/ 46515, // Rule ID 1954 //
18265 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
18266 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smulbb,
18267 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
18268 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
18269 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
18270 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
18271 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
18272 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
18273 : // (intrinsic_wo_chain:{ *:[i32] } 1207:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SMULBB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
18274 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMULBB,
18275 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
18276 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
18277 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
18278 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
18279 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
18280 : GIR_EraseFromParent, /*InsnID*/0,
18281 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18282 : // GIR_Coverage, 1954,
18283 : GIR_Done,
18284 : // Label 937: @46515
18285 : GIM_Try, /*On fail goto*//*Label 938*/ 46573, // Rule ID 1955 //
18286 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
18287 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smulbt,
18288 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
18289 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
18290 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
18291 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
18292 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
18293 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
18294 : // (intrinsic_wo_chain:{ *:[i32] } 1208:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SMULBT:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
18295 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMULBT,
18296 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
18297 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
18298 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
18299 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
18300 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
18301 : GIR_EraseFromParent, /*InsnID*/0,
18302 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18303 : // GIR_Coverage, 1955,
18304 : GIR_Done,
18305 : // Label 938: @46573
18306 : GIM_Try, /*On fail goto*//*Label 939*/ 46631, // Rule ID 1956 //
18307 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
18308 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smultb,
18309 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
18310 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
18311 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
18312 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
18313 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
18314 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
18315 : // (intrinsic_wo_chain:{ *:[i32] } 1209:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SMULTB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
18316 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMULTB,
18317 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
18318 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
18319 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
18320 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
18321 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
18322 : GIR_EraseFromParent, /*InsnID*/0,
18323 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18324 : // GIR_Coverage, 1956,
18325 : GIR_Done,
18326 : // Label 939: @46631
18327 : GIM_Try, /*On fail goto*//*Label 940*/ 46689, // Rule ID 1957 //
18328 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
18329 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smultt,
18330 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
18331 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
18332 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
18333 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
18334 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
18335 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
18336 : // (intrinsic_wo_chain:{ *:[i32] } 1210:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SMULTT:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
18337 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMULTT,
18338 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
18339 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
18340 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
18341 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
18342 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
18343 : GIR_EraseFromParent, /*InsnID*/0,
18344 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18345 : // GIR_Coverage, 1957,
18346 : GIR_Done,
18347 : // Label 940: @46689
18348 : GIM_Try, /*On fail goto*//*Label 941*/ 46747, // Rule ID 1958 //
18349 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
18350 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smulwb,
18351 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
18352 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
18353 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
18354 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
18355 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
18356 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
18357 : // (intrinsic_wo_chain:{ *:[i32] } 1211:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SMULWB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
18358 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMULWB,
18359 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
18360 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
18361 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
18362 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
18363 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
18364 : GIR_EraseFromParent, /*InsnID*/0,
18365 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18366 : // GIR_Coverage, 1958,
18367 : GIR_Done,
18368 : // Label 941: @46747
18369 : GIM_Try, /*On fail goto*//*Label 942*/ 46805, // Rule ID 1959 //
18370 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
18371 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smulwt,
18372 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
18373 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
18374 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
18375 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
18376 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
18377 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
18378 : // (intrinsic_wo_chain:{ *:[i32] } 1212:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SMULWT:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
18379 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMULWT,
18380 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
18381 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
18382 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
18383 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
18384 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
18385 : GIR_EraseFromParent, /*InsnID*/0,
18386 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18387 : // GIR_Coverage, 1959,
18388 : GIR_Done,
18389 : // Label 942: @46805
18390 : GIM_Reject,
18391 : // Label 587: @46806
18392 : GIM_Try, /*On fail goto*//*Label 943*/ 49634,
18393 : GIM_CheckNumOperands, /*MI*/0, /*Expected*/5,
18394 : GIM_Try, /*On fail goto*//*Label 944*/ 46881, // Rule ID 148 //
18395 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
18396 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_usada8,
18397 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
18398 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
18399 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
18400 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
18401 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
18402 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
18403 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
18404 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::GPRRegClassID,
18405 : // (intrinsic_wo_chain:{ *:[i32] } 1248:{ *:[iPTR] }, GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra) => (USADA8:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra)
18406 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::USADA8,
18407 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
18408 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
18409 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
18410 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Ra
18411 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
18412 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
18413 : GIR_EraseFromParent, /*InsnID*/0,
18414 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18415 : // GIR_Coverage, 148,
18416 : GIR_Done,
18417 : // Label 944: @46881
18418 : GIM_Try, /*On fail goto*//*Label 945*/ 46951, // Rule ID 473 //
18419 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
18420 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_usada8,
18421 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
18422 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
18423 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
18424 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
18425 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
18426 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
18427 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
18428 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::rGPRRegClassID,
18429 : // (intrinsic_wo_chain:{ *:[i32] } 1248:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra) => (t2USADA8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
18430 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2USADA8,
18431 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
18432 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
18433 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
18434 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Ra
18435 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
18436 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
18437 : GIR_EraseFromParent, /*InsnID*/0,
18438 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18439 : // GIR_Coverage, 473,
18440 : GIR_Done,
18441 : // Label 945: @46951
18442 : GIM_Try, /*On fail goto*//*Label 946*/ 47021, // Rule ID 532 //
18443 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
18444 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smlad,
18445 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
18446 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
18447 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
18448 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
18449 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
18450 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
18451 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
18452 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::rGPRRegClassID,
18453 : // (intrinsic_wo_chain:{ *:[i32] } 1193:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra) => (t2SMLAD:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
18454 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMLAD,
18455 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
18456 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
18457 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
18458 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Ra
18459 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
18460 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
18461 : GIR_EraseFromParent, /*InsnID*/0,
18462 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18463 : // GIR_Coverage, 532,
18464 : GIR_Done,
18465 : // Label 946: @47021
18466 : GIM_Try, /*On fail goto*//*Label 947*/ 47091, // Rule ID 533 //
18467 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
18468 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smladx,
18469 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
18470 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
18471 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
18472 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
18473 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
18474 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
18475 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
18476 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::rGPRRegClassID,
18477 : // (intrinsic_wo_chain:{ *:[i32] } 1194:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra) => (t2SMLADX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
18478 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMLADX,
18479 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
18480 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
18481 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
18482 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Ra
18483 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
18484 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
18485 : GIR_EraseFromParent, /*InsnID*/0,
18486 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18487 : // GIR_Coverage, 533,
18488 : GIR_Done,
18489 : // Label 947: @47091
18490 : GIM_Try, /*On fail goto*//*Label 948*/ 47161, // Rule ID 534 //
18491 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
18492 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smlsd,
18493 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
18494 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
18495 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
18496 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
18497 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
18498 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
18499 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
18500 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::rGPRRegClassID,
18501 : // (intrinsic_wo_chain:{ *:[i32] } 1201:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra) => (t2SMLSD:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
18502 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMLSD,
18503 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
18504 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
18505 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
18506 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Ra
18507 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
18508 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
18509 : GIR_EraseFromParent, /*InsnID*/0,
18510 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18511 : // GIR_Coverage, 534,
18512 : GIR_Done,
18513 : // Label 948: @47161
18514 : GIM_Try, /*On fail goto*//*Label 949*/ 47231, // Rule ID 535 //
18515 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
18516 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smlsdx,
18517 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
18518 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
18519 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
18520 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
18521 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
18522 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
18523 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
18524 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::rGPRRegClassID,
18525 : // (intrinsic_wo_chain:{ *:[i32] } 1202:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra) => (t2SMLSDX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
18526 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMLSDX,
18527 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
18528 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
18529 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
18530 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Ra
18531 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
18532 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
18533 : GIR_EraseFromParent, /*InsnID*/0,
18534 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18535 : // GIR_Coverage, 535,
18536 : GIR_Done,
18537 : // Label 949: @47231
18538 : GIM_Try, /*On fail goto*//*Label 950*/ 47295, // Rule ID 937 //
18539 : GIM_CheckFeatures, GIFBS_HasDotProd,
18540 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_udot,
18541 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
18542 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
18543 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
18544 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s8,
18545 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
18546 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
18547 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
18548 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::DPRRegClassID,
18549 : // (intrinsic_wo_chain:{ *:[v2i32] } 1053:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VUDOTD:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
18550 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VUDOTD,
18551 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
18552 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vd
18553 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
18554 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
18555 : GIR_EraseFromParent, /*InsnID*/0,
18556 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18557 : // GIR_Coverage, 937,
18558 : GIR_Done,
18559 : // Label 950: @47295
18560 : GIM_Try, /*On fail goto*//*Label 951*/ 47359, // Rule ID 938 //
18561 : GIM_CheckFeatures, GIFBS_HasDotProd,
18562 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_sdot,
18563 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
18564 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
18565 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
18566 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s8,
18567 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
18568 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
18569 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
18570 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::DPRRegClassID,
18571 : // (intrinsic_wo_chain:{ *:[v2i32] } 1042:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VSDOTD:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
18572 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSDOTD,
18573 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
18574 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vd
18575 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
18576 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
18577 : GIR_EraseFromParent, /*InsnID*/0,
18578 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18579 : // GIR_Coverage, 938,
18580 : GIR_Done,
18581 : // Label 951: @47359
18582 : GIM_Try, /*On fail goto*//*Label 952*/ 47423, // Rule ID 939 //
18583 : GIM_CheckFeatures, GIFBS_HasDotProd,
18584 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_udot,
18585 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
18586 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
18587 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
18588 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v16s8,
18589 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
18590 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
18591 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
18592 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::QPRRegClassID,
18593 : // (intrinsic_wo_chain:{ *:[v4i32] } 1053:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VUDOTQ:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
18594 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VUDOTQ,
18595 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
18596 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vd
18597 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
18598 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
18599 : GIR_EraseFromParent, /*InsnID*/0,
18600 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18601 : // GIR_Coverage, 939,
18602 : GIR_Done,
18603 : // Label 952: @47423
18604 : GIM_Try, /*On fail goto*//*Label 953*/ 47487, // Rule ID 940 //
18605 : GIM_CheckFeatures, GIFBS_HasDotProd,
18606 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_sdot,
18607 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
18608 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
18609 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
18610 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v16s8,
18611 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
18612 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
18613 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
18614 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::QPRRegClassID,
18615 : // (intrinsic_wo_chain:{ *:[v4i32] } 1042:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VSDOTQ:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
18616 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSDOTQ,
18617 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
18618 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vd
18619 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
18620 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
18621 : GIR_EraseFromParent, /*InsnID*/0,
18622 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18623 : // GIR_Coverage, 940,
18624 : GIR_Done,
18625 : // Label 953: @47487
18626 : GIM_Try, /*On fail goto*//*Label 954*/ 47557, // Rule ID 1661 //
18627 : GIM_CheckFeatures, GIFBS_HasNEON,
18628 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vtbx1,
18629 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
18630 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
18631 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
18632 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s8,
18633 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
18634 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
18635 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
18636 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::DPRRegClassID,
18637 : // (intrinsic_wo_chain:{ *:[v8i8] } 1168:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$orig, VecListOneD:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VTBX1:{ *:[v8i8] } DPR:{ *:[v8i8] }:$orig, VecListOneD:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
18638 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VTBX1,
18639 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
18640 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // orig
18641 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
18642 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
18643 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
18644 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
18645 : GIR_EraseFromParent, /*InsnID*/0,
18646 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18647 : // GIR_Coverage, 1661,
18648 : GIR_Done,
18649 : // Label 954: @47557
18650 : GIM_Try, /*On fail goto*//*Label 955*/ 47621, // Rule ID 1692 //
18651 : GIM_CheckFeatures, GIFBS_HasCrypto_HasV8,
18652 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_sha1su0,
18653 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
18654 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
18655 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
18656 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s32,
18657 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
18658 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
18659 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
18660 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::QPRRegClassID,
18661 : // (intrinsic_wo_chain:{ *:[v4i32] } 1047:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (SHA1SU0:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
18662 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SHA1SU0,
18663 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
18664 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
18665 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
18666 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
18667 : GIR_EraseFromParent, /*InsnID*/0,
18668 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18669 : // GIR_Coverage, 1692,
18670 : GIR_Done,
18671 : // Label 955: @47621
18672 : GIM_Try, /*On fail goto*//*Label 956*/ 47685, // Rule ID 1693 //
18673 : GIM_CheckFeatures, GIFBS_HasCrypto_HasV8,
18674 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_sha256h,
18675 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
18676 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
18677 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
18678 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s32,
18679 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
18680 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
18681 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
18682 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::QPRRegClassID,
18683 : // (intrinsic_wo_chain:{ *:[v4i32] } 1049:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (SHA256H:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
18684 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SHA256H,
18685 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
18686 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
18687 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
18688 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
18689 : GIR_EraseFromParent, /*InsnID*/0,
18690 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18691 : // GIR_Coverage, 1693,
18692 : GIR_Done,
18693 : // Label 956: @47685
18694 : GIM_Try, /*On fail goto*//*Label 957*/ 47749, // Rule ID 1694 //
18695 : GIM_CheckFeatures, GIFBS_HasCrypto_HasV8,
18696 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_sha256h2,
18697 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
18698 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
18699 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
18700 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s32,
18701 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
18702 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
18703 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
18704 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::QPRRegClassID,
18705 : // (intrinsic_wo_chain:{ *:[v4i32] } 1050:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (SHA256H2:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
18706 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SHA256H2,
18707 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
18708 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
18709 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
18710 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
18711 : GIR_EraseFromParent, /*InsnID*/0,
18712 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18713 : // GIR_Coverage, 1694,
18714 : GIR_Done,
18715 : // Label 957: @47749
18716 : GIM_Try, /*On fail goto*//*Label 958*/ 47813, // Rule ID 1695 //
18717 : GIM_CheckFeatures, GIFBS_HasCrypto_HasV8,
18718 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_sha256su1,
18719 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
18720 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
18721 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
18722 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s32,
18723 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
18724 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
18725 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
18726 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::QPRRegClassID,
18727 : // (intrinsic_wo_chain:{ *:[v4i32] } 1052:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (SHA256SU1:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
18728 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SHA256SU1,
18729 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
18730 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
18731 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
18732 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
18733 : GIR_EraseFromParent, /*InsnID*/0,
18734 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18735 : // GIR_Coverage, 1695,
18736 : GIR_Done,
18737 : // Label 958: @47813
18738 : GIM_Try, /*On fail goto*//*Label 959*/ 47883, // Rule ID 1733 //
18739 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
18740 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smlad,
18741 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
18742 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
18743 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
18744 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
18745 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
18746 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
18747 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
18748 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::GPRRegClassID,
18749 : // (intrinsic_wo_chain:{ *:[i32] } 1193:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra) => (SMLAD:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Ra)
18750 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMLAD,
18751 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
18752 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
18753 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
18754 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Ra
18755 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
18756 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
18757 : GIR_EraseFromParent, /*InsnID*/0,
18758 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18759 : // GIR_Coverage, 1733,
18760 : GIR_Done,
18761 : // Label 959: @47883
18762 : GIM_Try, /*On fail goto*//*Label 960*/ 47953, // Rule ID 1734 //
18763 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
18764 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smladx,
18765 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
18766 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
18767 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
18768 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
18769 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
18770 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
18771 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
18772 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::GPRRegClassID,
18773 : // (intrinsic_wo_chain:{ *:[i32] } 1194:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra) => (SMLADX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Ra)
18774 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMLADX,
18775 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
18776 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
18777 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
18778 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Ra
18779 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
18780 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
18781 : GIR_EraseFromParent, /*InsnID*/0,
18782 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18783 : // GIR_Coverage, 1734,
18784 : GIR_Done,
18785 : // Label 960: @47953
18786 : GIM_Try, /*On fail goto*//*Label 961*/ 48023, // Rule ID 1735 //
18787 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
18788 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smlsd,
18789 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
18790 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
18791 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
18792 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
18793 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
18794 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
18795 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
18796 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::GPRRegClassID,
18797 : // (intrinsic_wo_chain:{ *:[i32] } 1201:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra) => (SMLSD:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Ra)
18798 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMLSD,
18799 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
18800 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
18801 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
18802 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Ra
18803 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
18804 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
18805 : GIR_EraseFromParent, /*InsnID*/0,
18806 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18807 : // GIR_Coverage, 1735,
18808 : GIR_Done,
18809 : // Label 961: @48023
18810 : GIM_Try, /*On fail goto*//*Label 962*/ 48093, // Rule ID 1736 //
18811 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
18812 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smlsdx,
18813 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
18814 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
18815 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
18816 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
18817 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
18818 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
18819 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
18820 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::GPRRegClassID,
18821 : // (intrinsic_wo_chain:{ *:[i32] } 1202:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra) => (SMLSDX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Ra)
18822 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMLSDX,
18823 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
18824 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
18825 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
18826 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Ra
18827 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
18828 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
18829 : GIR_EraseFromParent, /*InsnID*/0,
18830 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18831 : // GIR_Coverage, 1736,
18832 : GIR_Done,
18833 : // Label 962: @48093
18834 : GIM_Try, /*On fail goto*//*Label 963*/ 48163, // Rule ID 1807 //
18835 : GIM_CheckFeatures, GIFBS_HasV5TE_IsARM,
18836 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smlabb,
18837 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
18838 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
18839 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
18840 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
18841 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
18842 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
18843 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
18844 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::GPRRegClassID,
18845 : // (intrinsic_wo_chain:{ *:[i32] } 1191:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) => (SMLABB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
18846 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMLABB,
18847 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
18848 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
18849 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
18850 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // acc
18851 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
18852 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
18853 : GIR_EraseFromParent, /*InsnID*/0,
18854 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18855 : // GIR_Coverage, 1807,
18856 : GIR_Done,
18857 : // Label 963: @48163
18858 : GIM_Try, /*On fail goto*//*Label 964*/ 48233, // Rule ID 1808 //
18859 : GIM_CheckFeatures, GIFBS_HasV5TE_IsARM,
18860 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smlabt,
18861 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
18862 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
18863 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
18864 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
18865 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
18866 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
18867 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
18868 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::GPRRegClassID,
18869 : // (intrinsic_wo_chain:{ *:[i32] } 1192:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) => (SMLABT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
18870 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMLABT,
18871 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
18872 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
18873 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
18874 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // acc
18875 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
18876 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
18877 : GIR_EraseFromParent, /*InsnID*/0,
18878 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18879 : // GIR_Coverage, 1808,
18880 : GIR_Done,
18881 : // Label 964: @48233
18882 : GIM_Try, /*On fail goto*//*Label 965*/ 48303, // Rule ID 1809 //
18883 : GIM_CheckFeatures, GIFBS_HasV5TE_IsARM,
18884 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smlatb,
18885 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
18886 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
18887 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
18888 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
18889 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
18890 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
18891 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
18892 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::GPRRegClassID,
18893 : // (intrinsic_wo_chain:{ *:[i32] } 1197:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) => (SMLATB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
18894 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMLATB,
18895 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
18896 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
18897 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
18898 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // acc
18899 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
18900 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
18901 : GIR_EraseFromParent, /*InsnID*/0,
18902 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18903 : // GIR_Coverage, 1809,
18904 : GIR_Done,
18905 : // Label 965: @48303
18906 : GIM_Try, /*On fail goto*//*Label 966*/ 48373, // Rule ID 1810 //
18907 : GIM_CheckFeatures, GIFBS_HasV5TE_IsARM,
18908 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smlatt,
18909 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
18910 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
18911 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
18912 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
18913 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
18914 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
18915 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
18916 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::GPRRegClassID,
18917 : // (intrinsic_wo_chain:{ *:[i32] } 1198:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) => (SMLATT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
18918 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMLATT,
18919 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
18920 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
18921 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
18922 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // acc
18923 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
18924 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
18925 : GIR_EraseFromParent, /*InsnID*/0,
18926 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18927 : // GIR_Coverage, 1810,
18928 : GIR_Done,
18929 : // Label 966: @48373
18930 : GIM_Try, /*On fail goto*//*Label 967*/ 48443, // Rule ID 1811 //
18931 : GIM_CheckFeatures, GIFBS_HasV5TE_IsARM,
18932 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smlawb,
18933 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
18934 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
18935 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
18936 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
18937 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
18938 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
18939 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
18940 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::GPRRegClassID,
18941 : // (intrinsic_wo_chain:{ *:[i32] } 1199:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) => (SMLAWB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
18942 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMLAWB,
18943 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
18944 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
18945 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
18946 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // acc
18947 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
18948 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
18949 : GIR_EraseFromParent, /*InsnID*/0,
18950 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18951 : // GIR_Coverage, 1811,
18952 : GIR_Done,
18953 : // Label 967: @48443
18954 : GIM_Try, /*On fail goto*//*Label 968*/ 48513, // Rule ID 1812 //
18955 : GIM_CheckFeatures, GIFBS_HasV5TE_IsARM,
18956 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smlawt,
18957 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
18958 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
18959 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
18960 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
18961 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
18962 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
18963 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
18964 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::GPRRegClassID,
18965 : // (intrinsic_wo_chain:{ *:[i32] } 1200:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) => (SMLAWT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
18966 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMLAWT,
18967 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
18968 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
18969 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
18970 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // acc
18971 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
18972 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
18973 : GIR_EraseFromParent, /*InsnID*/0,
18974 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18975 : // GIR_Coverage, 1812,
18976 : GIR_Done,
18977 : // Label 968: @48513
18978 : GIM_Try, /*On fail goto*//*Label 969*/ 48583, // Rule ID 1963 //
18979 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
18980 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smlabb,
18981 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
18982 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
18983 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
18984 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
18985 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
18986 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
18987 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
18988 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::GPRRegClassID,
18989 : // (intrinsic_wo_chain:{ *:[i32] } 1191:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) => (t2SMLABB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
18990 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMLABB,
18991 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
18992 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
18993 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
18994 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // acc
18995 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
18996 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
18997 : GIR_EraseFromParent, /*InsnID*/0,
18998 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
18999 : // GIR_Coverage, 1963,
19000 : GIR_Done,
19001 : // Label 969: @48583
19002 : GIM_Try, /*On fail goto*//*Label 970*/ 48653, // Rule ID 1964 //
19003 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
19004 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smlabt,
19005 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
19006 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
19007 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
19008 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
19009 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
19010 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
19011 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
19012 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::GPRRegClassID,
19013 : // (intrinsic_wo_chain:{ *:[i32] } 1192:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) => (t2SMLABT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
19014 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMLABT,
19015 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
19016 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
19017 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
19018 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // acc
19019 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
19020 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
19021 : GIR_EraseFromParent, /*InsnID*/0,
19022 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19023 : // GIR_Coverage, 1964,
19024 : GIR_Done,
19025 : // Label 970: @48653
19026 : GIM_Try, /*On fail goto*//*Label 971*/ 48723, // Rule ID 1965 //
19027 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
19028 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smlatb,
19029 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
19030 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
19031 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
19032 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
19033 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
19034 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
19035 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
19036 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::GPRRegClassID,
19037 : // (intrinsic_wo_chain:{ *:[i32] } 1197:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) => (t2SMLATB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
19038 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMLATB,
19039 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
19040 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
19041 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
19042 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // acc
19043 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
19044 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
19045 : GIR_EraseFromParent, /*InsnID*/0,
19046 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19047 : // GIR_Coverage, 1965,
19048 : GIR_Done,
19049 : // Label 971: @48723
19050 : GIM_Try, /*On fail goto*//*Label 972*/ 48793, // Rule ID 1966 //
19051 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
19052 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smlatt,
19053 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
19054 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
19055 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
19056 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
19057 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
19058 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
19059 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
19060 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::GPRRegClassID,
19061 : // (intrinsic_wo_chain:{ *:[i32] } 1198:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) => (t2SMLATT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
19062 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMLATT,
19063 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
19064 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
19065 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
19066 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // acc
19067 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
19068 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
19069 : GIR_EraseFromParent, /*InsnID*/0,
19070 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19071 : // GIR_Coverage, 1966,
19072 : GIR_Done,
19073 : // Label 972: @48793
19074 : GIM_Try, /*On fail goto*//*Label 973*/ 48863, // Rule ID 1967 //
19075 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
19076 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smlawb,
19077 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
19078 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
19079 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
19080 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
19081 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
19082 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
19083 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
19084 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::GPRRegClassID,
19085 : // (intrinsic_wo_chain:{ *:[i32] } 1199:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) => (t2SMLAWB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
19086 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMLAWB,
19087 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
19088 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
19089 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
19090 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // acc
19091 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
19092 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
19093 : GIR_EraseFromParent, /*InsnID*/0,
19094 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19095 : // GIR_Coverage, 1967,
19096 : GIR_Done,
19097 : // Label 973: @48863
19098 : GIM_Try, /*On fail goto*//*Label 974*/ 48933, // Rule ID 1968 //
19099 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
19100 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smlawt,
19101 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
19102 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
19103 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
19104 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
19105 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
19106 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
19107 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
19108 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::GPRRegClassID,
19109 : // (intrinsic_wo_chain:{ *:[i32] } 1200:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) => (t2SMLAWT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
19110 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMLAWT,
19111 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
19112 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
19113 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
19114 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // acc
19115 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
19116 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
19117 : GIR_EraseFromParent, /*InsnID*/0,
19118 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19119 : // GIR_Coverage, 1968,
19120 : GIR_Done,
19121 : // Label 974: @48933
19122 : GIM_Try, /*On fail goto*//*Label 975*/ 49003, // Rule ID 2217 //
19123 : GIM_CheckFeatures, GIFBS_HasNEON,
19124 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vbsl,
19125 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
19126 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
19127 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
19128 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s8,
19129 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
19130 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
19131 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
19132 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::DPRRegClassID,
19133 : // (intrinsic_wo_chain:{ *:[v8i8] } 1059:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VBSLd:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
19134 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VBSLd,
19135 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
19136 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
19137 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
19138 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
19139 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
19140 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
19141 : GIR_EraseFromParent, /*InsnID*/0,
19142 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19143 : // GIR_Coverage, 2217,
19144 : GIR_Done,
19145 : // Label 975: @49003
19146 : GIM_Try, /*On fail goto*//*Label 976*/ 49073, // Rule ID 2218 //
19147 : GIM_CheckFeatures, GIFBS_HasNEON,
19148 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vbsl,
19149 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
19150 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
19151 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
19152 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s16,
19153 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
19154 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
19155 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
19156 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::DPRRegClassID,
19157 : // (intrinsic_wo_chain:{ *:[v4i16] } 1059:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VBSLd:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
19158 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VBSLd,
19159 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
19160 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
19161 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
19162 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
19163 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
19164 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
19165 : GIR_EraseFromParent, /*InsnID*/0,
19166 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19167 : // GIR_Coverage, 2218,
19168 : GIR_Done,
19169 : // Label 976: @49073
19170 : GIM_Try, /*On fail goto*//*Label 977*/ 49143, // Rule ID 2219 //
19171 : GIM_CheckFeatures, GIFBS_HasNEON,
19172 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vbsl,
19173 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
19174 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
19175 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
19176 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v2s32,
19177 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
19178 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
19179 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
19180 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::DPRRegClassID,
19181 : // (intrinsic_wo_chain:{ *:[v2i32] } 1059:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VBSLd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
19182 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VBSLd,
19183 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
19184 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
19185 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
19186 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
19187 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
19188 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
19189 : GIR_EraseFromParent, /*InsnID*/0,
19190 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19191 : // GIR_Coverage, 2219,
19192 : GIR_Done,
19193 : // Label 977: @49143
19194 : GIM_Try, /*On fail goto*//*Label 978*/ 49213, // Rule ID 2220 //
19195 : GIM_CheckFeatures, GIFBS_HasNEON,
19196 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vbsl,
19197 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
19198 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
19199 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
19200 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v2s32,
19201 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
19202 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
19203 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
19204 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::DPRRegClassID,
19205 : // (intrinsic_wo_chain:{ *:[v2f32] } 1059:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$src1, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) => (VBSLd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$src1, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
19206 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VBSLd,
19207 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
19208 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
19209 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
19210 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
19211 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
19212 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
19213 : GIR_EraseFromParent, /*InsnID*/0,
19214 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19215 : // GIR_Coverage, 2220,
19216 : GIR_Done,
19217 : // Label 978: @49213
19218 : GIM_Try, /*On fail goto*//*Label 979*/ 49283, // Rule ID 2221 //
19219 : GIM_CheckFeatures, GIFBS_HasNEON,
19220 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vbsl,
19221 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
19222 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
19223 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
19224 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s64,
19225 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
19226 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
19227 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
19228 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::DPRRegClassID,
19229 : // (intrinsic_wo_chain:{ *:[v1i64] } 1059:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm) => (VBSLd:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
19230 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VBSLd,
19231 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
19232 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
19233 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
19234 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
19235 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
19236 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
19237 : GIR_EraseFromParent, /*InsnID*/0,
19238 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19239 : // GIR_Coverage, 2221,
19240 : GIR_Done,
19241 : // Label 979: @49283
19242 : GIM_Try, /*On fail goto*//*Label 980*/ 49353, // Rule ID 2224 //
19243 : GIM_CheckFeatures, GIFBS_HasNEON,
19244 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vbsl,
19245 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
19246 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
19247 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
19248 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v16s8,
19249 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
19250 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
19251 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
19252 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::QPRRegClassID,
19253 : // (intrinsic_wo_chain:{ *:[v16i8] } 1059:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VBSLq:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
19254 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VBSLq,
19255 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
19256 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
19257 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
19258 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
19259 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
19260 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
19261 : GIR_EraseFromParent, /*InsnID*/0,
19262 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19263 : // GIR_Coverage, 2224,
19264 : GIR_Done,
19265 : // Label 980: @49353
19266 : GIM_Try, /*On fail goto*//*Label 981*/ 49423, // Rule ID 2225 //
19267 : GIM_CheckFeatures, GIFBS_HasNEON,
19268 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vbsl,
19269 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
19270 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
19271 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
19272 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s16,
19273 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
19274 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
19275 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
19276 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::QPRRegClassID,
19277 : // (intrinsic_wo_chain:{ *:[v8i16] } 1059:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VBSLq:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
19278 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VBSLq,
19279 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
19280 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
19281 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
19282 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
19283 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
19284 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
19285 : GIR_EraseFromParent, /*InsnID*/0,
19286 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19287 : // GIR_Coverage, 2225,
19288 : GIR_Done,
19289 : // Label 981: @49423
19290 : GIM_Try, /*On fail goto*//*Label 982*/ 49493, // Rule ID 2226 //
19291 : GIM_CheckFeatures, GIFBS_HasNEON,
19292 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vbsl,
19293 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
19294 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
19295 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
19296 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s32,
19297 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
19298 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
19299 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
19300 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::QPRRegClassID,
19301 : // (intrinsic_wo_chain:{ *:[v4i32] } 1059:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VBSLq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
19302 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VBSLq,
19303 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
19304 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
19305 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
19306 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
19307 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
19308 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
19309 : GIR_EraseFromParent, /*InsnID*/0,
19310 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19311 : // GIR_Coverage, 2226,
19312 : GIR_Done,
19313 : // Label 982: @49493
19314 : GIM_Try, /*On fail goto*//*Label 983*/ 49563, // Rule ID 2227 //
19315 : GIM_CheckFeatures, GIFBS_HasNEON,
19316 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vbsl,
19317 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
19318 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
19319 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
19320 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s32,
19321 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
19322 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
19323 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
19324 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::QPRRegClassID,
19325 : // (intrinsic_wo_chain:{ *:[v4f32] } 1059:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$src1, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) => (VBSLq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
19326 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VBSLq,
19327 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
19328 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
19329 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
19330 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
19331 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
19332 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
19333 : GIR_EraseFromParent, /*InsnID*/0,
19334 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19335 : // GIR_Coverage, 2227,
19336 : GIR_Done,
19337 : // Label 983: @49563
19338 : GIM_Try, /*On fail goto*//*Label 984*/ 49633, // Rule ID 2228 //
19339 : GIM_CheckFeatures, GIFBS_HasNEON,
19340 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vbsl,
19341 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
19342 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
19343 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
19344 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v2s64,
19345 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
19346 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
19347 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
19348 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::QPRRegClassID,
19349 : // (intrinsic_wo_chain:{ *:[v2i64] } 1059:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm) => (VBSLq:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
19350 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VBSLq,
19351 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
19352 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
19353 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
19354 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
19355 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
19356 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
19357 : GIR_EraseFromParent, /*InsnID*/0,
19358 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19359 : // GIR_Coverage, 2228,
19360 : GIR_Done,
19361 : // Label 984: @49633
19362 : GIM_Reject,
19363 : // Label 943: @49634
19364 : GIM_Reject,
19365 : // Label 10: @49635
19366 : GIM_Try, /*On fail goto*//*Label 985*/ 49680,
19367 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_clrex,
19368 : GIM_Try, /*On fail goto*//*Label 986*/ 49657, // Rule ID 254 //
19369 : GIM_CheckFeatures, GIFBS_HasV6K_IsARM,
19370 : // (intrinsic_void 1009:{ *:[iPTR] }) => (CLREX)
19371 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::CLREX,
19372 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
19373 : GIR_EraseFromParent, /*InsnID*/0,
19374 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19375 : // GIR_Coverage, 254,
19376 : GIR_Done,
19377 : // Label 986: @49657
19378 : GIM_Try, /*On fail goto*//*Label 987*/ 49679, // Rule ID 587 //
19379 : GIM_CheckFeatures, GIFBS_HasV7Clrex_IsThumb,
19380 : // (intrinsic_void 1009:{ *:[iPTR] }) => (t2CLREX)
19381 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2CLREX,
19382 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
19383 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
19384 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
19385 : GIR_EraseFromParent, /*InsnID*/0,
19386 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19387 : // GIR_Coverage, 587,
19388 : GIR_Done,
19389 : // Label 987: @49679
19390 : GIM_Reject,
19391 : // Label 985: @49680
19392 : GIM_Try, /*On fail goto*//*Label 988*/ 50398,
19393 : GIM_CheckNumOperands, /*MI*/0, /*Expected*/2,
19394 : GIM_Try, /*On fail goto*//*Label 989*/ 49713, // Rule ID 350 //
19395 : GIM_CheckFeatures, GIFBS_IsThumb_IsWindows,
19396 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_undefined,
19397 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
19398 : GIM_CheckConstantInt, /*MI*/0, /*Op*/1, 249,
19399 : // (intrinsic_void 1240:{ *:[iPTR] }, 249:{ *:[i32] }) => (t__brkdiv0)
19400 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t__brkdiv0,
19401 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
19402 : GIR_EraseFromParent, /*InsnID*/0,
19403 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19404 : // GIR_Coverage, 350,
19405 : GIR_Done,
19406 : // Label 989: @49713
19407 : GIM_Try, /*On fail goto*//*Label 990*/ 49759, // Rule ID 2 //
19408 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
19409 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_hint,
19410 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
19411 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
19412 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
19413 : GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_239,
19414 : // MIs[1] Operand 1
19415 : // No operand predicates
19416 : GIM_CheckIsSafeToFold, /*InsnID*/1,
19417 : // (intrinsic_void 1020:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_239>>:$imm) => (HINT (imm:{ *:[i32] }):$imm)
19418 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::HINT,
19419 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
19420 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
19421 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
19422 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
19423 : GIR_EraseFromParent, /*InsnID*/0,
19424 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19425 : // GIR_Coverage, 2,
19426 : GIR_Done,
19427 : // Label 990: @49759
19428 : GIM_Try, /*On fail goto*//*Label 991*/ 49805, // Rule ID 10 //
19429 : GIM_CheckFeatures, GIFBS_HasV7_IsARM,
19430 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_dbg,
19431 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
19432 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
19433 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
19434 : GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_15,
19435 : // MIs[1] Operand 1
19436 : // No operand predicates
19437 : GIM_CheckIsSafeToFold, /*InsnID*/1,
19438 : // (intrinsic_void 1016:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$opt) => (DBG (imm:{ *:[i32] }):$opt)
19439 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::DBG,
19440 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // opt
19441 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
19442 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
19443 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
19444 : GIR_EraseFromParent, /*InsnID*/0,
19445 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19446 : // GIR_Coverage, 10,
19447 : GIR_Done,
19448 : // Label 991: @49805
19449 : GIM_Try, /*On fail goto*//*Label 992*/ 49845, // Rule ID 11 //
19450 : GIM_CheckFeatures, GIFBS_IsARM,
19451 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_undefined,
19452 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
19453 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
19454 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
19455 : GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_65535,
19456 : // MIs[1] Operand 1
19457 : // No operand predicates
19458 : GIM_CheckIsSafeToFold, /*InsnID*/1,
19459 : // (intrinsic_void 1240:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_65535>>:$imm16) => (UDF (imm:{ *:[i32] }):$imm16)
19460 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UDF,
19461 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm16
19462 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
19463 : GIR_EraseFromParent, /*InsnID*/0,
19464 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19465 : // GIR_Coverage, 11,
19466 : GIR_Done,
19467 : // Label 992: @49845
19468 : GIM_Try, /*On fail goto*//*Label 993*/ 49885, // Rule ID 237 //
19469 : GIM_CheckFeatures, GIFBS_HasDB_IsARM,
19470 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_dmb,
19471 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
19472 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
19473 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
19474 : GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_15,
19475 : // MIs[1] Operand 1
19476 : // No operand predicates
19477 : GIM_CheckIsSafeToFold, /*InsnID*/1,
19478 : // (intrinsic_void 1017:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$opt) => (DMB (imm:{ *:[i32] }):$opt)
19479 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::DMB,
19480 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // opt
19481 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
19482 : GIR_EraseFromParent, /*InsnID*/0,
19483 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19484 : // GIR_Coverage, 237,
19485 : GIR_Done,
19486 : // Label 993: @49885
19487 : GIM_Try, /*On fail goto*//*Label 994*/ 49925, // Rule ID 238 //
19488 : GIM_CheckFeatures, GIFBS_HasDB_IsARM,
19489 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_dsb,
19490 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
19491 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
19492 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
19493 : GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_15,
19494 : // MIs[1] Operand 1
19495 : // No operand predicates
19496 : GIM_CheckIsSafeToFold, /*InsnID*/1,
19497 : // (intrinsic_void 1018:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$opt) => (DSB (imm:{ *:[i32] }):$opt)
19498 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::DSB,
19499 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // opt
19500 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
19501 : GIR_EraseFromParent, /*InsnID*/0,
19502 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19503 : // GIR_Coverage, 238,
19504 : GIR_Done,
19505 : // Label 994: @49925
19506 : GIM_Try, /*On fail goto*//*Label 995*/ 49965, // Rule ID 239 //
19507 : GIM_CheckFeatures, GIFBS_HasDB_IsARM,
19508 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_isb,
19509 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
19510 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
19511 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
19512 : GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_15,
19513 : // MIs[1] Operand 1
19514 : // No operand predicates
19515 : GIM_CheckIsSafeToFold, /*InsnID*/1,
19516 : // (intrinsic_void 1021:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$opt) => (ISB (imm:{ *:[i32] }):$opt)
19517 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::ISB,
19518 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // opt
19519 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
19520 : GIR_EraseFromParent, /*InsnID*/0,
19521 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19522 : // GIR_Coverage, 239,
19523 : GIR_Done,
19524 : // Label 995: @49965
19525 : GIM_Try, /*On fail goto*//*Label 996*/ 50011, // Rule ID 285 //
19526 : GIM_CheckFeatures, GIFBS_HasV6M_IsThumb,
19527 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_hint,
19528 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
19529 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
19530 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
19531 : GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_15,
19532 : // MIs[1] Operand 1
19533 : // No operand predicates
19534 : GIM_CheckIsSafeToFold, /*InsnID*/1,
19535 : // (intrinsic_void 1020:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm) => (tHINT (imm:{ *:[i32] }):$imm)
19536 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::tHINT,
19537 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
19538 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
19539 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
19540 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
19541 : GIR_EraseFromParent, /*InsnID*/0,
19542 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19543 : // GIR_Coverage, 285,
19544 : GIR_Done,
19545 : // Label 996: @50011
19546 : GIM_Try, /*On fail goto*//*Label 997*/ 50051, // Rule ID 349 //
19547 : GIM_CheckFeatures, GIFBS_IsThumb,
19548 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_undefined,
19549 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
19550 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
19551 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
19552 : GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_255,
19553 : // MIs[1] Operand 1
19554 : // No operand predicates
19555 : GIM_CheckIsSafeToFold, /*InsnID*/1,
19556 : // (intrinsic_void 1240:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8) => (tUDF (imm:{ *:[i32] }):$imm8)
19557 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::tUDF,
19558 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm8
19559 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
19560 : GIR_EraseFromParent, /*InsnID*/0,
19561 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19562 : // GIR_Coverage, 349,
19563 : GIR_Done,
19564 : // Label 997: @50051
19565 : GIM_Try, /*On fail goto*//*Label 998*/ 50091, // Rule ID 498 //
19566 : GIM_CheckFeatures, GIFBS_IsThumb2,
19567 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_undefined,
19568 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
19569 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
19570 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
19571 : GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_65535,
19572 : // MIs[1] Operand 1
19573 : // No operand predicates
19574 : GIM_CheckIsSafeToFold, /*InsnID*/1,
19575 : // (intrinsic_void 1240:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_65535>>:$imm16) => (t2UDF (imm:{ *:[i32] }):$imm16)
19576 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UDF,
19577 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm16
19578 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
19579 : GIR_EraseFromParent, /*InsnID*/0,
19580 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19581 : // GIR_Coverage, 498,
19582 : GIR_Done,
19583 : // Label 998: @50091
19584 : GIM_Try, /*On fail goto*//*Label 999*/ 50137, // Rule ID 572 //
19585 : GIM_CheckFeatures, GIFBS_HasDB_IsThumb,
19586 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_dmb,
19587 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
19588 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
19589 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
19590 : GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_15,
19591 : // MIs[1] Operand 1
19592 : // No operand predicates
19593 : GIM_CheckIsSafeToFold, /*InsnID*/1,
19594 : // (intrinsic_void 1017:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$opt) => (t2DMB (imm:{ *:[i32] }):$opt)
19595 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2DMB,
19596 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // opt
19597 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
19598 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
19599 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
19600 : GIR_EraseFromParent, /*InsnID*/0,
19601 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19602 : // GIR_Coverage, 572,
19603 : GIR_Done,
19604 : // Label 999: @50137
19605 : GIM_Try, /*On fail goto*//*Label 1000*/ 50183, // Rule ID 573 //
19606 : GIM_CheckFeatures, GIFBS_HasDB_IsThumb,
19607 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_dsb,
19608 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
19609 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
19610 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
19611 : GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_15,
19612 : // MIs[1] Operand 1
19613 : // No operand predicates
19614 : GIM_CheckIsSafeToFold, /*InsnID*/1,
19615 : // (intrinsic_void 1018:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$opt) => (t2DSB (imm:{ *:[i32] }):$opt)
19616 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2DSB,
19617 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // opt
19618 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
19619 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
19620 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
19621 : GIR_EraseFromParent, /*InsnID*/0,
19622 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19623 : // GIR_Coverage, 573,
19624 : GIR_Done,
19625 : // Label 1000: @50183
19626 : GIM_Try, /*On fail goto*//*Label 1001*/ 50229, // Rule ID 574 //
19627 : GIM_CheckFeatures, GIFBS_HasDB_IsThumb,
19628 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_isb,
19629 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
19630 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
19631 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
19632 : GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_15,
19633 : // MIs[1] Operand 1
19634 : // No operand predicates
19635 : GIM_CheckIsSafeToFold, /*InsnID*/1,
19636 : // (intrinsic_void 1021:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$opt) => (t2ISB (imm:{ *:[i32] }):$opt)
19637 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2ISB,
19638 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // opt
19639 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
19640 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
19641 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
19642 : GIR_EraseFromParent, /*InsnID*/0,
19643 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19644 : // GIR_Coverage, 574,
19645 : GIR_Done,
19646 : // Label 1001: @50229
19647 : GIM_Try, /*On fail goto*//*Label 1002*/ 50275, // Rule ID 592 //
19648 : GIM_CheckFeatures, GIFBS_IsThumb2,
19649 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_hint,
19650 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
19651 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
19652 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
19653 : GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_239,
19654 : // MIs[1] Operand 1
19655 : // No operand predicates
19656 : GIM_CheckIsSafeToFold, /*InsnID*/1,
19657 : // (intrinsic_void 1020:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_239>>:$imm) => (t2HINT (imm:{ *:[i32] }):$imm)
19658 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2HINT,
19659 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
19660 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
19661 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
19662 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
19663 : GIR_EraseFromParent, /*InsnID*/0,
19664 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19665 : // GIR_Coverage, 592,
19666 : GIR_Done,
19667 : // Label 1002: @50275
19668 : GIM_Try, /*On fail goto*//*Label 1003*/ 50321, // Rule ID 593 //
19669 : GIM_CheckFeatures, GIFBS_IsThumb2,
19670 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_dbg,
19671 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
19672 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
19673 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
19674 : GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_15,
19675 : // MIs[1] Operand 1
19676 : // No operand predicates
19677 : GIM_CheckIsSafeToFold, /*InsnID*/1,
19678 : // (intrinsic_void 1016:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$opt) => (t2DBG (imm:{ *:[i32] }):$opt)
19679 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2DBG,
19680 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // opt
19681 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
19682 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
19683 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
19684 : GIR_EraseFromParent, /*InsnID*/0,
19685 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19686 : // GIR_Coverage, 593,
19687 : GIR_Done,
19688 : // Label 1003: @50321
19689 : GIM_Try, /*On fail goto*//*Label 1004*/ 50359, // Rule ID 723 //
19690 : GIM_CheckFeatures, GIFBS_HasVFP2,
19691 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_get_fpscr,
19692 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
19693 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
19694 : // (intrinsic_w_chain:{ *:[i32] } 1019:{ *:[iPTR] }) => (VMRS:{ *:[i32] })
19695 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMRS,
19696 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rt
19697 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
19698 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
19699 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
19700 : GIR_EraseFromParent, /*InsnID*/0,
19701 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19702 : // GIR_Coverage, 723,
19703 : GIR_Done,
19704 : // Label 1004: @50359
19705 : GIM_Try, /*On fail goto*//*Label 1005*/ 50397, // Rule ID 724 //
19706 : GIM_CheckFeatures, GIFBS_HasVFP2,
19707 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_set_fpscr,
19708 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
19709 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
19710 : // (intrinsic_void 1184:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$src) => (VMSR GPRnopc:{ *:[i32] }:$src)
19711 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMSR,
19712 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
19713 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
19714 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
19715 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
19716 : GIR_EraseFromParent, /*InsnID*/0,
19717 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19718 : // GIR_Coverage, 724,
19719 : GIR_Done,
19720 : // Label 1005: @50397
19721 : GIM_Reject,
19722 : // Label 988: @50398
19723 : GIM_Try, /*On fail goto*//*Label 1006*/ 52075,
19724 : GIM_CheckNumOperands, /*MI*/0, /*Expected*/4,
19725 : GIM_Try, /*On fail goto*//*Label 1007*/ 50462, // Rule ID 1696 //
19726 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_space,
19727 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
19728 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
19729 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
19730 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
19731 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
19732 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
19733 : // MIs[1] Operand 1
19734 : // No operand predicates
19735 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
19736 : GIM_CheckIsSafeToFold, /*InsnID*/1,
19737 : // (intrinsic_w_chain:{ *:[i32] } 1215:{ *:[iPTR] }, (imm:{ *:[i32] }):$size, GPR:{ *:[i32] }:$Rn) => (SPACE:{ *:[i32] } (imm:{ *:[i32] }):$size, GPR:{ *:[i32] }:$Rn)
19738 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SPACE,
19739 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
19740 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // size
19741 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rn
19742 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
19743 : GIR_EraseFromParent, /*InsnID*/0,
19744 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19745 : // GIR_Coverage, 1696,
19746 : GIR_Done,
19747 : // Label 1007: @50462
19748 : GIM_Try, /*On fail goto*//*Label 1008*/ 50524, // Rule ID 3 //
19749 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
19750 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_sel,
19751 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
19752 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
19753 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
19754 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
19755 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
19756 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
19757 : // (intrinsic_w_chain:{ *:[i32] } 1183:{ *:[iPTR] }, GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) => (SEL:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
19758 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SEL,
19759 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
19760 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
19761 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
19762 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
19763 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
19764 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
19765 : GIR_EraseFromParent, /*InsnID*/0,
19766 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19767 : // GIR_Coverage, 3,
19768 : GIR_Done,
19769 : // Label 1008: @50524
19770 : GIM_Try, /*On fail goto*//*Label 1009*/ 50586, // Rule ID 123 //
19771 : GIM_CheckFeatures, GIFBS_IsARM,
19772 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_sasx,
19773 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
19774 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
19775 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
19776 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
19777 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
19778 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
19779 : // (intrinsic_w_chain:{ *:[i32] } 1182:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SASX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
19780 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SASX,
19781 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
19782 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
19783 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
19784 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
19785 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
19786 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
19787 : GIR_EraseFromParent, /*InsnID*/0,
19788 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19789 : // GIR_Coverage, 123,
19790 : GIR_Done,
19791 : // Label 1009: @50586
19792 : GIM_Try, /*On fail goto*//*Label 1010*/ 50648, // Rule ID 124 //
19793 : GIM_CheckFeatures, GIFBS_IsARM,
19794 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_sadd16,
19795 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
19796 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
19797 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
19798 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
19799 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
19800 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
19801 : // (intrinsic_w_chain:{ *:[i32] } 1180:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SADD16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
19802 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SADD16,
19803 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
19804 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
19805 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
19806 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
19807 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
19808 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
19809 : GIR_EraseFromParent, /*InsnID*/0,
19810 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19811 : // GIR_Coverage, 124,
19812 : GIR_Done,
19813 : // Label 1010: @50648
19814 : GIM_Try, /*On fail goto*//*Label 1011*/ 50710, // Rule ID 125 //
19815 : GIM_CheckFeatures, GIFBS_IsARM,
19816 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_sadd8,
19817 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
19818 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
19819 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
19820 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
19821 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
19822 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
19823 : // (intrinsic_w_chain:{ *:[i32] } 1181:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SADD8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
19824 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SADD8,
19825 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
19826 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
19827 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
19828 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
19829 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
19830 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
19831 : GIR_EraseFromParent, /*InsnID*/0,
19832 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19833 : // GIR_Coverage, 125,
19834 : GIR_Done,
19835 : // Label 1011: @50710
19836 : GIM_Try, /*On fail goto*//*Label 1012*/ 50772, // Rule ID 126 //
19837 : GIM_CheckFeatures, GIFBS_IsARM,
19838 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_ssax,
19839 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
19840 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
19841 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
19842 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
19843 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
19844 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
19845 : // (intrinsic_w_chain:{ *:[i32] } 1218:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SSAX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
19846 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SSAX,
19847 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
19848 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
19849 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
19850 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
19851 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
19852 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
19853 : GIR_EraseFromParent, /*InsnID*/0,
19854 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19855 : // GIR_Coverage, 126,
19856 : GIR_Done,
19857 : // Label 1012: @50772
19858 : GIM_Try, /*On fail goto*//*Label 1013*/ 50834, // Rule ID 127 //
19859 : GIM_CheckFeatures, GIFBS_IsARM,
19860 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_ssub16,
19861 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
19862 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
19863 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
19864 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
19865 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
19866 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
19867 : // (intrinsic_w_chain:{ *:[i32] } 1219:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SSUB16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
19868 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SSUB16,
19869 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
19870 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
19871 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
19872 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
19873 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
19874 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
19875 : GIR_EraseFromParent, /*InsnID*/0,
19876 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19877 : // GIR_Coverage, 127,
19878 : GIR_Done,
19879 : // Label 1013: @50834
19880 : GIM_Try, /*On fail goto*//*Label 1014*/ 50896, // Rule ID 128 //
19881 : GIM_CheckFeatures, GIFBS_IsARM,
19882 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_ssub8,
19883 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
19884 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
19885 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
19886 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
19887 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
19888 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
19889 : // (intrinsic_w_chain:{ *:[i32] } 1220:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SSUB8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
19890 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SSUB8,
19891 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
19892 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
19893 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
19894 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
19895 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
19896 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
19897 : GIR_EraseFromParent, /*InsnID*/0,
19898 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19899 : // GIR_Coverage, 128,
19900 : GIR_Done,
19901 : // Label 1014: @50896
19902 : GIM_Try, /*On fail goto*//*Label 1015*/ 50958, // Rule ID 129 //
19903 : GIM_CheckFeatures, GIFBS_IsARM,
19904 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uasx,
19905 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
19906 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
19907 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
19908 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
19909 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
19910 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
19911 : // (intrinsic_w_chain:{ *:[i32] } 1233:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UASX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
19912 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UASX,
19913 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
19914 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
19915 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
19916 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
19917 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
19918 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
19919 : GIR_EraseFromParent, /*InsnID*/0,
19920 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19921 : // GIR_Coverage, 129,
19922 : GIR_Done,
19923 : // Label 1015: @50958
19924 : GIM_Try, /*On fail goto*//*Label 1016*/ 51020, // Rule ID 130 //
19925 : GIM_CheckFeatures, GIFBS_IsARM,
19926 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uadd16,
19927 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
19928 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
19929 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
19930 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
19931 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
19932 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
19933 : // (intrinsic_w_chain:{ *:[i32] } 1231:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UADD16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
19934 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UADD16,
19935 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
19936 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
19937 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
19938 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
19939 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
19940 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
19941 : GIR_EraseFromParent, /*InsnID*/0,
19942 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19943 : // GIR_Coverage, 130,
19944 : GIR_Done,
19945 : // Label 1016: @51020
19946 : GIM_Try, /*On fail goto*//*Label 1017*/ 51082, // Rule ID 131 //
19947 : GIM_CheckFeatures, GIFBS_IsARM,
19948 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uadd8,
19949 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
19950 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
19951 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
19952 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
19953 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
19954 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
19955 : // (intrinsic_w_chain:{ *:[i32] } 1232:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UADD8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
19956 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UADD8,
19957 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
19958 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
19959 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
19960 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
19961 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
19962 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
19963 : GIR_EraseFromParent, /*InsnID*/0,
19964 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19965 : // GIR_Coverage, 131,
19966 : GIR_Done,
19967 : // Label 1017: @51082
19968 : GIM_Try, /*On fail goto*//*Label 1018*/ 51144, // Rule ID 132 //
19969 : GIM_CheckFeatures, GIFBS_IsARM,
19970 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_usax,
19971 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
19972 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
19973 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
19974 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
19975 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
19976 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
19977 : // (intrinsic_w_chain:{ *:[i32] } 1251:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (USAX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
19978 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::USAX,
19979 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
19980 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
19981 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
19982 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
19983 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
19984 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
19985 : GIR_EraseFromParent, /*InsnID*/0,
19986 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
19987 : // GIR_Coverage, 132,
19988 : GIR_Done,
19989 : // Label 1018: @51144
19990 : GIM_Try, /*On fail goto*//*Label 1019*/ 51206, // Rule ID 133 //
19991 : GIM_CheckFeatures, GIFBS_IsARM,
19992 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_usub16,
19993 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
19994 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
19995 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
19996 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
19997 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
19998 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
19999 : // (intrinsic_w_chain:{ *:[i32] } 1252:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (USUB16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
20000 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::USUB16,
20001 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
20002 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
20003 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
20004 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
20005 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
20006 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
20007 : GIR_EraseFromParent, /*InsnID*/0,
20008 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
20009 : // GIR_Coverage, 133,
20010 : GIR_Done,
20011 : // Label 1019: @51206
20012 : GIM_Try, /*On fail goto*//*Label 1020*/ 51268, // Rule ID 134 //
20013 : GIM_CheckFeatures, GIFBS_IsARM,
20014 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_usub8,
20015 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
20016 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
20017 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
20018 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
20019 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
20020 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
20021 : // (intrinsic_w_chain:{ *:[i32] } 1253:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (USUB8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
20022 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::USUB8,
20023 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
20024 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
20025 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
20026 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
20027 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
20028 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
20029 : GIR_EraseFromParent, /*InsnID*/0,
20030 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
20031 : // GIR_Coverage, 134,
20032 : GIR_Done,
20033 : // Label 1020: @51268
20034 : GIM_Try, /*On fail goto*//*Label 1021*/ 51330, // Rule ID 435 //
20035 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
20036 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_sel,
20037 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
20038 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
20039 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
20040 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
20041 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
20042 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
20043 : // (intrinsic_w_chain:{ *:[i32] } 1183:{ *:[iPTR] }, GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) => (t2SEL:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
20044 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SEL,
20045 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
20046 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
20047 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
20048 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
20049 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
20050 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
20051 : GIR_EraseFromParent, /*InsnID*/0,
20052 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
20053 : // GIR_Coverage, 435,
20054 : GIR_Done,
20055 : // Label 1021: @51330
20056 : GIM_Try, /*On fail goto*//*Label 1022*/ 51392, // Rule ID 448 //
20057 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
20058 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_sasx,
20059 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
20060 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
20061 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
20062 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
20063 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
20064 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
20065 : // (intrinsic_w_chain:{ *:[i32] } 1182:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SASX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
20066 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SASX,
20067 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
20068 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
20069 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
20070 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
20071 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
20072 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
20073 : GIR_EraseFromParent, /*InsnID*/0,
20074 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
20075 : // GIR_Coverage, 448,
20076 : GIR_Done,
20077 : // Label 1022: @51392
20078 : GIM_Try, /*On fail goto*//*Label 1023*/ 51454, // Rule ID 449 //
20079 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
20080 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_sadd16,
20081 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
20082 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
20083 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
20084 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
20085 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
20086 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
20087 : // (intrinsic_w_chain:{ *:[i32] } 1180:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SADD16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
20088 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SADD16,
20089 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
20090 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
20091 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
20092 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
20093 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
20094 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
20095 : GIR_EraseFromParent, /*InsnID*/0,
20096 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
20097 : // GIR_Coverage, 449,
20098 : GIR_Done,
20099 : // Label 1023: @51454
20100 : GIM_Try, /*On fail goto*//*Label 1024*/ 51516, // Rule ID 450 //
20101 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
20102 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_sadd8,
20103 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
20104 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
20105 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
20106 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
20107 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
20108 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
20109 : // (intrinsic_w_chain:{ *:[i32] } 1181:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SADD8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
20110 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SADD8,
20111 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
20112 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
20113 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
20114 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
20115 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
20116 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
20117 : GIR_EraseFromParent, /*InsnID*/0,
20118 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
20119 : // GIR_Coverage, 450,
20120 : GIR_Done,
20121 : // Label 1024: @51516
20122 : GIM_Try, /*On fail goto*//*Label 1025*/ 51578, // Rule ID 451 //
20123 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
20124 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_ssax,
20125 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
20126 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
20127 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
20128 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
20129 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
20130 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
20131 : // (intrinsic_w_chain:{ *:[i32] } 1218:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SSAX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
20132 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SSAX,
20133 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
20134 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
20135 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
20136 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
20137 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
20138 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
20139 : GIR_EraseFromParent, /*InsnID*/0,
20140 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
20141 : // GIR_Coverage, 451,
20142 : GIR_Done,
20143 : // Label 1025: @51578
20144 : GIM_Try, /*On fail goto*//*Label 1026*/ 51640, // Rule ID 452 //
20145 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
20146 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_ssub16,
20147 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
20148 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
20149 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
20150 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
20151 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
20152 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
20153 : // (intrinsic_w_chain:{ *:[i32] } 1219:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SSUB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
20154 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SSUB16,
20155 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
20156 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
20157 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
20158 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
20159 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
20160 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
20161 : GIR_EraseFromParent, /*InsnID*/0,
20162 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
20163 : // GIR_Coverage, 452,
20164 : GIR_Done,
20165 : // Label 1026: @51640
20166 : GIM_Try, /*On fail goto*//*Label 1027*/ 51702, // Rule ID 453 //
20167 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
20168 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_ssub8,
20169 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
20170 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
20171 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
20172 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
20173 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
20174 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
20175 : // (intrinsic_w_chain:{ *:[i32] } 1220:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SSUB8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
20176 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SSUB8,
20177 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
20178 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
20179 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
20180 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
20181 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
20182 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
20183 : GIR_EraseFromParent, /*InsnID*/0,
20184 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
20185 : // GIR_Coverage, 453,
20186 : GIR_Done,
20187 : // Label 1027: @51702
20188 : GIM_Try, /*On fail goto*//*Label 1028*/ 51764, // Rule ID 454 //
20189 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
20190 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uasx,
20191 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
20192 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
20193 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
20194 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
20195 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
20196 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
20197 : // (intrinsic_w_chain:{ *:[i32] } 1233:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UASX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
20198 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UASX,
20199 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
20200 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
20201 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
20202 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
20203 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
20204 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
20205 : GIR_EraseFromParent, /*InsnID*/0,
20206 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
20207 : // GIR_Coverage, 454,
20208 : GIR_Done,
20209 : // Label 1028: @51764
20210 : GIM_Try, /*On fail goto*//*Label 1029*/ 51826, // Rule ID 455 //
20211 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
20212 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uadd16,
20213 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
20214 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
20215 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
20216 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
20217 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
20218 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
20219 : // (intrinsic_w_chain:{ *:[i32] } 1231:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UADD16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
20220 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UADD16,
20221 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
20222 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
20223 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
20224 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
20225 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
20226 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
20227 : GIR_EraseFromParent, /*InsnID*/0,
20228 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
20229 : // GIR_Coverage, 455,
20230 : GIR_Done,
20231 : // Label 1029: @51826
20232 : GIM_Try, /*On fail goto*//*Label 1030*/ 51888, // Rule ID 456 //
20233 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
20234 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uadd8,
20235 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
20236 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
20237 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
20238 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
20239 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
20240 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
20241 : // (intrinsic_w_chain:{ *:[i32] } 1232:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UADD8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
20242 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UADD8,
20243 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
20244 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
20245 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
20246 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
20247 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
20248 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
20249 : GIR_EraseFromParent, /*InsnID*/0,
20250 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
20251 : // GIR_Coverage, 456,
20252 : GIR_Done,
20253 : // Label 1030: @51888
20254 : GIM_Try, /*On fail goto*//*Label 1031*/ 51950, // Rule ID 457 //
20255 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
20256 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_usax,
20257 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
20258 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
20259 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
20260 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
20261 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
20262 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
20263 : // (intrinsic_w_chain:{ *:[i32] } 1251:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2USAX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
20264 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2USAX,
20265 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
20266 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
20267 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
20268 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
20269 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
20270 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
20271 : GIR_EraseFromParent, /*InsnID*/0,
20272 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
20273 : // GIR_Coverage, 457,
20274 : GIR_Done,
20275 : // Label 1031: @51950
20276 : GIM_Try, /*On fail goto*//*Label 1032*/ 52012, // Rule ID 458 //
20277 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
20278 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_usub16,
20279 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
20280 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
20281 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
20282 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
20283 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
20284 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
20285 : // (intrinsic_w_chain:{ *:[i32] } 1252:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2USUB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
20286 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2USUB16,
20287 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
20288 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
20289 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
20290 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
20291 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
20292 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
20293 : GIR_EraseFromParent, /*InsnID*/0,
20294 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
20295 : // GIR_Coverage, 458,
20296 : GIR_Done,
20297 : // Label 1032: @52012
20298 : GIM_Try, /*On fail goto*//*Label 1033*/ 52074, // Rule ID 459 //
20299 : GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
20300 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_usub8,
20301 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
20302 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
20303 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
20304 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
20305 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
20306 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
20307 : // (intrinsic_w_chain:{ *:[i32] } 1253:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2USUB8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
20308 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2USUB8,
20309 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
20310 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
20311 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
20312 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
20313 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
20314 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
20315 : GIR_EraseFromParent, /*InsnID*/0,
20316 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
20317 : // GIR_Coverage, 459,
20318 : GIR_Done,
20319 : // Label 1033: @52074
20320 : GIM_Reject,
20321 : // Label 1006: @52075
20322 : GIM_Try, /*On fail goto*//*Label 1034*/ 52479,
20323 : GIM_CheckNumOperands, /*MI*/0, /*Expected*/6,
20324 : GIM_Try, /*On fail goto*//*Label 1035*/ 52181, // Rule ID 267 //
20325 : GIM_CheckFeatures, GIFBS_IsARM,
20326 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_mcrr,
20327 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
20328 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
20329 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
20330 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
20331 : GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
20332 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
20333 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
20334 : // MIs[1] Operand 1
20335 : // No operand predicates
20336 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
20337 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
20338 : // MIs[2] Operand 1
20339 : // No operand predicates
20340 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
20341 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::GPRnopcRegClassID,
20342 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/5, // MIs[3]
20343 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_CONSTANT,
20344 : // MIs[3] Operand 1
20345 : // No operand predicates
20346 : GIM_CheckIsSafeToFold, /*InsnID*/1,
20347 : GIM_CheckIsSafeToFold, /*InsnID*/2,
20348 : GIM_CheckIsSafeToFold, /*InsnID*/3,
20349 : // (intrinsic_void 1032:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, GPRnopc:{ *:[i32] }:$Rt, GPRnopc:{ *:[i32] }:$Rt2, (imm:{ *:[i32] }):$CRm) => (MCRR (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, GPRnopc:{ *:[i32] }:$Rt, GPRnopc:{ *:[i32] }:$Rt2, (imm:{ *:[i32] }):$CRm)
20350 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MCRR,
20351 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // cop
20352 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // opc1
20353 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rt
20354 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Rt2
20355 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // CRm
20356 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
20357 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
20358 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, 3, GIU_MergeMemOperands_EndOfList,
20359 : GIR_EraseFromParent, /*InsnID*/0,
20360 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
20361 : // GIR_Coverage, 267,
20362 : GIR_Done,
20363 : // Label 1035: @52181
20364 : GIM_Try, /*On fail goto*//*Label 1036*/ 52276, // Rule ID 268 //
20365 : GIM_CheckFeatures, GIFBS_IsARM_PreV8,
20366 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_mcrr2,
20367 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
20368 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
20369 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
20370 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
20371 : GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
20372 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
20373 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
20374 : // MIs[1] Operand 1
20375 : // No operand predicates
20376 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
20377 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
20378 : // MIs[2] Operand 1
20379 : // No operand predicates
20380 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
20381 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::GPRnopcRegClassID,
20382 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/5, // MIs[3]
20383 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_CONSTANT,
20384 : // MIs[3] Operand 1
20385 : // No operand predicates
20386 : GIM_CheckIsSafeToFold, /*InsnID*/1,
20387 : GIM_CheckIsSafeToFold, /*InsnID*/2,
20388 : GIM_CheckIsSafeToFold, /*InsnID*/3,
20389 : // (intrinsic_void 1033:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, GPRnopc:{ *:[i32] }:$Rt, GPRnopc:{ *:[i32] }:$Rt2, (imm:{ *:[i32] }):$CRm) => (MCRR2 (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, GPRnopc:{ *:[i32] }:$Rt, GPRnopc:{ *:[i32] }:$Rt2, (imm:{ *:[i32] }):$CRm)
20390 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MCRR2,
20391 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // cop
20392 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // opc1
20393 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rt
20394 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Rt2
20395 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // CRm
20396 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, 3, GIU_MergeMemOperands_EndOfList,
20397 : GIR_EraseFromParent, /*InsnID*/0,
20398 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
20399 : // GIR_Coverage, 268,
20400 : GIR_Done,
20401 : // Label 1036: @52276
20402 : GIM_Try, /*On fail goto*//*Label 1037*/ 52377, // Rule ID 608 //
20403 : GIM_CheckFeatures, GIFBS_IsThumb2,
20404 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_mcrr,
20405 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
20406 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
20407 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
20408 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
20409 : GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
20410 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
20411 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
20412 : // MIs[1] Operand 1
20413 : // No operand predicates
20414 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
20415 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
20416 : // MIs[2] Operand 1
20417 : // No operand predicates
20418 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
20419 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::GPRRegClassID,
20420 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/5, // MIs[3]
20421 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_CONSTANT,
20422 : // MIs[3] Operand 1
20423 : // No operand predicates
20424 : GIM_CheckIsSafeToFold, /*InsnID*/1,
20425 : GIM_CheckIsSafeToFold, /*InsnID*/2,
20426 : GIM_CheckIsSafeToFold, /*InsnID*/3,
20427 : // (intrinsic_void 1032:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, GPR:{ *:[i32] }:$Rt2, (imm:{ *:[i32] }):$CRm) => (t2MCRR (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, GPR:{ *:[i32] }:$Rt2, (imm:{ *:[i32] }):$CRm)
20428 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2MCRR,
20429 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // cop
20430 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // opc1
20431 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rt
20432 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Rt2
20433 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // CRm
20434 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
20435 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
20436 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, 3, GIU_MergeMemOperands_EndOfList,
20437 : GIR_EraseFromParent, /*InsnID*/0,
20438 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
20439 : // GIR_Coverage, 608,
20440 : GIR_Done,
20441 : // Label 1037: @52377
20442 : GIM_Try, /*On fail goto*//*Label 1038*/ 52478, // Rule ID 609 //
20443 : GIM_CheckFeatures, GIFBS_IsThumb2_PreV8,
20444 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_mcrr2,
20445 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
20446 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
20447 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
20448 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
20449 : GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
20450 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
20451 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
20452 : // MIs[1] Operand 1
20453 : // No operand predicates
20454 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
20455 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
20456 : // MIs[2] Operand 1
20457 : // No operand predicates
20458 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
20459 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::GPRRegClassID,
20460 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/5, // MIs[3]
20461 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_CONSTANT,
20462 : // MIs[3] Operand 1
20463 : // No operand predicates
20464 : GIM_CheckIsSafeToFold, /*InsnID*/1,
20465 : GIM_CheckIsSafeToFold, /*InsnID*/2,
20466 : GIM_CheckIsSafeToFold, /*InsnID*/3,
20467 : // (intrinsic_void 1033:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, GPR:{ *:[i32] }:$Rt2, (imm:{ *:[i32] }):$CRm) => (t2MCRR2 (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, GPR:{ *:[i32] }:$Rt2, (imm:{ *:[i32] }):$CRm)
20468 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2MCRR2,
20469 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // cop
20470 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // opc1
20471 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rt
20472 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Rt2
20473 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // CRm
20474 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
20475 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
20476 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, 3, GIU_MergeMemOperands_EndOfList,
20477 : GIR_EraseFromParent, /*InsnID*/0,
20478 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
20479 : // GIR_Coverage, 609,
20480 : GIR_Done,
20481 : // Label 1038: @52478
20482 : GIM_Reject,
20483 : // Label 1034: @52479
20484 : GIM_Try, /*On fail goto*//*Label 1039*/ 53963,
20485 : GIM_CheckNumOperands, /*MI*/0, /*Expected*/7,
20486 : GIM_Try, /*On fail goto*//*Label 1040*/ 52612, // Rule ID 255 //
20487 : GIM_CheckFeatures, GIFBS_IsARM_PreV8,
20488 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_cdp,
20489 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
20490 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
20491 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
20492 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
20493 : GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
20494 : GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
20495 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
20496 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
20497 : // MIs[1] Operand 1
20498 : // No operand predicates
20499 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
20500 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
20501 : // MIs[2] Operand 1
20502 : // No operand predicates
20503 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/3, // MIs[3]
20504 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_CONSTANT,
20505 : // MIs[3] Operand 1
20506 : // No operand predicates
20507 : GIM_RecordInsn, /*DefineMI*/4, /*MI*/0, /*OpIdx*/4, // MIs[4]
20508 : GIM_CheckOpcode, /*MI*/4, TargetOpcode::G_CONSTANT,
20509 : // MIs[4] Operand 1
20510 : // No operand predicates
20511 : GIM_RecordInsn, /*DefineMI*/5, /*MI*/0, /*OpIdx*/5, // MIs[5]
20512 : GIM_CheckOpcode, /*MI*/5, TargetOpcode::G_CONSTANT,
20513 : // MIs[5] Operand 1
20514 : // No operand predicates
20515 : GIM_RecordInsn, /*DefineMI*/6, /*MI*/0, /*OpIdx*/6, // MIs[6]
20516 : GIM_CheckOpcode, /*MI*/6, TargetOpcode::G_CONSTANT,
20517 : // MIs[6] Operand 1
20518 : // No operand predicates
20519 : GIM_CheckIsSafeToFold, /*InsnID*/1,
20520 : GIM_CheckIsSafeToFold, /*InsnID*/2,
20521 : GIM_CheckIsSafeToFold, /*InsnID*/3,
20522 : GIM_CheckIsSafeToFold, /*InsnID*/4,
20523 : GIM_CheckIsSafeToFold, /*InsnID*/5,
20524 : GIM_CheckIsSafeToFold, /*InsnID*/6,
20525 : // (intrinsic_void 1007:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, (imm:{ *:[i32] }):$CRd, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2) => (CDP (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, (imm:{ *:[i32] }):$CRd, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2)
20526 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::CDP,
20527 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // cop
20528 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // opc1
20529 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // CRd
20530 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/4, // CRn
20531 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/5, // CRm
20532 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/6, // opc2
20533 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
20534 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
20535 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, 3, 4, 5, 6, GIU_MergeMemOperands_EndOfList,
20536 : GIR_EraseFromParent, /*InsnID*/0,
20537 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
20538 : // GIR_Coverage, 255,
20539 : GIR_Done,
20540 : // Label 1040: @52612
20541 : GIM_Try, /*On fail goto*//*Label 1041*/ 52734, // Rule ID 256 //
20542 : GIM_CheckFeatures, GIFBS_IsARM_PreV8,
20543 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_cdp2,
20544 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
20545 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
20546 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
20547 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
20548 : GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
20549 : GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
20550 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
20551 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
20552 : // MIs[1] Operand 1
20553 : // No operand predicates
20554 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
20555 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
20556 : // MIs[2] Operand 1
20557 : // No operand predicates
20558 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/3, // MIs[3]
20559 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_CONSTANT,
20560 : // MIs[3] Operand 1
20561 : // No operand predicates
20562 : GIM_RecordInsn, /*DefineMI*/4, /*MI*/0, /*OpIdx*/4, // MIs[4]
20563 : GIM_CheckOpcode, /*MI*/4, TargetOpcode::G_CONSTANT,
20564 : // MIs[4] Operand 1
20565 : // No operand predicates
20566 : GIM_RecordInsn, /*DefineMI*/5, /*MI*/0, /*OpIdx*/5, // MIs[5]
20567 : GIM_CheckOpcode, /*MI*/5, TargetOpcode::G_CONSTANT,
20568 : // MIs[5] Operand 1
20569 : // No operand predicates
20570 : GIM_RecordInsn, /*DefineMI*/6, /*MI*/0, /*OpIdx*/6, // MIs[6]
20571 : GIM_CheckOpcode, /*MI*/6, TargetOpcode::G_CONSTANT,
20572 : // MIs[6] Operand 1
20573 : // No operand predicates
20574 : GIM_CheckIsSafeToFold, /*InsnID*/1,
20575 : GIM_CheckIsSafeToFold, /*InsnID*/2,
20576 : GIM_CheckIsSafeToFold, /*InsnID*/3,
20577 : GIM_CheckIsSafeToFold, /*InsnID*/4,
20578 : GIM_CheckIsSafeToFold, /*InsnID*/5,
20579 : GIM_CheckIsSafeToFold, /*InsnID*/6,
20580 : // (intrinsic_void 1008:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, (imm:{ *:[i32] }):$CRd, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2) => (CDP2 (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, (imm:{ *:[i32] }):$CRd, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2)
20581 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::CDP2,
20582 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // cop
20583 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // opc1
20584 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // CRd
20585 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/4, // CRn
20586 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/5, // CRm
20587 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/6, // opc2
20588 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, 3, 4, 5, 6, GIU_MergeMemOperands_EndOfList,
20589 : GIR_EraseFromParent, /*InsnID*/0,
20590 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
20591 : // GIR_Coverage, 256,
20592 : GIR_Done,
20593 : // Label 1041: @52734
20594 : GIM_Try, /*On fail goto*//*Label 1042*/ 52862, // Rule ID 610 //
20595 : GIM_CheckFeatures, GIFBS_IsThumb2_PreV8,
20596 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_cdp,
20597 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
20598 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
20599 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
20600 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
20601 : GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
20602 : GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
20603 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
20604 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
20605 : // MIs[1] Operand 1
20606 : // No operand predicates
20607 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
20608 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
20609 : // MIs[2] Operand 1
20610 : // No operand predicates
20611 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/3, // MIs[3]
20612 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_CONSTANT,
20613 : // MIs[3] Operand 1
20614 : // No operand predicates
20615 : GIM_RecordInsn, /*DefineMI*/4, /*MI*/0, /*OpIdx*/4, // MIs[4]
20616 : GIM_CheckOpcode, /*MI*/4, TargetOpcode::G_CONSTANT,
20617 : // MIs[4] Operand 1
20618 : // No operand predicates
20619 : GIM_RecordInsn, /*DefineMI*/5, /*MI*/0, /*OpIdx*/5, // MIs[5]
20620 : GIM_CheckOpcode, /*MI*/5, TargetOpcode::G_CONSTANT,
20621 : // MIs[5] Operand 1
20622 : // No operand predicates
20623 : GIM_RecordInsn, /*DefineMI*/6, /*MI*/0, /*OpIdx*/6, // MIs[6]
20624 : GIM_CheckOpcode, /*MI*/6, TargetOpcode::G_CONSTANT,
20625 : // MIs[6] Operand 1
20626 : // No operand predicates
20627 : GIM_CheckIsSafeToFold, /*InsnID*/1,
20628 : GIM_CheckIsSafeToFold, /*InsnID*/2,
20629 : GIM_CheckIsSafeToFold, /*InsnID*/3,
20630 : GIM_CheckIsSafeToFold, /*InsnID*/4,
20631 : GIM_CheckIsSafeToFold, /*InsnID*/5,
20632 : GIM_CheckIsSafeToFold, /*InsnID*/6,
20633 : // (intrinsic_void 1007:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, (imm:{ *:[i32] }):$CRd, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2) => (t2CDP (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, (imm:{ *:[i32] }):$CRd, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2)
20634 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2CDP,
20635 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // cop
20636 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // opc1
20637 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // CRd
20638 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/4, // CRn
20639 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/5, // CRm
20640 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/6, // opc2
20641 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
20642 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
20643 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, 3, 4, 5, 6, GIU_MergeMemOperands_EndOfList,
20644 : GIR_EraseFromParent, /*InsnID*/0,
20645 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
20646 : // GIR_Coverage, 610,
20647 : GIR_Done,
20648 : // Label 1042: @52862
20649 : GIM_Try, /*On fail goto*//*Label 1043*/ 52990, // Rule ID 611 //
20650 : GIM_CheckFeatures, GIFBS_IsThumb2_PreV8,
20651 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_cdp2,
20652 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
20653 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
20654 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
20655 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
20656 : GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
20657 : GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
20658 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
20659 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
20660 : // MIs[1] Operand 1
20661 : // No operand predicates
20662 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
20663 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
20664 : // MIs[2] Operand 1
20665 : // No operand predicates
20666 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/3, // MIs[3]
20667 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_CONSTANT,
20668 : // MIs[3] Operand 1
20669 : // No operand predicates
20670 : GIM_RecordInsn, /*DefineMI*/4, /*MI*/0, /*OpIdx*/4, // MIs[4]
20671 : GIM_CheckOpcode, /*MI*/4, TargetOpcode::G_CONSTANT,
20672 : // MIs[4] Operand 1
20673 : // No operand predicates
20674 : GIM_RecordInsn, /*DefineMI*/5, /*MI*/0, /*OpIdx*/5, // MIs[5]
20675 : GIM_CheckOpcode, /*MI*/5, TargetOpcode::G_CONSTANT,
20676 : // MIs[5] Operand 1
20677 : // No operand predicates
20678 : GIM_RecordInsn, /*DefineMI*/6, /*MI*/0, /*OpIdx*/6, // MIs[6]
20679 : GIM_CheckOpcode, /*MI*/6, TargetOpcode::G_CONSTANT,
20680 : // MIs[6] Operand 1
20681 : // No operand predicates
20682 : GIM_CheckIsSafeToFold, /*InsnID*/1,
20683 : GIM_CheckIsSafeToFold, /*InsnID*/2,
20684 : GIM_CheckIsSafeToFold, /*InsnID*/3,
20685 : GIM_CheckIsSafeToFold, /*InsnID*/4,
20686 : GIM_CheckIsSafeToFold, /*InsnID*/5,
20687 : GIM_CheckIsSafeToFold, /*InsnID*/6,
20688 : // (intrinsic_void 1008:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, (imm:{ *:[i32] }):$CRd, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2) => (t2CDP2 (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, (imm:{ *:[i32] }):$CRd, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2)
20689 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2CDP2,
20690 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // cop
20691 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // opc1
20692 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // CRd
20693 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/4, // CRn
20694 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/5, // CRm
20695 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/6, // opc2
20696 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
20697 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
20698 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, 3, 4, 5, 6, GIU_MergeMemOperands_EndOfList,
20699 : GIR_EraseFromParent, /*InsnID*/0,
20700 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
20701 : // GIR_Coverage, 611,
20702 : GIR_Done,
20703 : // Label 1043: @52990
20704 : GIM_Try, /*On fail goto*//*Label 1044*/ 53113, // Rule ID 1769 //
20705 : GIM_CheckFeatures, GIFBS_IsARM,
20706 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mrc,
20707 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
20708 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
20709 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
20710 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
20711 : GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
20712 : GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
20713 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRwithAPSRRegClassID,
20714 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
20715 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
20716 : // MIs[1] Operand 1
20717 : // No operand predicates
20718 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/3, // MIs[2]
20719 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
20720 : // MIs[2] Operand 1
20721 : // No operand predicates
20722 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/4, // MIs[3]
20723 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_CONSTANT,
20724 : // MIs[3] Operand 1
20725 : // No operand predicates
20726 : GIM_RecordInsn, /*DefineMI*/4, /*MI*/0, /*OpIdx*/5, // MIs[4]
20727 : GIM_CheckOpcode, /*MI*/4, TargetOpcode::G_CONSTANT,
20728 : // MIs[4] Operand 1
20729 : // No operand predicates
20730 : GIM_RecordInsn, /*DefineMI*/5, /*MI*/0, /*OpIdx*/6, // MIs[5]
20731 : GIM_CheckOpcode, /*MI*/5, TargetOpcode::G_CONSTANT,
20732 : // MIs[5] Operand 1
20733 : // No operand predicates
20734 : GIM_CheckIsSafeToFold, /*InsnID*/1,
20735 : GIM_CheckIsSafeToFold, /*InsnID*/2,
20736 : GIM_CheckIsSafeToFold, /*InsnID*/3,
20737 : GIM_CheckIsSafeToFold, /*InsnID*/4,
20738 : GIM_CheckIsSafeToFold, /*InsnID*/5,
20739 : // (intrinsic_w_chain:{ *:[i32] } 1034:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2) => (MRC:{ *:[i32] } (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2)
20740 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MRC,
20741 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rt
20742 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // cop
20743 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // opc1
20744 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // CRn
20745 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/4, // CRm
20746 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/5, // opc2
20747 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
20748 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
20749 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, 3, 4, 5, GIU_MergeMemOperands_EndOfList,
20750 : GIR_EraseFromParent, /*InsnID*/0,
20751 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
20752 : // GIR_Coverage, 1769,
20753 : GIR_Done,
20754 : // Label 1044: @53113
20755 : GIM_Try, /*On fail goto*//*Label 1045*/ 53230, // Rule ID 1770 //
20756 : GIM_CheckFeatures, GIFBS_HasV5T_IsARM,
20757 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mrc2,
20758 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
20759 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
20760 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
20761 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
20762 : GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
20763 : GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
20764 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRwithAPSRRegClassID,
20765 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
20766 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
20767 : // MIs[1] Operand 1
20768 : // No operand predicates
20769 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/3, // MIs[2]
20770 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
20771 : // MIs[2] Operand 1
20772 : // No operand predicates
20773 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/4, // MIs[3]
20774 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_CONSTANT,
20775 : // MIs[3] Operand 1
20776 : // No operand predicates
20777 : GIM_RecordInsn, /*DefineMI*/4, /*MI*/0, /*OpIdx*/5, // MIs[4]
20778 : GIM_CheckOpcode, /*MI*/4, TargetOpcode::G_CONSTANT,
20779 : // MIs[4] Operand 1
20780 : // No operand predicates
20781 : GIM_RecordInsn, /*DefineMI*/5, /*MI*/0, /*OpIdx*/6, // MIs[5]
20782 : GIM_CheckOpcode, /*MI*/5, TargetOpcode::G_CONSTANT,
20783 : // MIs[5] Operand 1
20784 : // No operand predicates
20785 : GIM_CheckIsSafeToFold, /*InsnID*/1,
20786 : GIM_CheckIsSafeToFold, /*InsnID*/2,
20787 : GIM_CheckIsSafeToFold, /*InsnID*/3,
20788 : GIM_CheckIsSafeToFold, /*InsnID*/4,
20789 : GIM_CheckIsSafeToFold, /*InsnID*/5,
20790 : // (intrinsic_w_chain:{ *:[i32] } 1035:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2) => (MRC2:{ *:[i32] } (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2)
20791 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MRC2,
20792 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rt
20793 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // cop
20794 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // opc1
20795 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // CRn
20796 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/4, // CRm
20797 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/5, // opc2
20798 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, 3, 4, 5, GIU_MergeMemOperands_EndOfList,
20799 : GIR_EraseFromParent, /*InsnID*/0,
20800 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
20801 : // GIR_Coverage, 1770,
20802 : GIR_Done,
20803 : // Label 1045: @53230
20804 : GIM_Try, /*On fail goto*//*Label 1046*/ 53353, // Rule ID 2002 //
20805 : GIM_CheckFeatures, GIFBS_HasV6T2_IsThumb2,
20806 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mrc,
20807 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
20808 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
20809 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
20810 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
20811 : GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
20812 : GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
20813 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRwithAPSRRegClassID,
20814 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
20815 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
20816 : // MIs[1] Operand 1
20817 : // No operand predicates
20818 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/3, // MIs[2]
20819 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
20820 : // MIs[2] Operand 1
20821 : // No operand predicates
20822 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/4, // MIs[3]
20823 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_CONSTANT,
20824 : // MIs[3] Operand 1
20825 : // No operand predicates
20826 : GIM_RecordInsn, /*DefineMI*/4, /*MI*/0, /*OpIdx*/5, // MIs[4]
20827 : GIM_CheckOpcode, /*MI*/4, TargetOpcode::G_CONSTANT,
20828 : // MIs[4] Operand 1
20829 : // No operand predicates
20830 : GIM_RecordInsn, /*DefineMI*/5, /*MI*/0, /*OpIdx*/6, // MIs[5]
20831 : GIM_CheckOpcode, /*MI*/5, TargetOpcode::G_CONSTANT,
20832 : // MIs[5] Operand 1
20833 : // No operand predicates
20834 : GIM_CheckIsSafeToFold, /*InsnID*/1,
20835 : GIM_CheckIsSafeToFold, /*InsnID*/2,
20836 : GIM_CheckIsSafeToFold, /*InsnID*/3,
20837 : GIM_CheckIsSafeToFold, /*InsnID*/4,
20838 : GIM_CheckIsSafeToFold, /*InsnID*/5,
20839 : // (intrinsic_w_chain:{ *:[i32] } 1034:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2) => (t2MRC:{ *:[i32] } (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2)
20840 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2MRC,
20841 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rt
20842 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // cop
20843 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // opc1
20844 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // CRn
20845 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/4, // CRm
20846 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/5, // opc2
20847 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
20848 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
20849 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, 3, 4, 5, GIU_MergeMemOperands_EndOfList,
20850 : GIR_EraseFromParent, /*InsnID*/0,
20851 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
20852 : // GIR_Coverage, 2002,
20853 : GIR_Done,
20854 : // Label 1046: @53353
20855 : GIM_Try, /*On fail goto*//*Label 1047*/ 53476, // Rule ID 2003 //
20856 : GIM_CheckFeatures, GIFBS_HasV6T2_IsThumb2,
20857 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mrc2,
20858 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
20859 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
20860 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
20861 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
20862 : GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
20863 : GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
20864 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRwithAPSRRegClassID,
20865 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
20866 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
20867 : // MIs[1] Operand 1
20868 : // No operand predicates
20869 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/3, // MIs[2]
20870 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
20871 : // MIs[2] Operand 1
20872 : // No operand predicates
20873 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/4, // MIs[3]
20874 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_CONSTANT,
20875 : // MIs[3] Operand 1
20876 : // No operand predicates
20877 : GIM_RecordInsn, /*DefineMI*/4, /*MI*/0, /*OpIdx*/5, // MIs[4]
20878 : GIM_CheckOpcode, /*MI*/4, TargetOpcode::G_CONSTANT,
20879 : // MIs[4] Operand 1
20880 : // No operand predicates
20881 : GIM_RecordInsn, /*DefineMI*/5, /*MI*/0, /*OpIdx*/6, // MIs[5]
20882 : GIM_CheckOpcode, /*MI*/5, TargetOpcode::G_CONSTANT,
20883 : // MIs[5] Operand 1
20884 : // No operand predicates
20885 : GIM_CheckIsSafeToFold, /*InsnID*/1,
20886 : GIM_CheckIsSafeToFold, /*InsnID*/2,
20887 : GIM_CheckIsSafeToFold, /*InsnID*/3,
20888 : GIM_CheckIsSafeToFold, /*InsnID*/4,
20889 : GIM_CheckIsSafeToFold, /*InsnID*/5,
20890 : // (intrinsic_w_chain:{ *:[i32] } 1035:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2) => (t2MRC2:{ *:[i32] } (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2)
20891 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2MRC2,
20892 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rt
20893 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // cop
20894 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // opc1
20895 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // CRn
20896 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/4, // CRm
20897 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/5, // opc2
20898 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
20899 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
20900 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, 3, 4, 5, GIU_MergeMemOperands_EndOfList,
20901 : GIR_EraseFromParent, /*InsnID*/0,
20902 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
20903 : // GIR_Coverage, 2003,
20904 : GIR_Done,
20905 : // Label 1047: @53476
20906 : GIM_Try, /*On fail goto*//*Label 1048*/ 53599, // Rule ID 265 //
20907 : GIM_CheckFeatures, GIFBS_IsARM,
20908 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_mcr,
20909 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
20910 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
20911 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
20912 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
20913 : GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
20914 : GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
20915 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
20916 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
20917 : // MIs[1] Operand 1
20918 : // No operand predicates
20919 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
20920 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
20921 : // MIs[2] Operand 1
20922 : // No operand predicates
20923 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
20924 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/4, // MIs[3]
20925 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_CONSTANT,
20926 : // MIs[3] Operand 1
20927 : // No operand predicates
20928 : GIM_RecordInsn, /*DefineMI*/4, /*MI*/0, /*OpIdx*/5, // MIs[4]
20929 : GIM_CheckOpcode, /*MI*/4, TargetOpcode::G_CONSTANT,
20930 : // MIs[4] Operand 1
20931 : // No operand predicates
20932 : GIM_RecordInsn, /*DefineMI*/5, /*MI*/0, /*OpIdx*/6, // MIs[5]
20933 : GIM_CheckOpcode, /*MI*/5, TargetOpcode::G_CONSTANT,
20934 : // MIs[5] Operand 1
20935 : // No operand predicates
20936 : GIM_CheckIsSafeToFold, /*InsnID*/1,
20937 : GIM_CheckIsSafeToFold, /*InsnID*/2,
20938 : GIM_CheckIsSafeToFold, /*InsnID*/3,
20939 : GIM_CheckIsSafeToFold, /*InsnID*/4,
20940 : GIM_CheckIsSafeToFold, /*InsnID*/5,
20941 : // (intrinsic_void 1030:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2) => (MCR (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2)
20942 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MCR,
20943 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // cop
20944 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // opc1
20945 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rt
20946 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // CRn
20947 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/4, // CRm
20948 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/5, // opc2
20949 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
20950 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
20951 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, 3, 4, 5, GIU_MergeMemOperands_EndOfList,
20952 : GIR_EraseFromParent, /*InsnID*/0,
20953 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
20954 : // GIR_Coverage, 265,
20955 : GIR_Done,
20956 : // Label 1048: @53599
20957 : GIM_Try, /*On fail goto*//*Label 1049*/ 53716, // Rule ID 266 //
20958 : GIM_CheckFeatures, GIFBS_IsARM_PreV8,
20959 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_mcr2,
20960 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
20961 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
20962 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
20963 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
20964 : GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
20965 : GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
20966 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
20967 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
20968 : // MIs[1] Operand 1
20969 : // No operand predicates
20970 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
20971 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
20972 : // MIs[2] Operand 1
20973 : // No operand predicates
20974 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
20975 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/4, // MIs[3]
20976 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_CONSTANT,
20977 : // MIs[3] Operand 1
20978 : // No operand predicates
20979 : GIM_RecordInsn, /*DefineMI*/4, /*MI*/0, /*OpIdx*/5, // MIs[4]
20980 : GIM_CheckOpcode, /*MI*/4, TargetOpcode::G_CONSTANT,
20981 : // MIs[4] Operand 1
20982 : // No operand predicates
20983 : GIM_RecordInsn, /*DefineMI*/5, /*MI*/0, /*OpIdx*/6, // MIs[5]
20984 : GIM_CheckOpcode, /*MI*/5, TargetOpcode::G_CONSTANT,
20985 : // MIs[5] Operand 1
20986 : // No operand predicates
20987 : GIM_CheckIsSafeToFold, /*InsnID*/1,
20988 : GIM_CheckIsSafeToFold, /*InsnID*/2,
20989 : GIM_CheckIsSafeToFold, /*InsnID*/3,
20990 : GIM_CheckIsSafeToFold, /*InsnID*/4,
20991 : GIM_CheckIsSafeToFold, /*InsnID*/5,
20992 : // (intrinsic_void 1031:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2) => (MCR2 (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2)
20993 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MCR2,
20994 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // cop
20995 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // opc1
20996 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rt
20997 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // CRn
20998 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/4, // CRm
20999 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/5, // opc2
21000 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, 3, 4, 5, GIU_MergeMemOperands_EndOfList,
21001 : GIR_EraseFromParent, /*InsnID*/0,
21002 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
21003 : // GIR_Coverage, 266,
21004 : GIR_Done,
21005 : // Label 1049: @53716
21006 : GIM_Try, /*On fail goto*//*Label 1050*/ 53839, // Rule ID 606 //
21007 : GIM_CheckFeatures, GIFBS_IsThumb2,
21008 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_mcr,
21009 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
21010 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
21011 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
21012 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
21013 : GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
21014 : GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
21015 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
21016 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
21017 : // MIs[1] Operand 1
21018 : // No operand predicates
21019 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
21020 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
21021 : // MIs[2] Operand 1
21022 : // No operand predicates
21023 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
21024 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/4, // MIs[3]
21025 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_CONSTANT,
21026 : // MIs[3] Operand 1
21027 : // No operand predicates
21028 : GIM_RecordInsn, /*DefineMI*/4, /*MI*/0, /*OpIdx*/5, // MIs[4]
21029 : GIM_CheckOpcode, /*MI*/4, TargetOpcode::G_CONSTANT,
21030 : // MIs[4] Operand 1
21031 : // No operand predicates
21032 : GIM_RecordInsn, /*DefineMI*/5, /*MI*/0, /*OpIdx*/6, // MIs[5]
21033 : GIM_CheckOpcode, /*MI*/5, TargetOpcode::G_CONSTANT,
21034 : // MIs[5] Operand 1
21035 : // No operand predicates
21036 : GIM_CheckIsSafeToFold, /*InsnID*/1,
21037 : GIM_CheckIsSafeToFold, /*InsnID*/2,
21038 : GIM_CheckIsSafeToFold, /*InsnID*/3,
21039 : GIM_CheckIsSafeToFold, /*InsnID*/4,
21040 : GIM_CheckIsSafeToFold, /*InsnID*/5,
21041 : // (intrinsic_void 1030:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2) => (t2MCR (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2)
21042 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2MCR,
21043 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // cop
21044 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // opc1
21045 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rt
21046 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // CRn
21047 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/4, // CRm
21048 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/5, // opc2
21049 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
21050 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21051 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, 3, 4, 5, GIU_MergeMemOperands_EndOfList,
21052 : GIR_EraseFromParent, /*InsnID*/0,
21053 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
21054 : // GIR_Coverage, 606,
21055 : GIR_Done,
21056 : // Label 1050: @53839
21057 : GIM_Try, /*On fail goto*//*Label 1051*/ 53962, // Rule ID 607 //
21058 : GIM_CheckFeatures, GIFBS_IsThumb2_PreV8,
21059 : GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_mcr2,
21060 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
21061 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
21062 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
21063 : GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
21064 : GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
21065 : GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
21066 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
21067 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
21068 : // MIs[1] Operand 1
21069 : // No operand predicates
21070 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
21071 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
21072 : // MIs[2] Operand 1
21073 : // No operand predicates
21074 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
21075 : GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/4, // MIs[3]
21076 : GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_CONSTANT,
21077 : // MIs[3] Operand 1
21078 : // No operand predicates
21079 : GIM_RecordInsn, /*DefineMI*/4, /*MI*/0, /*OpIdx*/5, // MIs[4]
21080 : GIM_CheckOpcode, /*MI*/4, TargetOpcode::G_CONSTANT,
21081 : // MIs[4] Operand 1
21082 : // No operand predicates
21083 : GIM_RecordInsn, /*DefineMI*/5, /*MI*/0, /*OpIdx*/6, // MIs[5]
21084 : GIM_CheckOpcode, /*MI*/5, TargetOpcode::G_CONSTANT,
21085 : // MIs[5] Operand 1
21086 : // No operand predicates
21087 : GIM_CheckIsSafeToFold, /*InsnID*/1,
21088 : GIM_CheckIsSafeToFold, /*InsnID*/2,
21089 : GIM_CheckIsSafeToFold, /*InsnID*/3,
21090 : GIM_CheckIsSafeToFold, /*InsnID*/4,
21091 : GIM_CheckIsSafeToFold, /*InsnID*/5,
21092 : // (intrinsic_void 1031:{ *:[iPTR] }, (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2) => (t2MCR2 (imm:{ *:[i32] }):$cop, (imm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, (imm:{ *:[i32] }):$CRn, (imm:{ *:[i32] }):$CRm, (imm:{ *:[i32] }):$opc2)
21093 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2MCR2,
21094 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // cop
21095 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // opc1
21096 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rt
21097 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // CRn
21098 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/4, // CRm
21099 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/5, // opc2
21100 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
21101 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21102 : GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, 3, 4, 5, GIU_MergeMemOperands_EndOfList,
21103 : GIR_EraseFromParent, /*InsnID*/0,
21104 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
21105 : // GIR_Coverage, 607,
21106 : GIR_Done,
21107 : // Label 1051: @53962
21108 : GIM_Reject,
21109 : // Label 1039: @53963
21110 : GIM_Reject,
21111 : // Label 11: @53964
21112 : GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/4, 9, /*)*//*default:*//*Label 1055*/ 54086,
21113 : /*GILLT_v2s64*//*Label 1052*/ 53975, 0,
21114 : /*GILLT_v4s32*//*Label 1053*/ 54012, 0,
21115 : /*GILLT_v8s16*//*Label 1054*/ 54049,
21116 : // Label 1052: @53975
21117 : GIM_Try, /*On fail goto*//*Label 1056*/ 54011, // Rule ID 2295 //
21118 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
21119 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
21120 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
21121 : // (anyext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm) => (VMOVLuv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)
21122 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMOVLuv2i64,
21123 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
21124 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
21125 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
21126 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21127 : GIR_EraseFromParent, /*InsnID*/0,
21128 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
21129 : // GIR_Coverage, 2295,
21130 : GIR_Done,
21131 : // Label 1056: @54011
21132 : GIM_Reject,
21133 : // Label 1053: @54012
21134 : GIM_Try, /*On fail goto*//*Label 1057*/ 54048, // Rule ID 2294 //
21135 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
21136 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
21137 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
21138 : // (anyext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm) => (VMOVLuv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)
21139 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMOVLuv4i32,
21140 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
21141 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
21142 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
21143 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21144 : GIR_EraseFromParent, /*InsnID*/0,
21145 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
21146 : // GIR_Coverage, 2294,
21147 : GIR_Done,
21148 : // Label 1057: @54048
21149 : GIM_Reject,
21150 : // Label 1054: @54049
21151 : GIM_Try, /*On fail goto*//*Label 1058*/ 54085, // Rule ID 2293 //
21152 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
21153 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
21154 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
21155 : // (anyext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm) => (VMOVLuv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)
21156 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMOVLuv8i16,
21157 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
21158 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
21159 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
21160 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21161 : GIR_EraseFromParent, /*InsnID*/0,
21162 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
21163 : // GIR_Coverage, 2293,
21164 : GIR_Done,
21165 : // Label 1058: @54085
21166 : GIM_Reject,
21167 : // Label 1055: @54086
21168 : GIM_Reject,
21169 : // Label 12: @54087
21170 : GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/3, 8, /*)*//*default:*//*Label 1062*/ 54215,
21171 : /*GILLT_v2s32*//*Label 1059*/ 54098, 0,
21172 : /*GILLT_v4s16*//*Label 1060*/ 54137, 0,
21173 : /*GILLT_v8s8*//*Label 1061*/ 54176,
21174 : // Label 1059: @54098
21175 : GIM_Try, /*On fail goto*//*Label 1063*/ 54136, // Rule ID 1559 //
21176 : GIM_CheckFeatures, GIFBS_HasNEON,
21177 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
21178 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
21179 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
21180 : // (trunc:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm) => (VMOVNv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm)
21181 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMOVNv2i32,
21182 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
21183 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
21184 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
21185 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21186 : GIR_EraseFromParent, /*InsnID*/0,
21187 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
21188 : // GIR_Coverage, 1559,
21189 : GIR_Done,
21190 : // Label 1063: @54136
21191 : GIM_Reject,
21192 : // Label 1060: @54137
21193 : GIM_Try, /*On fail goto*//*Label 1064*/ 54175, // Rule ID 1558 //
21194 : GIM_CheckFeatures, GIFBS_HasNEON,
21195 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
21196 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
21197 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
21198 : // (trunc:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm) => (VMOVNv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm)
21199 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMOVNv4i16,
21200 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
21201 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
21202 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
21203 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21204 : GIR_EraseFromParent, /*InsnID*/0,
21205 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
21206 : // GIR_Coverage, 1558,
21207 : GIR_Done,
21208 : // Label 1064: @54175
21209 : GIM_Reject,
21210 : // Label 1061: @54176
21211 : GIM_Try, /*On fail goto*//*Label 1065*/ 54214, // Rule ID 1557 //
21212 : GIM_CheckFeatures, GIFBS_HasNEON,
21213 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
21214 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
21215 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
21216 : // (trunc:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm) => (VMOVNv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm)
21217 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMOVNv8i8,
21218 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
21219 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
21220 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
21221 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21222 : GIR_EraseFromParent, /*InsnID*/0,
21223 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
21224 : // GIR_Coverage, 1557,
21225 : GIR_Done,
21226 : // Label 1065: @54214
21227 : GIM_Reject,
21228 : // Label 1062: @54215
21229 : GIM_Reject,
21230 : // Label 13: @54216
21231 : GIM_Try, /*On fail goto*//*Label 1066*/ 54380,
21232 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
21233 : GIM_Try, /*On fail goto*//*Label 1067*/ 54257, // Rule ID 408 //
21234 : GIM_CheckFeatures, GIFBS_IsThumb2,
21235 : GIM_CheckI64ImmPredicate, /*MI*/0, /*Predicate*/GIPFP_I64_Predicate_t2_so_imm,
21236 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
21237 : // MIs[0] Operand 1
21238 : // No operand predicates
21239 : // (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm => (t2MOVi:{ *:[i32] } (imm:{ *:[i32] }):$imm)
21240 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2MOVi,
21241 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
21242 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/0, // imm
21243 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
21244 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21245 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21246 : GIR_EraseFromParent, /*InsnID*/0,
21247 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
21248 : // GIR_Coverage, 408,
21249 : GIR_Done,
21250 : // Label 1067: @54257
21251 : GIM_Try, /*On fail goto*//*Label 1068*/ 54292, // Rule ID 59 //
21252 : GIM_CheckFeatures, GIFBS_IsARM,
21253 : GIM_CheckI64ImmPredicate, /*MI*/0, /*Predicate*/GIPFP_I64_Predicate_mod_imm,
21254 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
21255 : // MIs[0] Operand 1
21256 : // No operand predicates
21257 : // (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm => (MOVi:{ *:[i32] } (imm:{ *:[i32] }):$imm)
21258 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MOVi,
21259 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
21260 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/0, // imm
21261 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
21262 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21263 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21264 : GIR_EraseFromParent, /*InsnID*/0,
21265 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
21266 : // GIR_Coverage, 59,
21267 : GIR_Done,
21268 : // Label 1068: @54292
21269 : GIM_Try, /*On fail goto*//*Label 1069*/ 54356,
21270 : GIM_CheckI64ImmPredicate, /*MI*/0, /*Predicate*/GIPFP_I64_Predicate_imm0_65535,
21271 : GIM_Try, /*On fail goto*//*Label 1070*/ 54326, // Rule ID 60 //
21272 : GIM_CheckFeatures, GIFBS_HasV6T2_IsARM,
21273 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
21274 : // MIs[0] Operand 1
21275 : // No operand predicates
21276 : // (imm:{ *:[i32] })<<P:Predicate_imm0_65535>>:$imm => (MOVi16:{ *:[i32] } (imm:{ *:[i32] }):$imm)
21277 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MOVi16,
21278 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
21279 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/0, // imm
21280 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
21281 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21282 : GIR_EraseFromParent, /*InsnID*/0,
21283 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
21284 : // GIR_Coverage, 60,
21285 : GIR_Done,
21286 : // Label 1070: @54326
21287 : GIM_Try, /*On fail goto*//*Label 1071*/ 54355, // Rule ID 409 //
21288 : GIM_CheckFeatures, GIFBS_HasV8MBaseline_IsThumb,
21289 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
21290 : // MIs[0] Operand 1
21291 : // No operand predicates
21292 : // (imm:{ *:[i32] })<<P:Predicate_imm0_65535>>:$imm => (t2MOVi16:{ *:[i32] } (imm:{ *:[i32] }):$imm)
21293 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2MOVi16,
21294 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
21295 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/0, // imm
21296 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
21297 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21298 : GIR_EraseFromParent, /*InsnID*/0,
21299 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
21300 : // GIR_Coverage, 409,
21301 : GIR_Done,
21302 : // Label 1071: @54355
21303 : GIM_Reject,
21304 : // Label 1069: @54356
21305 : GIM_Try, /*On fail goto*//*Label 1072*/ 54379, // Rule ID 595 //
21306 : GIM_CheckFeatures, GIFBS_IsThumb_UseMovt,
21307 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
21308 : // MIs[0] Operand 1
21309 : // No operand predicates
21310 : // (imm:{ *:[i32] }):$src => (t2MOVi32imm:{ *:[i32] } (imm:{ *:[i32] }):$src)
21311 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2MOVi32imm,
21312 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
21313 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/0, // src
21314 : GIR_EraseFromParent, /*InsnID*/0,
21315 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
21316 : // GIR_Coverage, 595,
21317 : GIR_Done,
21318 : // Label 1072: @54379
21319 : GIM_Reject,
21320 : // Label 1066: @54380
21321 : GIM_Reject,
21322 : // Label 14: @54381
21323 : GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/4, 9, /*)*//*default:*//*Label 1076*/ 54509,
21324 : /*GILLT_v2s64*//*Label 1073*/ 54392, 0,
21325 : /*GILLT_v4s32*//*Label 1074*/ 54431, 0,
21326 : /*GILLT_v8s16*//*Label 1075*/ 54470,
21327 : // Label 1073: @54392
21328 : GIM_Try, /*On fail goto*//*Label 1077*/ 54430, // Rule ID 1571 //
21329 : GIM_CheckFeatures, GIFBS_HasNEON,
21330 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
21331 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
21332 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
21333 : // (sext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm) => (VMOVLsv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)
21334 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMOVLsv2i64,
21335 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
21336 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
21337 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
21338 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21339 : GIR_EraseFromParent, /*InsnID*/0,
21340 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
21341 : // GIR_Coverage, 1571,
21342 : GIR_Done,
21343 : // Label 1077: @54430
21344 : GIM_Reject,
21345 : // Label 1074: @54431
21346 : GIM_Try, /*On fail goto*//*Label 1078*/ 54469, // Rule ID 1570 //
21347 : GIM_CheckFeatures, GIFBS_HasNEON,
21348 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
21349 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
21350 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
21351 : // (sext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm) => (VMOVLsv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)
21352 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMOVLsv4i32,
21353 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
21354 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
21355 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
21356 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21357 : GIR_EraseFromParent, /*InsnID*/0,
21358 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
21359 : // GIR_Coverage, 1570,
21360 : GIR_Done,
21361 : // Label 1078: @54469
21362 : GIM_Reject,
21363 : // Label 1075: @54470
21364 : GIM_Try, /*On fail goto*//*Label 1079*/ 54508, // Rule ID 1569 //
21365 : GIM_CheckFeatures, GIFBS_HasNEON,
21366 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
21367 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
21368 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
21369 : // (sext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm) => (VMOVLsv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)
21370 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMOVLsv8i16,
21371 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
21372 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
21373 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
21374 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21375 : GIR_EraseFromParent, /*InsnID*/0,
21376 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
21377 : // GIR_Coverage, 1569,
21378 : GIR_Done,
21379 : // Label 1079: @54508
21380 : GIM_Reject,
21381 : // Label 1076: @54509
21382 : GIM_Reject,
21383 : // Label 15: @54510
21384 : GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/4, 9, /*)*//*default:*//*Label 1083*/ 55019,
21385 : /*GILLT_v2s64*//*Label 1080*/ 54521, 0,
21386 : /*GILLT_v4s32*//*Label 1081*/ 54687, 0,
21387 : /*GILLT_v8s16*//*Label 1082*/ 54853,
21388 : // Label 1080: @54521
21389 : GIM_Try, /*On fail goto*//*Label 1084*/ 54686,
21390 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
21391 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
21392 : GIM_Try, /*On fail goto*//*Label 1085*/ 54593, // Rule ID 1146 //
21393 : GIM_CheckFeatures, GIFBS_HasNEON,
21394 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
21395 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
21396 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
21397 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabds,
21398 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s32,
21399 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v2s32,
21400 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
21401 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
21402 : GIM_CheckIsSafeToFold, /*InsnID*/1,
21403 : // (zext:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i32] } 1054:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)) => (VABDLsv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
21404 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDLsv2i64,
21405 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
21406 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
21407 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
21408 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
21409 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21410 : GIR_EraseFromParent, /*InsnID*/0,
21411 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
21412 : // GIR_Coverage, 1146,
21413 : GIR_Done,
21414 : // Label 1085: @54593
21415 : GIM_Try, /*On fail goto*//*Label 1086*/ 54655, // Rule ID 1149 //
21416 : GIM_CheckFeatures, GIFBS_HasNEON,
21417 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
21418 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
21419 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
21420 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabdu,
21421 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s32,
21422 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v2s32,
21423 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
21424 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
21425 : GIM_CheckIsSafeToFold, /*InsnID*/1,
21426 : // (zext:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i32] } 1055:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)) => (VABDLuv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
21427 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDLuv2i64,
21428 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
21429 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
21430 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
21431 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
21432 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21433 : GIR_EraseFromParent, /*InsnID*/0,
21434 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
21435 : // GIR_Coverage, 1149,
21436 : GIR_Done,
21437 : // Label 1086: @54655
21438 : GIM_Try, /*On fail goto*//*Label 1087*/ 54685, // Rule ID 1574 //
21439 : GIM_CheckFeatures, GIFBS_HasNEON,
21440 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
21441 : // (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm) => (VMOVLuv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)
21442 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMOVLuv2i64,
21443 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
21444 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
21445 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
21446 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21447 : GIR_EraseFromParent, /*InsnID*/0,
21448 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
21449 : // GIR_Coverage, 1574,
21450 : GIR_Done,
21451 : // Label 1087: @54685
21452 : GIM_Reject,
21453 : // Label 1084: @54686
21454 : GIM_Reject,
21455 : // Label 1081: @54687
21456 : GIM_Try, /*On fail goto*//*Label 1088*/ 54852,
21457 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
21458 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
21459 : GIM_Try, /*On fail goto*//*Label 1089*/ 54759, // Rule ID 1145 //
21460 : GIM_CheckFeatures, GIFBS_HasNEON,
21461 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
21462 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
21463 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
21464 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabds,
21465 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
21466 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v4s16,
21467 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
21468 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
21469 : GIM_CheckIsSafeToFold, /*InsnID*/1,
21470 : // (zext:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i16] } 1054:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)) => (VABDLsv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
21471 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDLsv4i32,
21472 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
21473 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
21474 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
21475 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
21476 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21477 : GIR_EraseFromParent, /*InsnID*/0,
21478 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
21479 : // GIR_Coverage, 1145,
21480 : GIR_Done,
21481 : // Label 1089: @54759
21482 : GIM_Try, /*On fail goto*//*Label 1090*/ 54821, // Rule ID 1148 //
21483 : GIM_CheckFeatures, GIFBS_HasNEON,
21484 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
21485 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
21486 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
21487 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabdu,
21488 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
21489 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v4s16,
21490 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
21491 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
21492 : GIM_CheckIsSafeToFold, /*InsnID*/1,
21493 : // (zext:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i16] } 1055:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)) => (VABDLuv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
21494 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDLuv4i32,
21495 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
21496 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
21497 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
21498 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
21499 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21500 : GIR_EraseFromParent, /*InsnID*/0,
21501 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
21502 : // GIR_Coverage, 1148,
21503 : GIR_Done,
21504 : // Label 1090: @54821
21505 : GIM_Try, /*On fail goto*//*Label 1091*/ 54851, // Rule ID 1573 //
21506 : GIM_CheckFeatures, GIFBS_HasNEON,
21507 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
21508 : // (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm) => (VMOVLuv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)
21509 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMOVLuv4i32,
21510 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
21511 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
21512 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
21513 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21514 : GIR_EraseFromParent, /*InsnID*/0,
21515 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
21516 : // GIR_Coverage, 1573,
21517 : GIR_Done,
21518 : // Label 1091: @54851
21519 : GIM_Reject,
21520 : // Label 1088: @54852
21521 : GIM_Reject,
21522 : // Label 1082: @54853
21523 : GIM_Try, /*On fail goto*//*Label 1092*/ 55018,
21524 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
21525 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
21526 : GIM_Try, /*On fail goto*//*Label 1093*/ 54925, // Rule ID 1144 //
21527 : GIM_CheckFeatures, GIFBS_HasNEON,
21528 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
21529 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
21530 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
21531 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabds,
21532 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s8,
21533 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v8s8,
21534 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
21535 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
21536 : GIM_CheckIsSafeToFold, /*InsnID*/1,
21537 : // (zext:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i8] } 1054:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)) => (VABDLsv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
21538 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDLsv8i16,
21539 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
21540 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
21541 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
21542 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
21543 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21544 : GIR_EraseFromParent, /*InsnID*/0,
21545 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
21546 : // GIR_Coverage, 1144,
21547 : GIR_Done,
21548 : // Label 1093: @54925
21549 : GIM_Try, /*On fail goto*//*Label 1094*/ 54987, // Rule ID 1147 //
21550 : GIM_CheckFeatures, GIFBS_HasNEON,
21551 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
21552 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
21553 : GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
21554 : GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabdu,
21555 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s8,
21556 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v8s8,
21557 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
21558 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
21559 : GIM_CheckIsSafeToFold, /*InsnID*/1,
21560 : // (zext:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i8] } 1055:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)) => (VABDLuv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
21561 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDLuv8i16,
21562 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
21563 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
21564 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
21565 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
21566 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21567 : GIR_EraseFromParent, /*InsnID*/0,
21568 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
21569 : // GIR_Coverage, 1147,
21570 : GIR_Done,
21571 : // Label 1094: @54987
21572 : GIM_Try, /*On fail goto*//*Label 1095*/ 55017, // Rule ID 1572 //
21573 : GIM_CheckFeatures, GIFBS_HasNEON,
21574 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
21575 : // (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm) => (VMOVLuv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)
21576 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMOVLuv8i16,
21577 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
21578 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
21579 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
21580 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21581 : GIR_EraseFromParent, /*InsnID*/0,
21582 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
21583 : // GIR_Coverage, 1572,
21584 : GIR_Done,
21585 : // Label 1095: @55017
21586 : GIM_Reject,
21587 : // Label 1092: @55018
21588 : GIM_Reject,
21589 : // Label 1083: @55019
21590 : GIM_Reject,
21591 : // Label 16: @55020
21592 : GIM_Try, /*On fail goto*//*Label 1096*/ 55124,
21593 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
21594 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
21595 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
21596 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
21597 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
21598 : GIM_Try, /*On fail goto*//*Label 1097*/ 55086, // Rule ID 474 //
21599 : GIM_CheckFeatures, GIFBS_IsThumb2,
21600 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
21601 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
21602 : GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm1_31,
21603 : // MIs[1] Operand 1
21604 : // No operand predicates
21605 : GIM_CheckIsSafeToFold, /*InsnID*/1,
21606 : // (shl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_imm1_31>>:$imm) => (t2LSLri:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$imm)
21607 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2LSLri,
21608 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
21609 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rm
21610 : GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
21611 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
21612 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21613 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21614 : GIR_EraseFromParent, /*InsnID*/0,
21615 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
21616 : // GIR_Coverage, 474,
21617 : GIR_Done,
21618 : // Label 1097: @55086
21619 : GIM_Try, /*On fail goto*//*Label 1098*/ 55123, // Rule ID 475 //
21620 : GIM_CheckFeatures, GIFBS_IsThumb2,
21621 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
21622 : // (shl:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2LSLrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
21623 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2LSLrr,
21624 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
21625 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
21626 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
21627 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
21628 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21629 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21630 : GIR_EraseFromParent, /*InsnID*/0,
21631 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
21632 : // GIR_Coverage, 475,
21633 : GIR_Done,
21634 : // Label 1098: @55123
21635 : GIM_Reject,
21636 : // Label 1096: @55124
21637 : GIM_Reject,
21638 : // Label 17: @55125
21639 : GIM_Try, /*On fail goto*//*Label 1099*/ 55182, // Rule ID 477 //
21640 : GIM_CheckFeatures, GIFBS_IsThumb2,
21641 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
21642 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
21643 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
21644 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
21645 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
21646 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
21647 : // (srl:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2LSRrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
21648 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2LSRrr,
21649 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
21650 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
21651 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
21652 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
21653 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21654 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21655 : GIR_EraseFromParent, /*InsnID*/0,
21656 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
21657 : // GIR_Coverage, 477,
21658 : GIR_Done,
21659 : // Label 1099: @55182
21660 : GIM_Reject,
21661 : // Label 18: @55183
21662 : GIM_Try, /*On fail goto*//*Label 1100*/ 55395,
21663 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
21664 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
21665 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
21666 : GIM_Try, /*On fail goto*//*Label 1101*/ 55248, // Rule ID 203 //
21667 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
21668 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
21669 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
21670 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_BSWAP,
21671 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
21672 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRRegClassID,
21673 : GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 16,
21674 : GIM_CheckIsSafeToFold, /*InsnID*/1,
21675 : // (sra:{ *:[i32] } (bswap:{ *:[i32] } GPR:{ *:[i32] }:$Rm), 16:{ *:[i32] }) => (REVSH:{ *:[i32] } GPR:{ *:[i32] }:$Rm)
21676 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::REVSH,
21677 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
21678 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
21679 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
21680 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21681 : GIR_EraseFromParent, /*InsnID*/0,
21682 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
21683 : // GIR_Coverage, 203,
21684 : GIR_Done,
21685 : // Label 1101: @55248
21686 : GIM_Try, /*On fail goto*//*Label 1102*/ 55299, // Rule ID 336 //
21687 : GIM_CheckFeatures, GIFBS_HasV6_IsThumb_IsThumb1Only,
21688 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::tGPRRegClassID,
21689 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
21690 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_BSWAP,
21691 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
21692 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::tGPRRegClassID,
21693 : GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 16,
21694 : GIM_CheckIsSafeToFold, /*InsnID*/1,
21695 : // (sra:{ *:[i32] } (bswap:{ *:[i32] } tGPR:{ *:[i32] }:$Rm), 16:{ *:[i32] }) => (tREVSH:{ *:[i32] } tGPR:{ *:[i32] }:$Rm)
21696 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::tREVSH,
21697 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
21698 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
21699 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
21700 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21701 : GIR_EraseFromParent, /*InsnID*/0,
21702 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
21703 : // GIR_Coverage, 336,
21704 : GIR_Done,
21705 : // Label 1102: @55299
21706 : GIM_Try, /*On fail goto*//*Label 1103*/ 55394,
21707 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
21708 : GIM_Try, /*On fail goto*//*Label 1104*/ 55352, // Rule ID 542 //
21709 : GIM_CheckFeatures, GIFBS_IsThumb2,
21710 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
21711 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_BSWAP,
21712 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
21713 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
21714 : GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 16,
21715 : GIM_CheckIsSafeToFold, /*InsnID*/1,
21716 : // (sra:{ *:[i32] } (bswap:{ *:[i32] } rGPR:{ *:[i32] }:$Rm), 16:{ *:[i32] }) => (t2REVSH:{ *:[i32] } rGPR:{ *:[i32] }:$Rm)
21717 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2REVSH,
21718 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
21719 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
21720 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
21721 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21722 : GIR_EraseFromParent, /*InsnID*/0,
21723 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
21724 : // GIR_Coverage, 542,
21725 : GIR_Done,
21726 : // Label 1104: @55352
21727 : GIM_Try, /*On fail goto*//*Label 1105*/ 55393, // Rule ID 479 //
21728 : GIM_CheckFeatures, GIFBS_IsThumb2,
21729 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
21730 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
21731 : // (sra:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2ASRrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
21732 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2ASRrr,
21733 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
21734 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
21735 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
21736 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
21737 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21738 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21739 : GIR_EraseFromParent, /*InsnID*/0,
21740 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
21741 : // GIR_Coverage, 479,
21742 : GIR_Done,
21743 : // Label 1105: @55393
21744 : GIM_Reject,
21745 : // Label 1103: @55394
21746 : GIM_Reject,
21747 : // Label 1100: @55395
21748 : GIM_Reject,
21749 : // Label 19: @55396
21750 : GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 9, /*)*//*default:*//*Label 1113*/ 56026,
21751 : /*GILLT_s16*//*Label 1106*/ 55411,
21752 : /*GILLT_s32*//*Label 1107*/ 55462,
21753 : /*GILLT_s64*//*Label 1108*/ 55513,
21754 : /*GILLT_v2s32*//*Label 1109*/ 55564, 0,
21755 : /*GILLT_v4s16*//*Label 1110*/ 55615,
21756 : /*GILLT_v4s32*//*Label 1111*/ 55795, 0,
21757 : /*GILLT_v8s16*//*Label 1112*/ 55846,
21758 : // Label 1106: @55411
21759 : GIM_Try, /*On fail goto*//*Label 1114*/ 55461, // Rule ID 620 //
21760 : GIM_CheckFeatures, GIFBS_HasFullFP16,
21761 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
21762 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s16,
21763 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::HPRRegClassID,
21764 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::HPRRegClassID,
21765 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::HPRRegClassID,
21766 : // (fadd:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm) => (VADDH:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
21767 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDH,
21768 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
21769 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sn
21770 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Sm
21771 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
21772 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21773 : GIR_EraseFromParent, /*InsnID*/0,
21774 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
21775 : // GIR_Coverage, 620,
21776 : GIR_Done,
21777 : // Label 1114: @55461
21778 : GIM_Reject,
21779 : // Label 1107: @55462
21780 : GIM_Try, /*On fail goto*//*Label 1115*/ 55512, // Rule ID 619 //
21781 : GIM_CheckFeatures, GIFBS_DontUseNEONForFP_HasVFP2,
21782 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
21783 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
21784 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
21785 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
21786 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::SPRRegClassID,
21787 : // (fadd:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm) => (VADDS:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
21788 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDS,
21789 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
21790 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sn
21791 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Sm
21792 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
21793 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21794 : GIR_EraseFromParent, /*InsnID*/0,
21795 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
21796 : // GIR_Coverage, 619,
21797 : GIR_Done,
21798 : // Label 1115: @55512
21799 : GIM_Reject,
21800 : // Label 1108: @55513
21801 : GIM_Try, /*On fail goto*//*Label 1116*/ 55563, // Rule ID 618 //
21802 : GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP2,
21803 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
21804 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
21805 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
21806 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
21807 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
21808 : // (fadd:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm) => (VADDD:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
21809 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDD,
21810 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
21811 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Dn
21812 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Dm
21813 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
21814 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21815 : GIR_EraseFromParent, /*InsnID*/0,
21816 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
21817 : // GIR_Coverage, 618,
21818 : GIR_Done,
21819 : // Label 1116: @55563
21820 : GIM_Reject,
21821 : // Label 1109: @55564
21822 : GIM_Try, /*On fail goto*//*Label 1117*/ 55614, // Rule ID 762 //
21823 : GIM_CheckFeatures, GIFBS_HasNEON,
21824 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
21825 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
21826 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
21827 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
21828 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
21829 : // (fadd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) => (VADDfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
21830 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDfd,
21831 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
21832 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
21833 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
21834 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
21835 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21836 : GIR_EraseFromParent, /*InsnID*/0,
21837 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
21838 : // GIR_Coverage, 762,
21839 : GIR_Done,
21840 : // Label 1117: @55614
21841 : GIM_Reject,
21842 : // Label 1110: @55615
21843 : GIM_Try, /*On fail goto*//*Label 1118*/ 55794,
21844 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
21845 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
21846 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
21847 : GIM_Try, /*On fail goto*//*Label 1119*/ 55692, // Rule ID 2678 //
21848 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_UseFusedMAC,
21849 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
21850 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMUL,
21851 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
21852 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
21853 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
21854 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
21855 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
21856 : GIM_CheckIsSafeToFold, /*InsnID*/1,
21857 : // (fadd:{ *:[v4f16] } (fmul:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm), DPR:{ *:[v4f16] }:$src1) => (VFMAhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
21858 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFMAhd,
21859 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
21860 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
21861 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
21862 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
21863 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
21864 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21865 : GIR_EraseFromParent, /*InsnID*/0,
21866 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
21867 : // GIR_Coverage, 2678,
21868 : GIR_Done,
21869 : // Label 1119: @55692
21870 : GIM_Try, /*On fail goto*//*Label 1120*/ 55755, // Rule ID 931 //
21871 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_UseFusedMAC,
21872 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
21873 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
21874 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMUL,
21875 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
21876 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
21877 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
21878 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
21879 : GIM_CheckIsSafeToFold, /*InsnID*/1,
21880 : // (fadd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, (fmul:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)) => (VFMAhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
21881 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFMAhd,
21882 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
21883 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
21884 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
21885 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
21886 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
21887 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21888 : GIR_EraseFromParent, /*InsnID*/0,
21889 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
21890 : // GIR_Coverage, 931,
21891 : GIR_Done,
21892 : // Label 1120: @55755
21893 : GIM_Try, /*On fail goto*//*Label 1121*/ 55793, // Rule ID 764 //
21894 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
21895 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
21896 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
21897 : // (fadd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) => (VADDhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
21898 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDhd,
21899 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
21900 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
21901 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
21902 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
21903 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21904 : GIR_EraseFromParent, /*InsnID*/0,
21905 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
21906 : // GIR_Coverage, 764,
21907 : GIR_Done,
21908 : // Label 1121: @55793
21909 : GIM_Reject,
21910 : // Label 1118: @55794
21911 : GIM_Reject,
21912 : // Label 1111: @55795
21913 : GIM_Try, /*On fail goto*//*Label 1122*/ 55845, // Rule ID 763 //
21914 : GIM_CheckFeatures, GIFBS_HasNEON,
21915 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
21916 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
21917 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
21918 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
21919 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
21920 : // (fadd:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) => (VADDfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
21921 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDfq,
21922 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
21923 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
21924 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
21925 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
21926 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21927 : GIR_EraseFromParent, /*InsnID*/0,
21928 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
21929 : // GIR_Coverage, 763,
21930 : GIR_Done,
21931 : // Label 1122: @55845
21932 : GIM_Reject,
21933 : // Label 1112: @55846
21934 : GIM_Try, /*On fail goto*//*Label 1123*/ 56025,
21935 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
21936 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
21937 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
21938 : GIM_Try, /*On fail goto*//*Label 1124*/ 55923, // Rule ID 2679 //
21939 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_UseFusedMAC,
21940 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
21941 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMUL,
21942 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s16,
21943 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s16,
21944 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::QPRRegClassID,
21945 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
21946 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
21947 : GIM_CheckIsSafeToFold, /*InsnID*/1,
21948 : // (fadd:{ *:[v8f16] } (fmul:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm), QPR:{ *:[v8f16] }:$src1) => (VFMAhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
21949 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFMAhq,
21950 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
21951 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
21952 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
21953 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
21954 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
21955 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21956 : GIR_EraseFromParent, /*InsnID*/0,
21957 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
21958 : // GIR_Coverage, 2679,
21959 : GIR_Done,
21960 : // Label 1124: @55923
21961 : GIM_Try, /*On fail goto*//*Label 1125*/ 55986, // Rule ID 932 //
21962 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_UseFusedMAC,
21963 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
21964 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
21965 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMUL,
21966 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s16,
21967 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s16,
21968 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::QPRRegClassID,
21969 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
21970 : GIM_CheckIsSafeToFold, /*InsnID*/1,
21971 : // (fadd:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, (fmul:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)) => (VFMAhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
21972 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFMAhq,
21973 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
21974 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
21975 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
21976 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
21977 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
21978 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21979 : GIR_EraseFromParent, /*InsnID*/0,
21980 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
21981 : // GIR_Coverage, 932,
21982 : GIR_Done,
21983 : // Label 1125: @55986
21984 : GIM_Try, /*On fail goto*//*Label 1126*/ 56024, // Rule ID 765 //
21985 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
21986 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
21987 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
21988 : // (fadd:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) => (VADDhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
21989 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDhq,
21990 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
21991 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
21992 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
21993 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
21994 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
21995 : GIR_EraseFromParent, /*InsnID*/0,
21996 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
21997 : // GIR_Coverage, 765,
21998 : GIR_Done,
21999 : // Label 1126: @56024
22000 : GIM_Reject,
22001 : // Label 1123: @56025
22002 : GIM_Reject,
22003 : // Label 1113: @56026
22004 : GIM_Reject,
22005 : // Label 20: @56027
22006 : GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 9, /*)*//*default:*//*Label 1134*/ 56641,
22007 : /*GILLT_s16*//*Label 1127*/ 56042,
22008 : /*GILLT_s32*//*Label 1128*/ 56093,
22009 : /*GILLT_s64*//*Label 1129*/ 56144,
22010 : /*GILLT_v2s32*//*Label 1130*/ 56195, 0,
22011 : /*GILLT_v4s16*//*Label 1131*/ 56246,
22012 : /*GILLT_v4s32*//*Label 1132*/ 56418, 0,
22013 : /*GILLT_v8s16*//*Label 1133*/ 56469,
22014 : // Label 1127: @56042
22015 : GIM_Try, /*On fail goto*//*Label 1135*/ 56092, // Rule ID 623 //
22016 : GIM_CheckFeatures, GIFBS_HasFullFP16,
22017 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
22018 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s16,
22019 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::HPRRegClassID,
22020 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::HPRRegClassID,
22021 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::HPRRegClassID,
22022 : // (fsub:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm) => (VSUBH:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
22023 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBH,
22024 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
22025 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sn
22026 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Sm
22027 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
22028 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
22029 : GIR_EraseFromParent, /*InsnID*/0,
22030 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
22031 : // GIR_Coverage, 623,
22032 : GIR_Done,
22033 : // Label 1135: @56092
22034 : GIM_Reject,
22035 : // Label 1128: @56093
22036 : GIM_Try, /*On fail goto*//*Label 1136*/ 56143, // Rule ID 622 //
22037 : GIM_CheckFeatures, GIFBS_DontUseNEONForFP_HasVFP2,
22038 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
22039 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
22040 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
22041 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
22042 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::SPRRegClassID,
22043 : // (fsub:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm) => (VSUBS:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
22044 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBS,
22045 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
22046 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sn
22047 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Sm
22048 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
22049 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
22050 : GIR_EraseFromParent, /*InsnID*/0,
22051 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
22052 : // GIR_Coverage, 622,
22053 : GIR_Done,
22054 : // Label 1136: @56143
22055 : GIM_Reject,
22056 : // Label 1129: @56144
22057 : GIM_Try, /*On fail goto*//*Label 1137*/ 56194, // Rule ID 621 //
22058 : GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP2,
22059 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
22060 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
22061 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
22062 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
22063 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
22064 : // (fsub:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm) => (VSUBD:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
22065 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBD,
22066 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
22067 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Dn
22068 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Dm
22069 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
22070 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
22071 : GIR_EraseFromParent, /*InsnID*/0,
22072 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
22073 : // GIR_Coverage, 621,
22074 : GIR_Done,
22075 : // Label 1137: @56194
22076 : GIM_Reject,
22077 : // Label 1130: @56195
22078 : GIM_Try, /*On fail goto*//*Label 1138*/ 56245, // Rule ID 949 //
22079 : GIM_CheckFeatures, GIFBS_HasNEON,
22080 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
22081 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
22082 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
22083 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
22084 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
22085 : // (fsub:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) => (VSUBfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
22086 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBfd,
22087 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
22088 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
22089 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
22090 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
22091 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
22092 : GIR_EraseFromParent, /*InsnID*/0,
22093 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
22094 : // GIR_Coverage, 949,
22095 : GIR_Done,
22096 : // Label 1138: @56245
22097 : GIM_Reject,
22098 : // Label 1131: @56246
22099 : GIM_Try, /*On fail goto*//*Label 1139*/ 56417,
22100 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
22101 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
22102 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
22103 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
22104 : GIM_Try, /*On fail goto*//*Label 1140*/ 56323, // Rule ID 909 //
22105 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_UseFPVMLx,
22106 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
22107 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMUL,
22108 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
22109 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
22110 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
22111 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
22112 : GIM_CheckIsSafeToFold, /*InsnID*/1,
22113 : // (fsub:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, (fmul:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)) => (VMLShd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
22114 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMLShd,
22115 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
22116 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
22117 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
22118 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
22119 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
22120 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
22121 : GIR_EraseFromParent, /*InsnID*/0,
22122 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
22123 : // GIR_Coverage, 909,
22124 : GIR_Done,
22125 : // Label 1140: @56323
22126 : GIM_Try, /*On fail goto*//*Label 1141*/ 56382, // Rule ID 935 //
22127 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_UseFusedMAC,
22128 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
22129 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMUL,
22130 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
22131 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
22132 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
22133 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
22134 : GIM_CheckIsSafeToFold, /*InsnID*/1,
22135 : // (fsub:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, (fmul:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)) => (VFMShd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
22136 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFMShd,
22137 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
22138 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
22139 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
22140 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
22141 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
22142 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
22143 : GIR_EraseFromParent, /*InsnID*/0,
22144 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
22145 : // GIR_Coverage, 935,
22146 : GIR_Done,
22147 : // Label 1141: @56382
22148 : GIM_Try, /*On fail goto*//*Label 1142*/ 56416, // Rule ID 951 //
22149 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
22150 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
22151 : // (fsub:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) => (VSUBhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
22152 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBhd,
22153 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
22154 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
22155 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
22156 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
22157 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
22158 : GIR_EraseFromParent, /*InsnID*/0,
22159 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
22160 : // GIR_Coverage, 951,
22161 : GIR_Done,
22162 : // Label 1142: @56416
22163 : GIM_Reject,
22164 : // Label 1139: @56417
22165 : GIM_Reject,
22166 : // Label 1132: @56418
22167 : GIM_Try, /*On fail goto*//*Label 1143*/ 56468, // Rule ID 950 //
22168 : GIM_CheckFeatures, GIFBS_HasNEON,
22169 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
22170 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
22171 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
22172 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
22173 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
22174 : // (fsub:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) => (VSUBfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
22175 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBfq,
22176 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
22177 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
22178 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
22179 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
22180 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
22181 : GIR_EraseFromParent, /*InsnID*/0,
22182 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
22183 : // GIR_Coverage, 950,
22184 : GIR_Done,
22185 : // Label 1143: @56468
22186 : GIM_Reject,
22187 : // Label 1133: @56469
22188 : GIM_Try, /*On fail goto*//*Label 1144*/ 56640,
22189 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
22190 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
22191 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
22192 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
22193 : GIM_Try, /*On fail goto*//*Label 1145*/ 56546, // Rule ID 910 //
22194 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_UseFPVMLx,
22195 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
22196 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMUL,
22197 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s16,
22198 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s16,
22199 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::QPRRegClassID,
22200 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
22201 : GIM_CheckIsSafeToFold, /*InsnID*/1,
22202 : // (fsub:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, (fmul:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)) => (VMLShq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
22203 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMLShq,
22204 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
22205 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
22206 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
22207 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
22208 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
22209 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
22210 : GIR_EraseFromParent, /*InsnID*/0,
22211 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
22212 : // GIR_Coverage, 910,
22213 : GIR_Done,
22214 : // Label 1145: @56546
22215 : GIM_Try, /*On fail goto*//*Label 1146*/ 56605, // Rule ID 936 //
22216 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_UseFusedMAC,
22217 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
22218 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMUL,
22219 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s16,
22220 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s16,
22221 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::QPRRegClassID,
22222 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
22223 : GIM_CheckIsSafeToFold, /*InsnID*/1,
22224 : // (fsub:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, (fmul:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)) => (VFMShq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
22225 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFMShq,
22226 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
22227 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
22228 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
22229 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
22230 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
22231 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
22232 : GIR_EraseFromParent, /*InsnID*/0,
22233 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
22234 : // GIR_Coverage, 936,
22235 : GIR_Done,
22236 : // Label 1146: @56605
22237 : GIM_Try, /*On fail goto*//*Label 1147*/ 56639, // Rule ID 952 //
22238 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
22239 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
22240 : // (fsub:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) => (VSUBhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
22241 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBhq,
22242 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
22243 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
22244 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
22245 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
22246 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
22247 : GIR_EraseFromParent, /*InsnID*/0,
22248 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
22249 : // GIR_Coverage, 952,
22250 : GIR_Done,
22251 : // Label 1147: @56639
22252 : GIM_Reject,
22253 : // Label 1144: @56640
22254 : GIM_Reject,
22255 : // Label 1134: @56641
22256 : GIM_Reject,
22257 : // Label 21: @56642
22258 : GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 9, /*)*//*default:*//*Label 1155*/ 57224,
22259 : /*GILLT_s16*//*Label 1148*/ 56657,
22260 : /*GILLT_s32*//*Label 1149*/ 56708,
22261 : /*GILLT_s64*//*Label 1150*/ 56864,
22262 : /*GILLT_v2s32*//*Label 1151*/ 57020, 0,
22263 : /*GILLT_v4s16*//*Label 1152*/ 57071,
22264 : /*GILLT_v4s32*//*Label 1153*/ 57122, 0,
22265 : /*GILLT_v8s16*//*Label 1154*/ 57173,
22266 : // Label 1148: @56657
22267 : GIM_Try, /*On fail goto*//*Label 1156*/ 56707, // Rule ID 629 //
22268 : GIM_CheckFeatures, GIFBS_HasFullFP16,
22269 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
22270 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s16,
22271 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::HPRRegClassID,
22272 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::HPRRegClassID,
22273 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::HPRRegClassID,
22274 : // (fmul:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm) => (VMULH:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
22275 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMULH,
22276 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
22277 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sn
22278 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Sm
22279 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
22280 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
22281 : GIR_EraseFromParent, /*InsnID*/0,
22282 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
22283 : // GIR_Coverage, 629,
22284 : GIR_Done,
22285 : // Label 1156: @56707
22286 : GIM_Reject,
22287 : // Label 1149: @56708
22288 : GIM_Try, /*On fail goto*//*Label 1157*/ 56863,
22289 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
22290 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
22291 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
22292 : GIM_Try, /*On fail goto*//*Label 1158*/ 56773, // Rule ID 2038 //
22293 : GIM_CheckFeatures, GIFBS_NoHonorSignDependentRounding,
22294 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
22295 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
22296 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
22297 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::SPRRegClassID,
22298 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::SPRRegClassID,
22299 : GIM_CheckIsSafeToFold, /*InsnID*/1,
22300 : // (fmul:{ *:[f32] } (fneg:{ *:[f32] } SPR:{ *:[f32] }:$a), SPR:{ *:[f32] }:$b) => (VNMULS:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b)
22301 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VNMULS,
22302 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
22303 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // a
22304 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // b
22305 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
22306 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
22307 : GIR_EraseFromParent, /*InsnID*/0,
22308 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
22309 : // GIR_Coverage, 2038,
22310 : GIR_Done,
22311 : // Label 1158: @56773
22312 : GIM_Try, /*On fail goto*//*Label 1159*/ 56824, // Rule ID 2794 //
22313 : GIM_CheckFeatures, GIFBS_NoHonorSignDependentRounding,
22314 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
22315 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
22316 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
22317 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
22318 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::SPRRegClassID,
22319 : GIM_CheckIsSafeToFold, /*InsnID*/1,
22320 : // (fmul:{ *:[f32] } SPR:{ *:[f32] }:$b, (fneg:{ *:[f32] } SPR:{ *:[f32] }:$a)) => (VNMULS:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b)
22321 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VNMULS,
22322 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
22323 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // a
22324 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // b
22325 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
22326 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
22327 : GIR_EraseFromParent, /*InsnID*/0,
22328 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
22329 : // GIR_Coverage, 2794,
22330 : GIR_Done,
22331 : // Label 1159: @56824
22332 : GIM_Try, /*On fail goto*//*Label 1160*/ 56862, // Rule ID 628 //
22333 : GIM_CheckFeatures, GIFBS_DontUseNEONForFP_HasVFP2,
22334 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
22335 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::SPRRegClassID,
22336 : // (fmul:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm) => (VMULS:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
22337 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMULS,
22338 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
22339 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sn
22340 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Sm
22341 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
22342 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
22343 : GIR_EraseFromParent, /*InsnID*/0,
22344 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
22345 : // GIR_Coverage, 628,
22346 : GIR_Done,
22347 : // Label 1160: @56862
22348 : GIM_Reject,
22349 : // Label 1157: @56863
22350 : GIM_Reject,
22351 : // Label 1150: @56864
22352 : GIM_Try, /*On fail goto*//*Label 1161*/ 57019,
22353 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
22354 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
22355 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
22356 : GIM_Try, /*On fail goto*//*Label 1162*/ 56929, // Rule ID 2037 //
22357 : GIM_CheckFeatures, GIFBS_HasDPVFP_NoHonorSignDependentRounding,
22358 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
22359 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
22360 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
22361 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
22362 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
22363 : GIM_CheckIsSafeToFold, /*InsnID*/1,
22364 : // (fmul:{ *:[f64] } (fneg:{ *:[f64] } DPR:{ *:[f64] }:$a), DPR:{ *:[f64] }:$b) => (VNMULD:{ *:[f64] } DPR:{ *:[f64] }:$a, DPR:{ *:[f64] }:$b)
22365 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VNMULD,
22366 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
22367 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // a
22368 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // b
22369 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
22370 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
22371 : GIR_EraseFromParent, /*InsnID*/0,
22372 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
22373 : // GIR_Coverage, 2037,
22374 : GIR_Done,
22375 : // Label 1162: @56929
22376 : GIM_Try, /*On fail goto*//*Label 1163*/ 56980, // Rule ID 2793 //
22377 : GIM_CheckFeatures, GIFBS_HasDPVFP_NoHonorSignDependentRounding,
22378 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
22379 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
22380 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
22381 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
22382 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
22383 : GIM_CheckIsSafeToFold, /*InsnID*/1,
22384 : // (fmul:{ *:[f64] } DPR:{ *:[f64] }:$b, (fneg:{ *:[f64] } DPR:{ *:[f64] }:$a)) => (VNMULD:{ *:[f64] } DPR:{ *:[f64] }:$a, DPR:{ *:[f64] }:$b)
22385 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VNMULD,
22386 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
22387 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // a
22388 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // b
22389 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
22390 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
22391 : GIR_EraseFromParent, /*InsnID*/0,
22392 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
22393 : // GIR_Coverage, 2793,
22394 : GIR_Done,
22395 : // Label 1163: @56980
22396 : GIM_Try, /*On fail goto*//*Label 1164*/ 57018, // Rule ID 627 //
22397 : GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP2,
22398 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
22399 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
22400 : // (fmul:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm) => (VMULD:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
22401 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMULD,
22402 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
22403 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Dn
22404 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Dm
22405 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
22406 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
22407 : GIR_EraseFromParent, /*InsnID*/0,
22408 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
22409 : // GIR_Coverage, 627,
22410 : GIR_Done,
22411 : // Label 1164: @57018
22412 : GIM_Reject,
22413 : // Label 1161: @57019
22414 : GIM_Reject,
22415 : // Label 1151: @57020
22416 : GIM_Try, /*On fail goto*//*Label 1165*/ 57070, // Rule ID 829 //
22417 : GIM_CheckFeatures, GIFBS_HasNEON,
22418 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
22419 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
22420 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
22421 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
22422 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
22423 : // (fmul:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) => (VMULfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
22424 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMULfd,
22425 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
22426 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
22427 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
22428 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
22429 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
22430 : GIR_EraseFromParent, /*InsnID*/0,
22431 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
22432 : // GIR_Coverage, 829,
22433 : GIR_Done,
22434 : // Label 1165: @57070
22435 : GIM_Reject,
22436 : // Label 1152: @57071
22437 : GIM_Try, /*On fail goto*//*Label 1166*/ 57121, // Rule ID 831 //
22438 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
22439 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
22440 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
22441 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
22442 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
22443 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
22444 : // (fmul:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) => (VMULhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
22445 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMULhd,
22446 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
22447 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
22448 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
22449 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
22450 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
22451 : GIR_EraseFromParent, /*InsnID*/0,
22452 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
22453 : // GIR_Coverage, 831,
22454 : GIR_Done,
22455 : // Label 1166: @57121
22456 : GIM_Reject,
22457 : // Label 1153: @57122
22458 : GIM_Try, /*On fail goto*//*Label 1167*/ 57172, // Rule ID 830 //
22459 : GIM_CheckFeatures, GIFBS_HasNEON,
22460 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
22461 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
22462 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
22463 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
22464 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
22465 : // (fmul:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) => (VMULfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
22466 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMULfq,
22467 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
22468 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
22469 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
22470 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
22471 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
22472 : GIR_EraseFromParent, /*InsnID*/0,
22473 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
22474 : // GIR_Coverage, 830,
22475 : GIR_Done,
22476 : // Label 1167: @57172
22477 : GIM_Reject,
22478 : // Label 1154: @57173
22479 : GIM_Try, /*On fail goto*//*Label 1168*/ 57223, // Rule ID 832 //
22480 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
22481 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
22482 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
22483 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
22484 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
22485 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
22486 : // (fmul:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) => (VMULhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
22487 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMULhq,
22488 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
22489 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
22490 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
22491 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
22492 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
22493 : GIR_EraseFromParent, /*InsnID*/0,
22494 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
22495 : // GIR_Coverage, 832,
22496 : GIR_Done,
22497 : // Label 1168: @57223
22498 : GIM_Reject,
22499 : // Label 1155: @57224
22500 : GIM_Reject,
22501 : // Label 22: @57225
22502 : GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 9, /*)*//*default:*//*Label 1175*/ 58245,
22503 : /*GILLT_s32*//*Label 1169*/ 57239,
22504 : /*GILLT_s64*//*Label 1170*/ 57554,
22505 : /*GILLT_v2s32*//*Label 1171*/ 57869, 0,
22506 : /*GILLT_v4s16*//*Label 1172*/ 57994,
22507 : /*GILLT_v4s32*//*Label 1173*/ 58057, 0,
22508 : /*GILLT_v8s16*//*Label 1174*/ 58182,
22509 : // Label 1169: @57239
22510 : GIM_Try, /*On fail goto*//*Label 1176*/ 57553,
22511 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
22512 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
22513 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
22514 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
22515 : GIM_Try, /*On fail goto*//*Label 1177*/ 57329, // Rule ID 2122 //
22516 : GIM_CheckFeatures, GIFBS_HasVFP4,
22517 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
22518 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
22519 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
22520 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::SPRRegClassID,
22521 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::SPRRegClassID,
22522 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/3, // MIs[2]
22523 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_FNEG,
22524 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
22525 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::SPRRegClassID,
22526 : GIM_CheckIsSafeToFold, /*InsnID*/1,
22527 : GIM_CheckIsSafeToFold, /*InsnID*/2,
22528 : // (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)
22529 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFNMAS,
22530 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
22531 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Sdin
22532 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Sn
22533 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Sm
22534 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
22535 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
22536 : GIR_EraseFromParent, /*InsnID*/0,
22537 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
22538 : // GIR_Coverage, 2122,
22539 : GIR_Done,
22540 : // Label 1177: @57329
22541 : GIM_Try, /*On fail goto*//*Label 1178*/ 57388, // Rule ID 2114 //
22542 : GIM_CheckFeatures, GIFBS_HasVFP4,
22543 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
22544 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
22545 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
22546 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::SPRRegClassID,
22547 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::SPRRegClassID,
22548 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::SPRRegClassID,
22549 : GIM_CheckIsSafeToFold, /*InsnID*/1,
22550 : // (fma:{ *:[f32] } (fneg:{ *:[f32] } SPR:{ *:[f32] }:$Sn), SPR:{ *:[f32] }:$Sm, SPR:{ *:[f32] }:$Sdin) => (VFMSS:{ *:[f32] } SPR:{ *:[f32] }:$Sdin, SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
22551 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFMSS,
22552 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
22553 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Sdin
22554 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Sn
22555 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Sm
22556 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
22557 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
22558 : GIR_EraseFromParent, /*InsnID*/0,
22559 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
22560 : // GIR_Coverage, 2114,
22561 : GIR_Done,
22562 : // Label 1178: @57388
22563 : GIM_Try, /*On fail goto*//*Label 1179*/ 57447, // Rule ID 2116 //
22564 : GIM_CheckFeatures, GIFBS_HasVFP4,
22565 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
22566 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
22567 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
22568 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
22569 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::SPRRegClassID,
22570 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::SPRRegClassID,
22571 : GIM_CheckIsSafeToFold, /*InsnID*/1,
22572 : // (fma:{ *:[f32] } SPR:{ *:[f32] }:$Sn, (fneg:{ *:[f32] } SPR:{ *:[f32] }:$Sm), SPR:{ *:[f32] }:$Sdin) => (VFMSS:{ *:[f32] } SPR:{ *:[f32] }:$Sdin, SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
22573 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFMSS,
22574 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
22575 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Sdin
22576 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sn
22577 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Sm
22578 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
22579 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
22580 : GIR_EraseFromParent, /*InsnID*/0,
22581 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
22582 : // GIR_Coverage, 2116,
22583 : GIR_Done,
22584 : // Label 1179: @57447
22585 : GIM_Try, /*On fail goto*//*Label 1180*/ 57506, // Rule ID 2126 //
22586 : GIM_CheckFeatures, GIFBS_HasVFP4,
22587 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
22588 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::SPRRegClassID,
22589 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
22590 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
22591 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
22592 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::SPRRegClassID,
22593 : GIM_CheckIsSafeToFold, /*InsnID*/1,
22594 : // (fma:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm, (fneg:{ *:[f32] } SPR:{ *:[f32] }:$Sdin)) => (VFNMSS:{ *:[f32] } SPR:{ *:[f32] }:$Sdin, SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
22595 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFNMSS,
22596 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
22597 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Sdin
22598 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sn
22599 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Sm
22600 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
22601 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
22602 : GIR_EraseFromParent, /*InsnID*/0,
22603 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
22604 : // GIR_Coverage, 2126,
22605 : GIR_Done,
22606 : // Label 1180: @57506
22607 : GIM_Try, /*On fail goto*//*Label 1181*/ 57552, // Rule ID 2109 //
22608 : GIM_CheckFeatures, GIFBS_HasVFP4,
22609 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
22610 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::SPRRegClassID,
22611 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::SPRRegClassID,
22612 : // (fma:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm, SPR:{ *:[f32] }:$Sdin) => (VFMAS:{ *:[f32] } SPR:{ *:[f32] }:$Sdin, SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
22613 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFMAS,
22614 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
22615 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Sdin
22616 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sn
22617 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Sm
22618 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
22619 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
22620 : GIR_EraseFromParent, /*InsnID*/0,
22621 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
22622 : // GIR_Coverage, 2109,
22623 : GIR_Done,
22624 : // Label 1181: @57552
22625 : GIM_Reject,
22626 : // Label 1176: @57553
22627 : GIM_Reject,
22628 : // Label 1170: @57554
22629 : GIM_Try, /*On fail goto*//*Label 1182*/ 57868,
22630 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
22631 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
22632 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
22633 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
22634 : GIM_Try, /*On fail goto*//*Label 1183*/ 57644, // Rule ID 2121 //
22635 : GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP4,
22636 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
22637 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
22638 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
22639 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
22640 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
22641 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/3, // MIs[2]
22642 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_FNEG,
22643 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s64,
22644 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
22645 : GIM_CheckIsSafeToFold, /*InsnID*/1,
22646 : GIM_CheckIsSafeToFold, /*InsnID*/2,
22647 : // (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)
22648 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFNMAD,
22649 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
22650 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Ddin
22651 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Dn
22652 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Dm
22653 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
22654 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
22655 : GIR_EraseFromParent, /*InsnID*/0,
22656 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
22657 : // GIR_Coverage, 2121,
22658 : GIR_Done,
22659 : // Label 1183: @57644
22660 : GIM_Try, /*On fail goto*//*Label 1184*/ 57703, // Rule ID 2113 //
22661 : GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP4,
22662 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
22663 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
22664 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
22665 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
22666 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
22667 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
22668 : GIM_CheckIsSafeToFold, /*InsnID*/1,
22669 : // (fma:{ *:[f64] } (fneg:{ *:[f64] } DPR:{ *:[f64] }:$Dn), DPR:{ *:[f64] }:$Dm, DPR:{ *:[f64] }:$Ddin) => (VFMSD:{ *:[f64] } DPR:{ *:[f64] }:$Ddin, DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
22670 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFMSD,
22671 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
22672 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Ddin
22673 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Dn
22674 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Dm
22675 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
22676 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
22677 : GIR_EraseFromParent, /*InsnID*/0,
22678 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
22679 : // GIR_Coverage, 2113,
22680 : GIR_Done,
22681 : // Label 1184: @57703
22682 : GIM_Try, /*On fail goto*//*Label 1185*/ 57762, // Rule ID 2115 //
22683 : GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP4,
22684 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
22685 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
22686 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
22687 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
22688 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
22689 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
22690 : GIM_CheckIsSafeToFold, /*InsnID*/1,
22691 : // (fma:{ *:[f64] } DPR:{ *:[f64] }:$Dn, (fneg:{ *:[f64] } DPR:{ *:[f64] }:$Dm), DPR:{ *:[f64] }:$Ddin) => (VFMSD:{ *:[f64] } DPR:{ *:[f64] }:$Ddin, DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
22692 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFMSD,
22693 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
22694 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Ddin
22695 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Dn
22696 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Dm
22697 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
22698 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
22699 : GIR_EraseFromParent, /*InsnID*/0,
22700 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
22701 : // GIR_Coverage, 2115,
22702 : GIR_Done,
22703 : // Label 1185: @57762
22704 : GIM_Try, /*On fail goto*//*Label 1186*/ 57821, // Rule ID 2125 //
22705 : GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP4,
22706 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
22707 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
22708 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
22709 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
22710 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
22711 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
22712 : GIM_CheckIsSafeToFold, /*InsnID*/1,
22713 : // (fma:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm, (fneg:{ *:[f64] } DPR:{ *:[f64] }:$Ddin)) => (VFNMSD:{ *:[f64] } DPR:{ *:[f64] }:$Ddin, DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
22714 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFNMSD,
22715 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
22716 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Ddin
22717 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Dn
22718 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Dm
22719 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
22720 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
22721 : GIR_EraseFromParent, /*InsnID*/0,
22722 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
22723 : // GIR_Coverage, 2125,
22724 : GIR_Done,
22725 : // Label 1186: @57821
22726 : GIM_Try, /*On fail goto*//*Label 1187*/ 57867, // Rule ID 2108 //
22727 : GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP4,
22728 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
22729 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
22730 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
22731 : // (fma:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm, DPR:{ *:[f64] }:$Ddin) => (VFMAD:{ *:[f64] } DPR:{ *:[f64] }:$Ddin, DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
22732 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFMAD,
22733 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
22734 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Ddin
22735 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Dn
22736 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Dm
22737 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
22738 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
22739 : GIR_EraseFromParent, /*InsnID*/0,
22740 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
22741 : // GIR_Coverage, 2108,
22742 : GIR_Done,
22743 : // Label 1187: @57867
22744 : GIM_Reject,
22745 : // Label 1182: @57868
22746 : GIM_Reject,
22747 : // Label 1171: @57869
22748 : GIM_Try, /*On fail goto*//*Label 1188*/ 57993,
22749 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
22750 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
22751 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
22752 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
22753 : GIM_Try, /*On fail goto*//*Label 1189*/ 57946, // Rule ID 2206 //
22754 : GIM_CheckFeatures, GIFBS_HasVFP4,
22755 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
22756 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
22757 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
22758 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
22759 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
22760 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
22761 : GIM_CheckIsSafeToFold, /*InsnID*/1,
22762 : // (fma:{ *:[v2f32] } (fneg:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn), DPR:{ *:[v2f32] }:$Vm, DPR:{ *:[v2f32] }:$src1) => (VFMSfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$src1, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
22763 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFMSfd,
22764 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
22765 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src1
22766 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
22767 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
22768 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
22769 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
22770 : GIR_EraseFromParent, /*InsnID*/0,
22771 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
22772 : // GIR_Coverage, 2206,
22773 : GIR_Done,
22774 : // Label 1189: @57946
22775 : GIM_Try, /*On fail goto*//*Label 1190*/ 57992, // Rule ID 2204 //
22776 : GIM_CheckFeatures, GIFBS_HasVFP4,
22777 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
22778 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
22779 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
22780 : // (fma:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm, DPR:{ *:[v2f32] }:$src1) => (VFMAfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$src1, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
22781 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFMAfd,
22782 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
22783 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src1
22784 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
22785 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
22786 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
22787 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
22788 : GIR_EraseFromParent, /*InsnID*/0,
22789 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
22790 : // GIR_Coverage, 2204,
22791 : GIR_Done,
22792 : // Label 1190: @57992
22793 : GIM_Reject,
22794 : // Label 1188: @57993
22795 : GIM_Reject,
22796 : // Label 1172: @57994
22797 : GIM_Try, /*On fail goto*//*Label 1191*/ 58056, // Rule ID 2202 //
22798 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
22799 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
22800 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
22801 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
22802 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
22803 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
22804 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
22805 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
22806 : // (fma:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm, DPR:{ *:[v4f16] }:$src1) => (VFMAhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
22807 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFMAhd,
22808 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
22809 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src1
22810 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
22811 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
22812 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
22813 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
22814 : GIR_EraseFromParent, /*InsnID*/0,
22815 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
22816 : // GIR_Coverage, 2202,
22817 : GIR_Done,
22818 : // Label 1191: @58056
22819 : GIM_Reject,
22820 : // Label 1173: @58057
22821 : GIM_Try, /*On fail goto*//*Label 1192*/ 58181,
22822 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
22823 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
22824 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
22825 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
22826 : GIM_Try, /*On fail goto*//*Label 1193*/ 58134, // Rule ID 2207 //
22827 : GIM_CheckFeatures, GIFBS_HasVFP4,
22828 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
22829 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
22830 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s32,
22831 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::QPRRegClassID,
22832 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
22833 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
22834 : GIM_CheckIsSafeToFold, /*InsnID*/1,
22835 : // (fma:{ *:[v4f32] } (fneg:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn), QPR:{ *:[v4f32] }:$Vm, QPR:{ *:[v4f32] }:$src1) => (VFMSfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
22836 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFMSfq,
22837 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
22838 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src1
22839 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
22840 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
22841 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
22842 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
22843 : GIR_EraseFromParent, /*InsnID*/0,
22844 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
22845 : // GIR_Coverage, 2207,
22846 : GIR_Done,
22847 : // Label 1193: @58134
22848 : GIM_Try, /*On fail goto*//*Label 1194*/ 58180, // Rule ID 2205 //
22849 : GIM_CheckFeatures, GIFBS_HasVFP4,
22850 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
22851 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
22852 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
22853 : // (fma:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm, QPR:{ *:[v4f32] }:$src1) => (VFMAfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
22854 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFMAfq,
22855 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
22856 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src1
22857 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
22858 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
22859 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
22860 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
22861 : GIR_EraseFromParent, /*InsnID*/0,
22862 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
22863 : // GIR_Coverage, 2205,
22864 : GIR_Done,
22865 : // Label 1194: @58180
22866 : GIM_Reject,
22867 : // Label 1192: @58181
22868 : GIM_Reject,
22869 : // Label 1174: @58182
22870 : GIM_Try, /*On fail goto*//*Label 1195*/ 58244, // Rule ID 2203 //
22871 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
22872 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
22873 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
22874 : GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
22875 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
22876 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
22877 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
22878 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
22879 : // (fma:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm, QPR:{ *:[v8f16] }:$src1) => (VFMAhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
22880 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFMAhq,
22881 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
22882 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src1
22883 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
22884 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
22885 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
22886 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
22887 : GIR_EraseFromParent, /*InsnID*/0,
22888 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
22889 : // GIR_Coverage, 2203,
22890 : GIR_Done,
22891 : // Label 1195: @58244
22892 : GIM_Reject,
22893 : // Label 1175: @58245
22894 : GIM_Reject,
22895 : // Label 23: @58246
22896 : GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 3, /*)*//*default:*//*Label 1199*/ 58408,
22897 : /*GILLT_s16*//*Label 1196*/ 58255,
22898 : /*GILLT_s32*//*Label 1197*/ 58306,
22899 : /*GILLT_s64*//*Label 1198*/ 58357,
22900 : // Label 1196: @58255
22901 : GIM_Try, /*On fail goto*//*Label 1200*/ 58305, // Rule ID 626 //
22902 : GIM_CheckFeatures, GIFBS_HasFullFP16,
22903 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
22904 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s16,
22905 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::HPRRegClassID,
22906 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::HPRRegClassID,
22907 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::HPRRegClassID,
22908 : // (fdiv:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm) => (VDIVH:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
22909 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VDIVH,
22910 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
22911 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sn
22912 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Sm
22913 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
22914 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
22915 : GIR_EraseFromParent, /*InsnID*/0,
22916 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
22917 : // GIR_Coverage, 626,
22918 : GIR_Done,
22919 : // Label 1200: @58305
22920 : GIM_Reject,
22921 : // Label 1197: @58306
22922 : GIM_Try, /*On fail goto*//*Label 1201*/ 58356, // Rule ID 625 //
22923 : GIM_CheckFeatures, GIFBS_HasVFP2,
22924 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
22925 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
22926 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
22927 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
22928 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::SPRRegClassID,
22929 : // (fdiv:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm) => (VDIVS:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
22930 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VDIVS,
22931 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
22932 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sn
22933 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Sm
22934 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
22935 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
22936 : GIR_EraseFromParent, /*InsnID*/0,
22937 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
22938 : // GIR_Coverage, 625,
22939 : GIR_Done,
22940 : // Label 1201: @58356
22941 : GIM_Reject,
22942 : // Label 1198: @58357
22943 : GIM_Try, /*On fail goto*//*Label 1202*/ 58407, // Rule ID 624 //
22944 : GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP2,
22945 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
22946 : GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
22947 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
22948 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
22949 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
22950 : // (fdiv:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm) => (VDIVD:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
22951 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VDIVD,
22952 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
22953 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Dn
22954 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Dm
22955 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
22956 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
22957 : GIR_EraseFromParent, /*InsnID*/0,
22958 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
22959 : // GIR_Coverage, 624,
22960 : GIR_Done,
22961 : // Label 1202: @58407
22962 : GIM_Reject,
22963 : // Label 1199: @58408
22964 : GIM_Reject,
22965 : // Label 24: @58409
22966 : GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 9, /*)*//*default:*//*Label 1210*/ 59325,
22967 : /*GILLT_s16*//*Label 1203*/ 58424,
22968 : /*GILLT_s32*//*Label 1204*/ 58521,
22969 : /*GILLT_s64*//*Label 1205*/ 58845,
22970 : /*GILLT_v2s32*//*Label 1206*/ 59169, 0,
22971 : /*GILLT_v4s16*//*Label 1207*/ 59208,
22972 : /*GILLT_v4s32*//*Label 1208*/ 59247, 0,
22973 : /*GILLT_v8s16*//*Label 1209*/ 59286,
22974 : // Label 1203: @58424
22975 : GIM_Try, /*On fail goto*//*Label 1211*/ 58520,
22976 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
22977 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::HPRRegClassID,
22978 : GIM_Try, /*On fail goto*//*Label 1212*/ 58489, // Rule ID 632 //
22979 : GIM_CheckFeatures, GIFBS_HasFullFP16,
22980 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
22981 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMUL,
22982 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s16,
22983 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s16,
22984 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::HPRRegClassID,
22985 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::HPRRegClassID,
22986 : GIM_CheckIsSafeToFold, /*InsnID*/1,
22987 : // (fneg:{ *:[f16] } (fmul:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)) => (VNMULH:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
22988 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VNMULH,
22989 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
22990 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Sn
22991 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Sm
22992 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
22993 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
22994 : GIR_EraseFromParent, /*InsnID*/0,
22995 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
22996 : // GIR_Coverage, 632,
22997 : GIR_Done,
22998 : // Label 1212: @58489
22999 : GIM_Try, /*On fail goto*//*Label 1213*/ 58519, // Rule ID 669 //
23000 : GIM_CheckFeatures, GIFBS_HasFullFP16,
23001 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::HPRRegClassID,
23002 : // (fneg:{ *:[f16] } HPR:{ *:[f16] }:$Sm) => (VNEGH:{ *:[f16] } HPR:{ *:[f16] }:$Sm)
23003 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VNEGH,
23004 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
23005 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sm
23006 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
23007 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
23008 : GIR_EraseFromParent, /*InsnID*/0,
23009 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
23010 : // GIR_Coverage, 669,
23011 : GIR_Done,
23012 : // Label 1213: @58519
23013 : GIM_Reject,
23014 : // Label 1211: @58520
23015 : GIM_Reject,
23016 : // Label 1204: @58521
23017 : GIM_Try, /*On fail goto*//*Label 1214*/ 58844,
23018 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
23019 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
23020 : GIM_Try, /*On fail goto*//*Label 1215*/ 58611, // Rule ID 2128 //
23021 : GIM_CheckFeatures, GIFBS_HasVFP4,
23022 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
23023 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMA,
23024 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
23025 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
23026 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_s32,
23027 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
23028 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_FNEG,
23029 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
23030 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::SPRRegClassID,
23031 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::SPRRegClassID,
23032 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::SPRRegClassID,
23033 : GIM_CheckIsSafeToFold, /*InsnID*/1,
23034 : GIM_CheckIsSafeToFold, /*InsnID*/2,
23035 : // (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)
23036 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFNMSS,
23037 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
23038 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Sdin
23039 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Sn
23040 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Sm
23041 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
23042 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
23043 : GIR_EraseFromParent, /*InsnID*/0,
23044 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
23045 : // GIR_Coverage, 2128,
23046 : GIR_Done,
23047 : // Label 1215: @58611
23048 : GIM_Try, /*On fail goto*//*Label 1216*/ 58691, // Rule ID 2130 //
23049 : GIM_CheckFeatures, GIFBS_HasVFP4,
23050 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
23051 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMA,
23052 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
23053 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
23054 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_s32,
23055 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::SPRRegClassID,
23056 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
23057 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_FNEG,
23058 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
23059 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::SPRRegClassID,
23060 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::SPRRegClassID,
23061 : GIM_CheckIsSafeToFold, /*InsnID*/1,
23062 : GIM_CheckIsSafeToFold, /*InsnID*/2,
23063 : // (fneg:{ *:[f32] } (fma:{ *:[f32] } SPR:{ *:[f32] }:$Sn, (fneg:{ *:[f32] } SPR:{ *:[f32] }:$Sm), SPR:{ *:[f32] }:$Sdin)) => (VFNMSS:{ *:[f32] } SPR:{ *:[f32] }:$Sdin, SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
23064 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFNMSS,
23065 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
23066 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Sdin
23067 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Sn
23068 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Sm
23069 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
23070 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
23071 : GIR_EraseFromParent, /*InsnID*/0,
23072 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
23073 : // GIR_Coverage, 2130,
23074 : GIR_Done,
23075 : // Label 1216: @58691
23076 : GIM_Try, /*On fail goto*//*Label 1217*/ 58758, // Rule ID 2120 //
23077 : GIM_CheckFeatures, GIFBS_HasVFP4,
23078 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
23079 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMA,
23080 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
23081 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
23082 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_s32,
23083 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::SPRRegClassID,
23084 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::SPRRegClassID,
23085 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::SPRRegClassID,
23086 : GIM_CheckIsSafeToFold, /*InsnID*/1,
23087 : // (fneg:{ *:[f32] } (fma:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm, SPR:{ *:[f32] }:$Sdin)) => (VFNMAS:{ *:[f32] } SPR:{ *:[f32] }:$Sdin, SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
23088 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFNMAS,
23089 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
23090 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Sdin
23091 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Sn
23092 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Sm
23093 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
23094 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
23095 : GIR_EraseFromParent, /*InsnID*/0,
23096 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
23097 : // GIR_Coverage, 2120,
23098 : GIR_Done,
23099 : // Label 1217: @58758
23100 : GIM_Try, /*On fail goto*//*Label 1218*/ 58813, // Rule ID 631 //
23101 : GIM_CheckFeatures, GIFBS_HasVFP2,
23102 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
23103 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMUL,
23104 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
23105 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
23106 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::SPRRegClassID,
23107 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::SPRRegClassID,
23108 : GIM_CheckIsSafeToFold, /*InsnID*/1,
23109 : // (fneg:{ *:[f32] } (fmul:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)) => (VNMULS:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
23110 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VNMULS,
23111 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
23112 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Sn
23113 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Sm
23114 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
23115 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
23116 : GIR_EraseFromParent, /*InsnID*/0,
23117 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
23118 : // GIR_Coverage, 631,
23119 : GIR_Done,
23120 : // Label 1218: @58813
23121 : GIM_Try, /*On fail goto*//*Label 1219*/ 58843, // Rule ID 668 //
23122 : GIM_CheckFeatures, GIFBS_DontUseNEONForFP_HasVFP2,
23123 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
23124 : // (fneg:{ *:[f32] } SPR:{ *:[f32] }:$Sm) => (VNEGS:{ *:[f32] } SPR:{ *:[f32] }:$Sm)
23125 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VNEGS,
23126 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
23127 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sm
23128 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
23129 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
23130 : GIR_EraseFromParent, /*InsnID*/0,
23131 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
23132 : // GIR_Coverage, 668,
23133 : GIR_Done,
23134 : // Label 1219: @58843
23135 : GIM_Reject,
23136 : // Label 1214: @58844
23137 : GIM_Reject,
23138 : // Label 1205: @58845
23139 : GIM_Try, /*On fail goto*//*Label 1220*/ 59168,
23140 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
23141 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
23142 : GIM_Try, /*On fail goto*//*Label 1221*/ 58935, // Rule ID 2127 //
23143 : GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP4,
23144 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
23145 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMA,
23146 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
23147 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
23148 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_s64,
23149 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
23150 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_FNEG,
23151 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s64,
23152 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
23153 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
23154 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
23155 : GIM_CheckIsSafeToFold, /*InsnID*/1,
23156 : GIM_CheckIsSafeToFold, /*InsnID*/2,
23157 : // (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)
23158 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFNMSD,
23159 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
23160 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Ddin
23161 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Dn
23162 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Dm
23163 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
23164 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
23165 : GIR_EraseFromParent, /*InsnID*/0,
23166 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
23167 : // GIR_Coverage, 2127,
23168 : GIR_Done,
23169 : // Label 1221: @58935
23170 : GIM_Try, /*On fail goto*//*Label 1222*/ 59015, // Rule ID 2129 //
23171 : GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP4,
23172 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
23173 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMA,
23174 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
23175 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
23176 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_s64,
23177 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
23178 : GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
23179 : GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_FNEG,
23180 : GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s64,
23181 : GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
23182 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
23183 : GIM_CheckIsSafeToFold, /*InsnID*/1,
23184 : GIM_CheckIsSafeToFold, /*InsnID*/2,
23185 : // (fneg:{ *:[f64] } (fma:{ *:[f64] } DPR:{ *:[f64] }:$Dn, (fneg:{ *:[f64] } DPR:{ *:[f64] }:$Dm), DPR:{ *:[f64] }:$Ddin)) => (VFNMSD:{ *:[f64] } DPR:{ *:[f64] }:$Ddin, DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
23186 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFNMSD,
23187 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
23188 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Ddin
23189 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Dn
23190 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Dm
23191 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
23192 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
23193 : GIR_EraseFromParent, /*InsnID*/0,
23194 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
23195 : // GIR_Coverage, 2129,
23196 : GIR_Done,
23197 : // Label 1222: @59015
23198 : GIM_Try, /*On fail goto*//*Label 1223*/ 59082, // Rule ID 2119 //
23199 : GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP4,
23200 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
23201 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMA,
23202 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
23203 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
23204 : GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_s64,
23205 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
23206 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
23207 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
23208 : GIM_CheckIsSafeToFold, /*InsnID*/1,
23209 : // (fneg:{ *:[f64] } (fma:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm, DPR:{ *:[f64] }:$Ddin)) => (VFNMAD:{ *:[f64] } DPR:{ *:[f64] }:$Ddin, DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
23210 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFNMAD,
23211 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
23212 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Ddin
23213 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Dn
23214 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Dm
23215 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
23216 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
23217 : GIR_EraseFromParent, /*InsnID*/0,
23218 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
23219 : // GIR_Coverage, 2119,
23220 : GIR_Done,
23221 : // Label 1223: @59082
23222 : GIM_Try, /*On fail goto*//*Label 1224*/ 59137, // Rule ID 630 //
23223 : GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP2,
23224 : GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
23225 : GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMUL,
23226 : GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
23227 : GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
23228 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
23229 : GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
23230 : GIM_CheckIsSafeToFold, /*InsnID*/1,
23231 : // (fneg:{ *:[f64] } (fmul:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)) => (VNMULD:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
23232 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VNMULD,
23233 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
23234 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Dn
23235 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Dm
23236 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
23237 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
23238 : GIR_EraseFromParent, /*InsnID*/0,
23239 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
23240 : // GIR_Coverage, 630,
23241 : GIR_Done,
23242 : // Label 1224: @59137
23243 : GIM_Try, /*On fail goto*//*Label 1225*/ 59167, // Rule ID 667 //
23244 : GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP2,
23245 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
23246 : // (fneg:{ *:[f64] } DPR:{ *:[f64] }:$Dm) => (VNEGD:{ *:[f64] } DPR:{ *:[f64] }:$Dm)
23247 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VNEGD,
23248 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
23249 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Dm
23250 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
23251 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
23252 : GIR_EraseFromParent, /*InsnID*/0,
23253 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
23254 : // GIR_Coverage, 667,
23255 : GIR_Done,
23256 : // Label 1225: @59167
23257 : GIM_Reject,
23258 : // Label 1220: @59168
23259 : GIM_Reject,
23260 : // Label 1206: @59169
23261 : GIM_Try, /*On fail goto*//*Label 1226*/ 59207, // Rule ID 1501 //
23262 : GIM_CheckFeatures, GIFBS_HasNEON,
23263 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
23264 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
23265 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
23266 : // (fneg:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm) => (VNEGfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
23267 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VNEGfd,
23268 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
23269 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
23270 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
23271 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
23272 : GIR_EraseFromParent, /*InsnID*/0,
23273 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
23274 : // GIR_Coverage, 1501,
23275 : GIR_Done,
23276 : // Label 1226: @59207
23277 : GIM_Reject,
23278 : // Label 1207: @59208
23279 : GIM_Try, /*On fail goto*//*Label 1227*/ 59246, // Rule ID 1503 //
23280 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
23281 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
23282 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
23283 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
23284 : // (fneg:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm) => (VNEGhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
23285 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VNEGhd,
23286 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
23287 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
23288 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
23289 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
23290 : GIR_EraseFromParent, /*InsnID*/0,
23291 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
23292 : // GIR_Coverage, 1503,
23293 : GIR_Done,
23294 : // Label 1227: @59246
23295 : GIM_Reject,
23296 : // Label 1208: @59247
23297 : GIM_Try, /*On fail goto*//*Label 1228*/ 59285, // Rule ID 1502 //
23298 : GIM_CheckFeatures, GIFBS_HasNEON,
23299 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
23300 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
23301 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
23302 : // (fneg:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm) => (VNEGf32q:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
23303 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VNEGf32q,
23304 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
23305 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
23306 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
23307 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
23308 : GIR_EraseFromParent, /*InsnID*/0,
23309 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
23310 : // GIR_Coverage, 1502,
23311 : GIR_Done,
23312 : // Label 1228: @59285
23313 : GIM_Reject,
23314 : // Label 1209: @59286
23315 : GIM_Try, /*On fail goto*//*Label 1229*/ 59324, // Rule ID 1504 //
23316 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
23317 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
23318 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
23319 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
23320 : // (fneg:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm) => (VNEGhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
23321 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VNEGhq,
23322 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
23323 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
23324 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
23325 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
23326 : GIR_EraseFromParent, /*InsnID*/0,
23327 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
23328 : // GIR_Coverage, 1504,
23329 : GIR_Done,
23330 : // Label 1229: @59324
23331 : GIM_Reject,
23332 : // Label 1210: @59325
23333 : GIM_Reject,
23334 : // Label 25: @59326
23335 : GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 3, /*)*//*default:*//*Label 1232*/ 59482,
23336 : /*GILLT_s32*//*Label 1230*/ 59334,
23337 : /*GILLT_s64*//*Label 1231*/ 59389,
23338 : // Label 1230: @59334
23339 : GIM_Try, /*On fail goto*//*Label 1233*/ 59388, // Rule ID 2039 //
23340 : GIM_CheckFeatures, GIFBS_HasFullFP16,
23341 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
23342 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
23343 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::HPRRegClassID,
23344 : // (fpextend:{ *:[f32] } HPR:{ *:[f16] }:$Sm) => (VCVTBHS:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[f32] } HPR:{ *:[f16] }:$Sm, SPR:{ *:[i32] }))
23345 : GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
23346 : GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::COPY,
23347 : GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
23348 : GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // Sm
23349 : GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
23350 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTBHS,
23351 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
23352 : GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
23353 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
23354 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
23355 : GIR_EraseFromParent, /*InsnID*/0,
23356 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
23357 : // GIR_Coverage, 2039,
23358 : GIR_Done,
23359 : // Label 1233: @59388
23360 : GIM_Reject,
23361 : // Label 1231: @59389
23362 : GIM_Try, /*On fail goto*//*Label 1234*/ 59427, // Rule ID 665 //
23363 : GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP2,
23364 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
23365 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
23366 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
23367 : // (fpextend:{ *:[f64] } SPR:{ *:[f32] }:$Sm) => (VCVTDS:{ *:[f64] } SPR:{ *:[f32] }:$Sm)
23368 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTDS,
23369 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
23370 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sm
23371 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
23372 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
23373 : GIR_EraseFromParent, /*InsnID*/0,
23374 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
23375 : // GIR_Coverage, 665,
23376 : GIR_Done,
23377 : // Label 1234: @59427
23378 : GIM_Try, /*On fail goto*//*Label 1235*/ 59481, // Rule ID 2043 //
23379 : GIM_CheckFeatures, GIFBS_HasDPVFP_HasFPARMv8,
23380 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
23381 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
23382 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::HPRRegClassID,
23383 : // (fpextend:{ *:[f64] } HPR:{ *:[f16] }:$Sm) => (VCVTBHD:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f32] } HPR:{ *:[f16] }:$Sm, SPR:{ *:[i32] }))
23384 : GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
23385 : GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::COPY,
23386 : GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
23387 : GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // Sm
23388 : GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
23389 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTBHD,
23390 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
23391 : GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
23392 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
23393 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
23394 : GIR_EraseFromParent, /*InsnID*/0,
23395 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
23396 : // GIR_Coverage, 2043,
23397 : GIR_Done,
23398 : // Label 1235: @59481
23399 : GIM_Reject,
23400 : // Label 1232: @59482
23401 : GIM_Reject,
23402 : // Label 26: @59483
23403 : GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 2, /*)*//*default:*//*Label 1238*/ 59643,
23404 : /*GILLT_s16*//*Label 1236*/ 59491,
23405 : /*GILLT_s32*//*Label 1237*/ 59604,
23406 : // Label 1236: @59491
23407 : GIM_Try, /*On fail goto*//*Label 1239*/ 59547, // Rule ID 2041 //
23408 : GIM_CheckFeatures, GIFBS_HasFullFP16,
23409 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
23410 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::HPRRegClassID,
23411 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
23412 : // (fpround:{ *:[f16] } SPR:{ *:[f32] }:$Sm) => (COPY_TO_REGCLASS:{ *:[f16] } (VCVTBSH:{ *:[f32] } SPR:{ *:[f32] }:$Sm), HPR:{ *:[i32] })
23413 : GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
23414 : GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::VCVTBSH,
23415 : GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
23416 : GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // Sm
23417 : GIR_AddImm, /*InsnID*/1, /*Imm*/14,
23418 : GIR_AddRegister, /*InsnID*/1, ::zero_reg,
23419 : GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
23420 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
23421 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
23422 : GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
23423 : GIR_EraseFromParent, /*InsnID*/0,
23424 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC HPR*/0,
23425 : // GIR_Coverage, 2041,
23426 : GIR_Done,
23427 : // Label 1239: @59547
23428 : GIM_Try, /*On fail goto*//*Label 1240*/ 59603, // Rule ID 2045 //
23429 : GIM_CheckFeatures, GIFBS_HasDPVFP_HasFPARMv8,
23430 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
23431 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::HPRRegClassID,
23432 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
23433 : // (fpround:{ *:[f16] } DPR:{ *:[f64] }:$Dm) => (COPY_TO_REGCLASS:{ *:[f16] } (VCVTBDH:{ *:[f32] } DPR:{ *:[f64] }:$Dm), HPR:{ *:[i32] })
23434 : GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
23435 : GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::VCVTBDH,
23436 : GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
23437 : GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // Dm
23438 : GIR_AddImm, /*InsnID*/1, /*Imm*/14,
23439 : GIR_AddRegister, /*InsnID*/1, ::zero_reg,
23440 : GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
23441 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
23442 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
23443 : GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
23444 : GIR_EraseFromParent, /*InsnID*/0,
23445 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC HPR*/0,
23446 : // GIR_Coverage, 2045,
23447 : GIR_Done,
23448 : // Label 1240: @59603
23449 : GIM_Reject,
23450 : // Label 1237: @59604
23451 : GIM_Try, /*On fail goto*//*Label 1241*/ 59642, // Rule ID 666 //
23452 : GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP2,
23453 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
23454 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
23455 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
23456 : // (fpround:{ *:[f32] } DPR:{ *:[f64] }:$Dm) => (VCVTSD:{ *:[f32] } DPR:{ *:[f64] }:$Dm)
23457 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTSD,
23458 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
23459 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Dm
23460 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
23461 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
23462 : GIR_EraseFromParent, /*InsnID*/0,
23463 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
23464 : // GIR_Coverage, 666,
23465 : GIR_Done,
23466 : // Label 1241: @59642
23467 : GIM_Reject,
23468 : // Label 1238: @59643
23469 : GIM_Reject,
23470 : // Label 27: @59644
23471 : GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 9, /*)*//*default:*//*Label 1247*/ 59983,
23472 : /*GILLT_s32*//*Label 1242*/ 59658, 0,
23473 : /*GILLT_v2s32*//*Label 1243*/ 59827, 0,
23474 : /*GILLT_v4s16*//*Label 1244*/ 59866,
23475 : /*GILLT_v4s32*//*Label 1245*/ 59905, 0,
23476 : /*GILLT_v8s16*//*Label 1246*/ 59944,
23477 : // Label 1242: @59658
23478 : GIM_Try, /*On fail goto*//*Label 1248*/ 59714, // Rule ID 2080 //
23479 : GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP2,
23480 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
23481 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
23482 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
23483 : // (fp_to_sint:{ *:[i32] } DPR:{ *:[f64] }:$a) => (COPY_TO_REGCLASS:{ *:[i32] } (VTOSIZD:{ *:[f32] } DPR:{ *:[f64] }:$a), GPR:{ *:[i32] })
23484 : GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
23485 : GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::VTOSIZD,
23486 : GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
23487 : GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // a
23488 : GIR_AddImm, /*InsnID*/1, /*Imm*/14,
23489 : GIR_AddRegister, /*InsnID*/1, ::zero_reg,
23490 : GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
23491 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
23492 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
23493 : GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
23494 : GIR_EraseFromParent, /*InsnID*/0,
23495 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC GPR*/2,
23496 : // GIR_Coverage, 2080,
23497 : GIR_Done,
23498 : // Label 1248: @59714
23499 : GIM_Try, /*On fail goto*//*Label 1249*/ 59770, // Rule ID 2082 //
23500 : GIM_CheckFeatures, GIFBS_DontUseNEONForFP_HasVFP2,
23501 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
23502 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
23503 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
23504 : // (fp_to_sint:{ *:[i32] } SPR:{ *:[f32] }:$a) => (COPY_TO_REGCLASS:{ *:[i32] } (VTOSIZS:{ *:[f32] } SPR:{ *:[f32] }:$a), GPR:{ *:[i32] })
23505 : GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
23506 : GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::VTOSIZS,
23507 : GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
23508 : GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // a
23509 : GIR_AddImm, /*InsnID*/1, /*Imm*/14,
23510 : GIR_AddRegister, /*InsnID*/1, ::zero_reg,
23511 : GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
23512 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
23513 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
23514 : GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
23515 : GIR_EraseFromParent, /*InsnID*/0,
23516 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC GPR*/2,
23517 : // GIR_Coverage, 2082,
23518 : GIR_Done,
23519 : // Label 1249: @59770
23520 : GIM_Try, /*On fail goto*//*Label 1250*/ 59826, // Rule ID 2084 //
23521 : GIM_CheckFeatures, GIFBS_DontUseNEONForFP_HasVFP2,
23522 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
23523 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
23524 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::HPRRegClassID,
23525 : // (fp_to_sint:{ *:[i32] } HPR:{ *:[f16] }:$a) => (COPY_TO_REGCLASS:{ *:[i32] } (VTOSIZH:{ *:[f32] } HPR:{ *:[f16] }:$a), GPR:{ *:[i32] })
23526 : GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
23527 : GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::VTOSIZH,
23528 : GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
23529 : GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // a
23530 : GIR_AddImm, /*InsnID*/1, /*Imm*/14,
23531 : GIR_AddRegister, /*InsnID*/1, ::zero_reg,
23532 : GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
23533 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
23534 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
23535 : GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
23536 : GIR_EraseFromParent, /*InsnID*/0,
23537 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC GPR*/2,
23538 : // GIR_Coverage, 2084,
23539 : GIR_Done,
23540 : // Label 1250: @59826
23541 : GIM_Reject,
23542 : // Label 1243: @59827
23543 : GIM_Try, /*On fail goto*//*Label 1251*/ 59865, // Rule ID 1575 //
23544 : GIM_CheckFeatures, GIFBS_HasNEON,
23545 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
23546 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
23547 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
23548 : // (fp_to_sint:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm) => (VCVTf2sd:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
23549 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTf2sd,
23550 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
23551 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
23552 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
23553 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
23554 : GIR_EraseFromParent, /*InsnID*/0,
23555 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
23556 : // GIR_Coverage, 1575,
23557 : GIR_Done,
23558 : // Label 1251: @59865
23559 : GIM_Reject,
23560 : // Label 1244: @59866
23561 : GIM_Try, /*On fail goto*//*Label 1252*/ 59904, // Rule ID 1583 //
23562 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
23563 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
23564 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
23565 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
23566 : // (fp_to_sint:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm) => (VCVTh2sd:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
23567 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTh2sd,
23568 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
23569 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
23570 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
23571 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
23572 : GIR_EraseFromParent, /*InsnID*/0,
23573 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
23574 : // GIR_Coverage, 1583,
23575 : GIR_Done,
23576 : // Label 1252: @59904
23577 : GIM_Reject,
23578 : // Label 1245: @59905
23579 : GIM_Try, /*On fail goto*//*Label 1253*/ 59943, // Rule ID 1579 //
23580 : GIM_CheckFeatures, GIFBS_HasNEON,
23581 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
23582 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
23583 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
23584 : // (fp_to_sint:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm) => (VCVTf2sq:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
23585 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTf2sq,
23586 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
23587 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
23588 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
23589 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
23590 : GIR_EraseFromParent, /*InsnID*/0,
23591 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
23592 : // GIR_Coverage, 1579,
23593 : GIR_Done,
23594 : // Label 1253: @59943
23595 : GIM_Reject,
23596 : // Label 1246: @59944
23597 : GIM_Try, /*On fail goto*//*Label 1254*/ 59982, // Rule ID 1587 //
23598 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
23599 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
23600 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
23601 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
23602 : // (fp_to_sint:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm) => (VCVTh2sq:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
23603 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTh2sq,
23604 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
23605 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
23606 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
23607 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
23608 : GIR_EraseFromParent, /*InsnID*/0,
23609 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
23610 : // GIR_Coverage, 1587,
23611 : GIR_Done,
23612 : // Label 1254: @59982
23613 : GIM_Reject,
23614 : // Label 1247: @59983
23615 : GIM_Reject,
23616 : // Label 28: @59984
23617 : GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 9, /*)*//*default:*//*Label 1260*/ 60323,
23618 : /*GILLT_s32*//*Label 1255*/ 59998, 0,
23619 : /*GILLT_v2s32*//*Label 1256*/ 60167, 0,
23620 : /*GILLT_v4s16*//*Label 1257*/ 60206,
23621 : /*GILLT_v4s32*//*Label 1258*/ 60245, 0,
23622 : /*GILLT_v8s16*//*Label 1259*/ 60284,
23623 : // Label 1255: @59998
23624 : GIM_Try, /*On fail goto*//*Label 1261*/ 60054, // Rule ID 2085 //
23625 : GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP2,
23626 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
23627 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
23628 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
23629 : // (fp_to_uint:{ *:[i32] } DPR:{ *:[f64] }:$a) => (COPY_TO_REGCLASS:{ *:[i32] } (VTOUIZD:{ *:[f32] } DPR:{ *:[f64] }:$a), GPR:{ *:[i32] })
23630 : GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
23631 : GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::VTOUIZD,
23632 : GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
23633 : GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // a
23634 : GIR_AddImm, /*InsnID*/1, /*Imm*/14,
23635 : GIR_AddRegister, /*InsnID*/1, ::zero_reg,
23636 : GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
23637 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
23638 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
23639 : GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
23640 : GIR_EraseFromParent, /*InsnID*/0,
23641 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC GPR*/2,
23642 : // GIR_Coverage, 2085,
23643 : GIR_Done,
23644 : // Label 1261: @60054
23645 : GIM_Try, /*On fail goto*//*Label 1262*/ 60110, // Rule ID 2087 //
23646 : GIM_CheckFeatures, GIFBS_DontUseNEONForFP_HasVFP2,
23647 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
23648 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
23649 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
23650 : // (fp_to_uint:{ *:[i32] } SPR:{ *:[f32] }:$a) => (COPY_TO_REGCLASS:{ *:[i32] } (VTOUIZS:{ *:[f32] } SPR:{ *:[f32] }:$a), GPR:{ *:[i32] })
23651 : GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
23652 : GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::VTOUIZS,
23653 : GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
23654 : GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // a
23655 : GIR_AddImm, /*InsnID*/1, /*Imm*/14,
23656 : GIR_AddRegister, /*InsnID*/1, ::zero_reg,
23657 : GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
23658 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
23659 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
23660 : GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
23661 : GIR_EraseFromParent, /*InsnID*/0,
23662 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC GPR*/2,
23663 : // GIR_Coverage, 2087,
23664 : GIR_Done,
23665 : // Label 1262: @60110
23666 : GIM_Try, /*On fail goto*//*Label 1263*/ 60166, // Rule ID 2089 //
23667 : GIM_CheckFeatures, GIFBS_DontUseNEONForFP_HasVFP2,
23668 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
23669 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
23670 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::HPRRegClassID,
23671 : // (fp_to_uint:{ *:[i32] } HPR:{ *:[f16] }:$a) => (COPY_TO_REGCLASS:{ *:[i32] } (VTOUIZH:{ *:[f32] } HPR:{ *:[f16] }:$a), GPR:{ *:[i32] })
23672 : GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
23673 : GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::VTOUIZH,
23674 : GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
23675 : GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // a
23676 : GIR_AddImm, /*InsnID*/1, /*Imm*/14,
23677 : GIR_AddRegister, /*InsnID*/1, ::zero_reg,
23678 : GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
23679 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
23680 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
23681 : GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
23682 : GIR_EraseFromParent, /*InsnID*/0,
23683 : GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC GPR*/2,
23684 : // GIR_Coverage, 2089,
23685 : GIR_Done,
23686 : // Label 1263: @60166
23687 : GIM_Reject,
23688 : // Label 1256: @60167
23689 : GIM_Try, /*On fail goto*//*Label 1264*/ 60205, // Rule ID 1576 //
23690 : GIM_CheckFeatures, GIFBS_HasNEON,
23691 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
23692 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
23693 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
23694 : // (fp_to_uint:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm) => (VCVTf2ud:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
23695 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTf2ud,
23696 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
23697 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
23698 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
23699 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
23700 : GIR_EraseFromParent, /*InsnID*/0,
23701 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
23702 : // GIR_Coverage, 1576,
23703 : GIR_Done,
23704 : // Label 1264: @60205
23705 : GIM_Reject,
23706 : // Label 1257: @60206
23707 : GIM_Try, /*On fail goto*//*Label 1265*/ 60244, // Rule ID 1584 //
23708 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
23709 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
23710 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
23711 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
23712 : // (fp_to_uint:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm) => (VCVTh2ud:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
23713 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTh2ud,
23714 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
23715 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
23716 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
23717 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
23718 : GIR_EraseFromParent, /*InsnID*/0,
23719 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
23720 : // GIR_Coverage, 1584,
23721 : GIR_Done,
23722 : // Label 1265: @60244
23723 : GIM_Reject,
23724 : // Label 1258: @60245
23725 : GIM_Try, /*On fail goto*//*Label 1266*/ 60283, // Rule ID 1580 //
23726 : GIM_CheckFeatures, GIFBS_HasNEON,
23727 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
23728 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
23729 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
23730 : // (fp_to_uint:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm) => (VCVTf2uq:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
23731 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTf2uq,
23732 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
23733 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
23734 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
23735 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
23736 : GIR_EraseFromParent, /*InsnID*/0,
23737 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
23738 : // GIR_Coverage, 1580,
23739 : GIR_Done,
23740 : // Label 1266: @60283
23741 : GIM_Reject,
23742 : // Label 1259: @60284
23743 : GIM_Try, /*On fail goto*//*Label 1267*/ 60322, // Rule ID 1588 //
23744 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
23745 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
23746 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
23747 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
23748 : // (fp_to_uint:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm) => (VCVTh2uq:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
23749 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTh2uq,
23750 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
23751 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
23752 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
23753 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
23754 : GIR_EraseFromParent, /*InsnID*/0,
23755 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
23756 : // GIR_Coverage, 1588,
23757 : GIR_Done,
23758 : // Label 1267: @60322
23759 : GIM_Reject,
23760 : // Label 1260: @60323
23761 : GIM_Reject,
23762 : // Label 29: @60324
23763 : GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 9, /*)*//*default:*//*Label 1275*/ 60660,
23764 : /*GILLT_s16*//*Label 1268*/ 60339,
23765 : /*GILLT_s32*//*Label 1269*/ 60394,
23766 : /*GILLT_s64*//*Label 1270*/ 60449,
23767 : /*GILLT_v2s32*//*Label 1271*/ 60504, 0,
23768 : /*GILLT_v4s16*//*Label 1272*/ 60543,
23769 : /*GILLT_v4s32*//*Label 1273*/ 60582, 0,
23770 : /*GILLT_v8s16*//*Label 1274*/ 60621,
23771 : // Label 1268: @60339
23772 : GIM_Try, /*On fail goto*//*Label 1276*/ 60393, // Rule ID 2074 //
23773 : GIM_CheckFeatures, GIFBS_DontUseNEONForFP_HasVFP2,
23774 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
23775 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::HPRRegClassID,
23776 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
23777 : // (sint_to_fp:{ *:[f16] } GPR:{ *:[i32] }:$a) => (VSITOH:{ *:[f16] } (COPY_TO_REGCLASS:{ *:[f32] } GPR:{ *:[i32] }:$a, SPR:{ *:[i32] }))
23778 : GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
23779 : GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::COPY,
23780 : GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
23781 : GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // a
23782 : GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
23783 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSITOH,
23784 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
23785 : GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
23786 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
23787 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
23788 : GIR_EraseFromParent, /*InsnID*/0,
23789 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
23790 : // GIR_Coverage, 2074,
23791 : GIR_Done,
23792 : // Label 1276: @60393
23793 : GIM_Reject,
23794 : // Label 1269: @60394
23795 : GIM_Try, /*On fail goto*//*Label 1277*/ 60448, // Rule ID 2072 //
23796 : GIM_CheckFeatures, GIFBS_DontUseNEONForFP_HasVFP2,
23797 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
23798 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
23799 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
23800 : // (sint_to_fp:{ *:[f32] } GPR:{ *:[i32] }:$a) => (VSITOS:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[f32] } GPR:{ *:[i32] }:$a, SPR:{ *:[i32] }))
23801 : GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
23802 : GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::COPY,
23803 : GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
23804 : GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // a
23805 : GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
23806 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSITOS,
23807 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
23808 : GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
23809 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
23810 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
23811 : GIR_EraseFromParent, /*InsnID*/0,
23812 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
23813 : // GIR_Coverage, 2072,
23814 : GIR_Done,
23815 : // Label 1277: @60448
23816 : GIM_Reject,
23817 : // Label 1270: @60449
23818 : GIM_Try, /*On fail goto*//*Label 1278*/ 60503, // Rule ID 2070 //
23819 : GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP2,
23820 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
23821 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
23822 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
23823 : // (sint_to_fp:{ *:[f64] } GPR:{ *:[i32] }:$a) => (VSITOD:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f32] } GPR:{ *:[i32] }:$a, SPR:{ *:[i32] }))
23824 : GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
23825 : GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::COPY,
23826 : GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
23827 : GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // a
23828 : GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
23829 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSITOD,
23830 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
23831 : GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
23832 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
23833 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
23834 : GIR_EraseFromParent, /*InsnID*/0,
23835 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
23836 : // GIR_Coverage, 2070,
23837 : GIR_Done,
23838 : // Label 1278: @60503
23839 : GIM_Reject,
23840 : // Label 1271: @60504
23841 : GIM_Try, /*On fail goto*//*Label 1279*/ 60542, // Rule ID 1577 //
23842 : GIM_CheckFeatures, GIFBS_HasNEON,
23843 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
23844 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
23845 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
23846 : // (sint_to_fp:{ *:[v2f32] } DPR:{ *:[v2i32] }:$Vm) => (VCVTs2fd:{ *:[v2f32] } DPR:{ *:[v2i32] }:$Vm)
23847 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTs2fd,
23848 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
23849 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
23850 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
23851 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
23852 : GIR_EraseFromParent, /*InsnID*/0,
23853 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
23854 : // GIR_Coverage, 1577,
23855 : GIR_Done,
23856 : // Label 1279: @60542
23857 : GIM_Reject,
23858 : // Label 1272: @60543
23859 : GIM_Try, /*On fail goto*//*Label 1280*/ 60581, // Rule ID 1585 //
23860 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
23861 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
23862 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
23863 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
23864 : // (sint_to_fp:{ *:[v4f16] } DPR:{ *:[v4i16] }:$Vm) => (VCVTs2hd:{ *:[v4f16] } DPR:{ *:[v4i16] }:$Vm)
23865 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTs2hd,
23866 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
23867 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
23868 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
23869 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
23870 : GIR_EraseFromParent, /*InsnID*/0,
23871 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
23872 : // GIR_Coverage, 1585,
23873 : GIR_Done,
23874 : // Label 1280: @60581
23875 : GIM_Reject,
23876 : // Label 1273: @60582
23877 : GIM_Try, /*On fail goto*//*Label 1281*/ 60620, // Rule ID 1581 //
23878 : GIM_CheckFeatures, GIFBS_HasNEON,
23879 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
23880 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
23881 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
23882 : // (sint_to_fp:{ *:[v4f32] } QPR:{ *:[v4i32] }:$Vm) => (VCVTs2fq:{ *:[v4f32] } QPR:{ *:[v4i32] }:$Vm)
23883 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTs2fq,
23884 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
23885 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
23886 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
23887 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
23888 : GIR_EraseFromParent, /*InsnID*/0,
23889 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
23890 : // GIR_Coverage, 1581,
23891 : GIR_Done,
23892 : // Label 1281: @60620
23893 : GIM_Reject,
23894 : // Label 1274: @60621
23895 : GIM_Try, /*On fail goto*//*Label 1282*/ 60659, // Rule ID 1589 //
23896 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
23897 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
23898 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
23899 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
23900 : // (sint_to_fp:{ *:[v8f16] } QPR:{ *:[v8i16] }:$Vm) => (VCVTs2hq:{ *:[v8f16] } QPR:{ *:[v8i16] }:$Vm)
23901 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTs2hq,
23902 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
23903 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
23904 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
23905 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
23906 : GIR_EraseFromParent, /*InsnID*/0,
23907 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
23908 : // GIR_Coverage, 1589,
23909 : GIR_Done,
23910 : // Label 1282: @60659
23911 : GIM_Reject,
23912 : // Label 1275: @60660
23913 : GIM_Reject,
23914 : // Label 30: @60661
23915 : GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 9, /*)*//*default:*//*Label 1290*/ 60997,
23916 : /*GILLT_s16*//*Label 1283*/ 60676,
23917 : /*GILLT_s32*//*Label 1284*/ 60731,
23918 : /*GILLT_s64*//*Label 1285*/ 60786,
23919 : /*GILLT_v2s32*//*Label 1286*/ 60841, 0,
23920 : /*GILLT_v4s16*//*Label 1287*/ 60880,
23921 : /*GILLT_v4s32*//*Label 1288*/ 60919, 0,
23922 : /*GILLT_v8s16*//*Label 1289*/ 60958,
23923 : // Label 1283: @60676
23924 : GIM_Try, /*On fail goto*//*Label 1291*/ 60730, // Rule ID 2079 //
23925 : GIM_CheckFeatures, GIFBS_DontUseNEONForFP_HasVFP2,
23926 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
23927 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::HPRRegClassID,
23928 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
23929 : // (uint_to_fp:{ *:[f16] } GPR:{ *:[i32] }:$a) => (VUITOH:{ *:[f16] } (COPY_TO_REGCLASS:{ *:[f32] } GPR:{ *:[i32] }:$a, SPR:{ *:[i32] }))
23930 : GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
23931 : GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::COPY,
23932 : GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
23933 : GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // a
23934 : GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
23935 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VUITOH,
23936 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
23937 : GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
23938 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
23939 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
23940 : GIR_EraseFromParent, /*InsnID*/0,
23941 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
23942 : // GIR_Coverage, 2079,
23943 : GIR_Done,
23944 : // Label 1291: @60730
23945 : GIM_Reject,
23946 : // Label 1284: @60731
23947 : GIM_Try, /*On fail goto*//*Label 1292*/ 60785, // Rule ID 2077 //
23948 : GIM_CheckFeatures, GIFBS_DontUseNEONForFP_HasVFP2,
23949 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
23950 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
23951 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
23952 : // (uint_to_fp:{ *:[f32] } GPR:{ *:[i32] }:$a) => (VUITOS:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[f32] } GPR:{ *:[i32] }:$a, SPR:{ *:[i32] }))
23953 : GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
23954 : GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::COPY,
23955 : GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
23956 : GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // a
23957 : GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
23958 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VUITOS,
23959 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
23960 : GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
23961 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
23962 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
23963 : GIR_EraseFromParent, /*InsnID*/0,
23964 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
23965 : // GIR_Coverage, 2077,
23966 : GIR_Done,
23967 : // Label 1292: @60785
23968 : GIM_Reject,
23969 : // Label 1285: @60786
23970 : GIM_Try, /*On fail goto*//*Label 1293*/ 60840, // Rule ID 2075 //
23971 : GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP2,
23972 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
23973 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
23974 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
23975 : // (uint_to_fp:{ *:[f64] } GPR:{ *:[i32] }:$a) => (VUITOD:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f32] } GPR:{ *:[i32] }:$a, SPR:{ *:[i32] }))
23976 : GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
23977 : GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::COPY,
23978 : GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
23979 : GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // a
23980 : GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
23981 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VUITOD,
23982 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
23983 : GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
23984 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
23985 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
23986 : GIR_EraseFromParent, /*InsnID*/0,
23987 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
23988 : // GIR_Coverage, 2075,
23989 : GIR_Done,
23990 : // Label 1293: @60840
23991 : GIM_Reject,
23992 : // Label 1286: @60841
23993 : GIM_Try, /*On fail goto*//*Label 1294*/ 60879, // Rule ID 1578 //
23994 : GIM_CheckFeatures, GIFBS_HasNEON,
23995 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
23996 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
23997 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
23998 : // (uint_to_fp:{ *:[v2f32] } DPR:{ *:[v2i32] }:$Vm) => (VCVTu2fd:{ *:[v2f32] } DPR:{ *:[v2i32] }:$Vm)
23999 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTu2fd,
24000 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
24001 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
24002 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
24003 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
24004 : GIR_EraseFromParent, /*InsnID*/0,
24005 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
24006 : // GIR_Coverage, 1578,
24007 : GIR_Done,
24008 : // Label 1294: @60879
24009 : GIM_Reject,
24010 : // Label 1287: @60880
24011 : GIM_Try, /*On fail goto*//*Label 1295*/ 60918, // Rule ID 1586 //
24012 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
24013 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
24014 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
24015 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
24016 : // (uint_to_fp:{ *:[v4f16] } DPR:{ *:[v4i16] }:$Vm) => (VCVTu2hd:{ *:[v4f16] } DPR:{ *:[v4i16] }:$Vm)
24017 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTu2hd,
24018 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
24019 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
24020 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
24021 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
24022 : GIR_EraseFromParent, /*InsnID*/0,
24023 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
24024 : // GIR_Coverage, 1586,
24025 : GIR_Done,
24026 : // Label 1295: @60918
24027 : GIM_Reject,
24028 : // Label 1288: @60919
24029 : GIM_Try, /*On fail goto*//*Label 1296*/ 60957, // Rule ID 1582 //
24030 : GIM_CheckFeatures, GIFBS_HasNEON,
24031 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
24032 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
24033 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
24034 : // (uint_to_fp:{ *:[v4f32] } QPR:{ *:[v4i32] }:$Vm) => (VCVTu2fq:{ *:[v4f32] } QPR:{ *:[v4i32] }:$Vm)
24035 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTu2fq,
24036 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
24037 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
24038 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
24039 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
24040 : GIR_EraseFromParent, /*InsnID*/0,
24041 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
24042 : // GIR_Coverage, 1582,
24043 : GIR_Done,
24044 : // Label 1296: @60957
24045 : GIM_Reject,
24046 : // Label 1289: @60958
24047 : GIM_Try, /*On fail goto*//*Label 1297*/ 60996, // Rule ID 1590 //
24048 : GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
24049 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
24050 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
24051 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
24052 : // (uint_to_fp:{ *:[v8f16] } QPR:{ *:[v8i16] }:$Vm) => (VCVTu2hq:{ *:[v8f16] } QPR:{ *:[v8i16] }:$Vm)
24053 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTu2hq,
24054 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
24055 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
24056 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
24057 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
24058 : GIR_EraseFromParent, /*InsnID*/0,
24059 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
24060 : // GIR_Coverage, 1590,
24061 : GIR_Done,
24062 : // Label 1297: @60996
24063 : GIM_Reject,
24064 : // Label 1290: @60997
24065 : GIM_Reject,
24066 : // Label 31: @60998
24067 : GIM_Try, /*On fail goto*//*Label 1298*/ 61059,
24068 : GIM_CheckIsMBB, /*MI*/0, /*Op*/0,
24069 : GIM_Try, /*On fail goto*//*Label 1299*/ 61014, // Rule ID 34 //
24070 : GIM_CheckFeatures, GIFBS_IsARM,
24071 : // (br (bb:{ *:[Other] }):$target) => (B (bb:{ *:[Other] }):$target)
24072 : GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/ARM::B,
24073 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
24074 : // GIR_Coverage, 34,
24075 : GIR_Done,
24076 : // Label 1299: @61014
24077 : GIM_Try, /*On fail goto*//*Label 1300*/ 61036, // Rule ID 291 //
24078 : GIM_CheckFeatures, GIFBS_IsThumb_IsThumb1Only,
24079 : // (br (bb:{ *:[Other] }):$target) => (tB (bb:{ *:[Other] }):$target)
24080 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::tB,
24081 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // target
24082 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
24083 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
24084 : GIR_EraseFromParent, /*InsnID*/0,
24085 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
24086 : // GIR_Coverage, 291,
24087 : GIR_Done,
24088 : // Label 1300: @61036
24089 : GIM_Try, /*On fail goto*//*Label 1301*/ 61058, // Rule ID 590 //
24090 : GIM_CheckFeatures, GIFBS_HasV8MBaseline_IsThumb,
24091 : // (br (bb:{ *:[Other] }):$target) => (t2B (bb:{ *:[Other] }):$target)
24092 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2B,
24093 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // target
24094 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
24095 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
24096 : GIR_EraseFromParent, /*InsnID*/0,
24097 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
24098 : // GIR_Coverage, 590,
24099 : GIR_Done,
24100 : // Label 1301: @61058
24101 : GIM_Reject,
24102 : // Label 1298: @61059
24103 : GIM_Reject,
24104 : // Label 32: @61060
24105 : GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 10, /*)*//*default:*//*Label 1309*/ 61385,
24106 : /*GILLT_s32*//*Label 1302*/ 61075, 0,
24107 : /*GILLT_v2s32*//*Label 1303*/ 61151, 0,
24108 : /*GILLT_v4s16*//*Label 1304*/ 61190,
24109 : /*GILLT_v4s32*//*Label 1305*/ 61229,
24110 : /*GILLT_v8s8*//*Label 1306*/ 61268,
24111 : /*GILLT_v8s16*//*Label 1307*/ 61307,
24112 : /*GILLT_v16s8*//*Label 1308*/ 61346,
24113 : // Label 1302: @61075
24114 : GIM_Try, /*On fail goto*//*Label 1310*/ 61150,
24115 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
24116 : GIM_Try, /*On fail goto*//*Label 1311*/ 61115, // Rule ID 199 //
24117 : GIM_CheckFeatures, GIFBS_HasV5T_IsARM,
24118 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
24119 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
24120 : // (ctlz:{ *:[i32] } GPR:{ *:[i32] }:$Rm) => (CLZ:{ *:[i32] } GPR:{ *:[i32] }:$Rm)
24121 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::CLZ,
24122 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
24123 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rm
24124 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
24125 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
24126 : GIR_EraseFromParent, /*InsnID*/0,
24127 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
24128 : // GIR_Coverage, 199,
24129 : GIR_Done,
24130 : // Label 1311: @61115
24131 : GIM_Try, /*On fail goto*//*Label 1312*/ 61149, // Rule ID 538 //
24132 : GIM_CheckFeatures, GIFBS_IsThumb2,
24133 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
24134 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
24135 : // (ctlz:{ *:[i32] } rGPR:{ *:[i32] }:$Rm) => (t2CLZ:{ *:[i32] } rGPR:{ *:[i32] }:$Rm)
24136 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2CLZ,
24137 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
24138 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rm
24139 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
24140 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
24141 : GIR_EraseFromParent, /*InsnID*/0,
24142 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
24143 : // GIR_Coverage, 538,
24144 : GIR_Done,
24145 : // Label 1312: @61149
24146 : GIM_Reject,
24147 : // Label 1310: @61150
24148 : GIM_Reject,
24149 : // Label 1303: @61151
24150 : GIM_Try, /*On fail goto*//*Label 1313*/ 61189, // Rule ID 1519 //
24151 : GIM_CheckFeatures, GIFBS_HasNEON,
24152 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
24153 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
24154 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
24155 : // (ctlz:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm) => (VCLZv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
24156 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCLZv2i32,
24157 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
24158 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
24159 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
24160 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
24161 : GIR_EraseFromParent, /*InsnID*/0,
24162 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
24163 : // GIR_Coverage, 1519,
24164 : GIR_Done,
24165 : // Label 1313: @61189
24166 : GIM_Reject,
24167 : // Label 1304: @61190
24168 : GIM_Try, /*On fail goto*//*Label 1314*/ 61228, // Rule ID 1518 //
24169 : GIM_CheckFeatures, GIFBS_HasNEON,
24170 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
24171 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
24172 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
24173 : // (ctlz:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm) => (VCLZv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm)
24174 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCLZv4i16,
24175 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
24176 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
24177 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
24178 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
24179 : GIR_EraseFromParent, /*InsnID*/0,
24180 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
24181 : // GIR_Coverage, 1518,
24182 : GIR_Done,
24183 : // Label 1314: @61228
24184 : GIM_Reject,
24185 : // Label 1305: @61229
24186 : GIM_Try, /*On fail goto*//*Label 1315*/ 61267, // Rule ID 1522 //
24187 : GIM_CheckFeatures, GIFBS_HasNEON,
24188 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
24189 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
24190 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
24191 : // (ctlz:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm) => (VCLZv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
24192 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCLZv4i32,
24193 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
24194 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
24195 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
24196 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
24197 : GIR_EraseFromParent, /*InsnID*/0,
24198 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
24199 : // GIR_Coverage, 1522,
24200 : GIR_Done,
24201 : // Label 1315: @61267
24202 : GIM_Reject,
24203 : // Label 1306: @61268
24204 : GIM_Try, /*On fail goto*//*Label 1316*/ 61306, // Rule ID 1517 //
24205 : GIM_CheckFeatures, GIFBS_HasNEON,
24206 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
24207 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
24208 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
24209 : // (ctlz:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm) => (VCLZv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm)
24210 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCLZv8i8,
24211 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
24212 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
24213 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
24214 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
24215 : GIR_EraseFromParent, /*InsnID*/0,
24216 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
24217 : // GIR_Coverage, 1517,
24218 : GIR_Done,
24219 : // Label 1316: @61306
24220 : GIM_Reject,
24221 : // Label 1307: @61307
24222 : GIM_Try, /*On fail goto*//*Label 1317*/ 61345, // Rule ID 1521 //
24223 : GIM_CheckFeatures, GIFBS_HasNEON,
24224 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
24225 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
24226 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
24227 : // (ctlz:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm) => (VCLZv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm)
24228 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCLZv8i16,
24229 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
24230 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
24231 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
24232 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
24233 : GIR_EraseFromParent, /*InsnID*/0,
24234 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
24235 : // GIR_Coverage, 1521,
24236 : GIR_Done,
24237 : // Label 1317: @61345
24238 : GIM_Reject,
24239 : // Label 1308: @61346
24240 : GIM_Try, /*On fail goto*//*Label 1318*/ 61384, // Rule ID 1520 //
24241 : GIM_CheckFeatures, GIFBS_HasNEON,
24242 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
24243 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
24244 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
24245 : // (ctlz:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm) => (VCLZv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
24246 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCLZv16i8,
24247 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
24248 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
24249 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
24250 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
24251 : GIR_EraseFromParent, /*InsnID*/0,
24252 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
24253 : // GIR_Coverage, 1520,
24254 : GIR_Done,
24255 : // Label 1318: @61384
24256 : GIM_Reject,
24257 : // Label 1309: @61385
24258 : GIM_Reject,
24259 : // Label 33: @61386
24260 : GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/7, 10, /*)*//*default:*//*Label 1321*/ 61473,
24261 : /*GILLT_v8s8*//*Label 1319*/ 61395, 0,
24262 : /*GILLT_v16s8*//*Label 1320*/ 61434,
24263 : // Label 1319: @61395
24264 : GIM_Try, /*On fail goto*//*Label 1322*/ 61433, // Rule ID 1523 //
24265 : GIM_CheckFeatures, GIFBS_HasNEON,
24266 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
24267 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
24268 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
24269 : // (ctpop:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm) => (VCNTd:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm)
24270 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCNTd,
24271 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
24272 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
24273 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
24274 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
24275 : GIR_EraseFromParent, /*InsnID*/0,
24276 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
24277 : // GIR_Coverage, 1523,
24278 : GIR_Done,
24279 : // Label 1322: @61433
24280 : GIM_Reject,
24281 : // Label 1320: @61434
24282 : GIM_Try, /*On fail goto*//*Label 1323*/ 61472, // Rule ID 1524 //
24283 : GIM_CheckFeatures, GIFBS_HasNEON,
24284 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
24285 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
24286 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
24287 : // (ctpop:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm) => (VCNTq:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
24288 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCNTq,
24289 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
24290 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
24291 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
24292 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
24293 : GIR_EraseFromParent, /*InsnID*/0,
24294 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
24295 : // GIR_Coverage, 1524,
24296 : GIR_Done,
24297 : // Label 1323: @61472
24298 : GIM_Reject,
24299 : // Label 1321: @61473
24300 : GIM_Reject,
24301 : // Label 34: @61474
24302 : GIM_Try, /*On fail goto*//*Label 1324*/ 61587,
24303 : GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
24304 : GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
24305 : GIM_Try, /*On fail goto*//*Label 1325*/ 61518, // Rule ID 201 //
24306 : GIM_CheckFeatures, GIFBS_HasV6_IsARM,
24307 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
24308 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
24309 : // (bswap:{ *:[i32] } GPR:{ *:[i32] }:$Rm) => (REV:{ *:[i32] } GPR:{ *:[i32] }:$Rm)
24310 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::REV,
24311 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
24312 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rm
24313 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
24314 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
24315 : GIR_EraseFromParent, /*InsnID*/0,
24316 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
24317 : // GIR_Coverage, 201,
24318 : GIR_Done,
24319 : // Label 1325: @61518
24320 : GIM_Try, /*On fail goto*//*Label 1326*/ 61552, // Rule ID 334 //
24321 : GIM_CheckFeatures, GIFBS_HasV6_IsThumb_IsThumb1Only,
24322 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::tGPRRegClassID,
24323 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::tGPRRegClassID,
24324 : // (bswap:{ *:[i32] } tGPR:{ *:[i32] }:$Rm) => (tREV:{ *:[i32] } tGPR:{ *:[i32] }:$Rm)
24325 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::tREV,
24326 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
24327 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rm
24328 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
24329 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
24330 : GIR_EraseFromParent, /*InsnID*/0,
24331 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
24332 : // GIR_Coverage, 334,
24333 : GIR_Done,
24334 : // Label 1326: @61552
24335 : GIM_Try, /*On fail goto*//*Label 1327*/ 61586, // Rule ID 540 //
24336 : GIM_CheckFeatures, GIFBS_IsThumb2,
24337 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
24338 : GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
24339 : // (bswap:{ *:[i32] } rGPR:{ *:[i32] }:$Rm) => (t2REV:{ *:[i32] } rGPR:{ *:[i32] }:$Rm)
24340 : GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2REV,
24341 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
24342 : GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rm
24343 : GIR_AddImm, /*InsnID*/0, /*Imm*/14,
24344 : GIR_AddRegister, /*InsnID*/0, ::zero_reg,
24345 : GIR_EraseFromParent, /*InsnID*/0,
24346 : GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
24347 : // GIR_Coverage, 540,
24348 : GIR_Done,
24349 : // Label 1327: @61586
24350 : GIM_Reject,
24351 : // Label 1324: @61587
24352 : GIM_Reject,
24353 : // Label 35: @61588
24354 : GIM_Reject,
24355 : };
24356 0 : return MatchTable0;
24357 : }
24358 : #endif // ifdef GET_GLOBALISEL_IMPL
24359 : #ifdef GET_GLOBALISEL_PREDICATES_DECL
24360 : PredicateBitset AvailableModuleFeatures;
24361 : mutable PredicateBitset AvailableFunctionFeatures;
24362 : PredicateBitset getAvailableFeatures() const {
24363 : return AvailableModuleFeatures | AvailableFunctionFeatures;
24364 : }
24365 : PredicateBitset
24366 : computeAvailableModuleFeatures(const ARMSubtarget *Subtarget) const;
24367 : PredicateBitset
24368 : computeAvailableFunctionFeatures(const ARMSubtarget *Subtarget,
24369 : const MachineFunction *MF) const;
24370 : #endif // ifdef GET_GLOBALISEL_PREDICATES_DECL
24371 : #ifdef GET_GLOBALISEL_PREDICATES_INIT
24372 5050 : AvailableModuleFeatures(computeAvailableModuleFeatures(&STI)),
24373 : AvailableFunctionFeatures()
24374 : #endif // ifdef GET_GLOBALISEL_PREDICATES_INIT
|