LCOV - code coverage report
Current view: top level - build-llvm/lib/Target/ARM - ARMGenGlobalISel.inc (source / functions) Hit Total Coverage
Test: llvm-toolchain.info Lines: 24 224 10.7 %
Date: 2018-10-20 13:21:21 Functions: 2 8 25.0 %
Legend: Lines: hit not hit

          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

Generated by: LCOV version 1.13