LCOV - code coverage report
Current view: top level - build-llvm/lib/Target/Mips - MipsGenGlobalISel.inc (source / functions) Hit Total Coverage
Test: llvm-toolchain.info Lines: 14 151 9.3 %
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 Mips target                            *|
       4             : |*                                                                            *|
       5             : |* Automatically generated file, do not edit!                                 *|
       6             : |*                                                                            *|
       7             : \*===----------------------------------------------------------------------===*/
       8             : 
       9             : #ifdef GET_GLOBALISEL_PREDICATE_BITSET
      10             : const unsigned MAX_SUBTARGET_PREDICATES = 41;
      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(MipsInstructionSelector::*ComplexMatcherMemFn)(MachineOperand &) const;
      17             :   typedef void(MipsInstructionSelector::*CustomRendererFn)(MachineInstrBuilder &, const MachineInstr&) const;
      18             :   const ISelInfoTy<PredicateBitset, ComplexMatcherMemFn, CustomRendererFn> ISelInfo;
      19             :   static MipsInstructionSelector::ComplexMatcherMemFn ComplexPredicateFns[];
      20             :   static MipsInstructionSelector::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       20614 : 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_HasMips2Bit = 7,
      37             :   Feature_HasMips3Bit = 16,
      38             :   Feature_HasMips4_32Bit = 26,
      39             :   Feature_NotMips4_32Bit = 27,
      40             :   Feature_HasMips4_32r2Bit = 17,
      41             :   Feature_HasMips32Bit = 3,
      42             :   Feature_HasMips32r2Bit = 6,
      43             :   Feature_HasMips32r6Bit = 28,
      44             :   Feature_NotMips32r6Bit = 4,
      45             :   Feature_IsGP64bitBit = 21,
      46             :   Feature_IsPTR64bitBit = 23,
      47             :   Feature_HasMips64Bit = 24,
      48             :   Feature_HasMips64r2Bit = 22,
      49             :   Feature_HasMips64r6Bit = 29,
      50             :   Feature_NotMips64r6Bit = 5,
      51             :   Feature_InMips16ModeBit = 30,
      52             :   Feature_NotInMips16ModeBit = 0,
      53             :   Feature_HasCnMipsBit = 25,
      54             :   Feature_NotCnMipsBit = 8,
      55             :   Feature_IsN64Bit = 37,
      56             :   Feature_RelocNotPICBit = 9,
      57             :   Feature_RelocPICBit = 36,
      58             :   Feature_NoNaNsFPMathBit = 20,
      59             :   Feature_HasStdEncBit = 1,
      60             :   Feature_NotDSPBit = 11,
      61             :   Feature_InMicroMipsBit = 34,
      62             :   Feature_NotInMicroMipsBit = 2,
      63             :   Feature_IsLEBit = 39,
      64             :   Feature_IsBEBit = 40,
      65             :   Feature_IsNotNaClBit = 18,
      66             :   Feature_HasEVABit = 35,
      67             :   Feature_HasMSABit = 33,
      68             :   Feature_HasMadd4Bit = 19,
      69             :   Feature_UseIndirectJumpsHazardBit = 12,
      70             :   Feature_NoIndirectJumpGuardsBit = 10,
      71             :   Feature_AllowFPOpFusionBit = 38,
      72             :   Feature_IsFP64bitBit = 15,
      73             :   Feature_NotFP64bitBit = 14,
      74             :   Feature_IsNotSoftFloatBit = 13,
      75             :   Feature_HasDSPBit = 31,
      76             :   Feature_HasDSPR2Bit = 32,
      77             : };
      78             : 
      79           0 : PredicateBitset MipsInstructionSelector::
      80             : computeAvailableModuleFeatures(const MipsSubtarget *Subtarget) const {
      81           0 :   PredicateBitset Features;
      82           0 :   if (Subtarget->hasMips2())
      83           0 :     Features[Feature_HasMips2Bit] = 1;
      84           0 :   if (Subtarget->hasMips3())
      85           0 :     Features[Feature_HasMips3Bit] = 1;
      86           0 :   if (Subtarget->hasMips4_32())
      87           0 :     Features[Feature_HasMips4_32Bit] = 1;
      88           0 :   if (!Subtarget->hasMips4_32())
      89           0 :     Features[Feature_NotMips4_32Bit] = 1;
      90           0 :   if (Subtarget->hasMips4_32r2())
      91           0 :     Features[Feature_HasMips4_32r2Bit] = 1;
      92             :   if (Subtarget->hasMips32())
      93           0 :     Features[Feature_HasMips32Bit] = 1;
      94             :   if (Subtarget->hasMips32r2())
      95           0 :     Features[Feature_HasMips32r2Bit] = 1;
      96             :   if (Subtarget->hasMips32r6())
      97           0 :     Features[Feature_HasMips32r6Bit] = 1;
      98             :   if (!Subtarget->hasMips32r6())
      99           0 :     Features[Feature_NotMips32r6Bit] = 1;
     100           0 :   if (Subtarget->isGP64bit())
     101           0 :     Features[Feature_IsGP64bitBit] = 1;
     102           0 :   if (Subtarget->isABI_N64())
     103           0 :     Features[Feature_IsPTR64bitBit] = 1;
     104           0 :   if (Subtarget->hasMips64())
     105           0 :     Features[Feature_HasMips64Bit] = 1;
     106           0 :   if (Subtarget->hasMips64r2())
     107           0 :     Features[Feature_HasMips64r2Bit] = 1;
     108           0 :   if (Subtarget->hasMips64r6())
     109           0 :     Features[Feature_HasMips64r6Bit] = 1;
     110           0 :   if (!Subtarget->hasMips64r6())
     111           0 :     Features[Feature_NotMips64r6Bit] = 1;
     112           0 :   if (Subtarget->inMips16Mode())
     113           0 :     Features[Feature_InMips16ModeBit] = 1;
     114           0 :   if (!Subtarget->inMips16Mode())
     115           0 :     Features[Feature_NotInMips16ModeBit] = 1;
     116           0 :   if (Subtarget->hasCnMips())
     117           0 :     Features[Feature_HasCnMipsBit] = 1;
     118           0 :   if (!Subtarget->hasCnMips())
     119           0 :     Features[Feature_NotCnMipsBit] = 1;
     120           0 :   if (Subtarget->isABI_N64())
     121           0 :     Features[Feature_IsN64Bit] = 1;
     122           0 :   if (!TM.isPositionIndependent())
     123           0 :     Features[Feature_RelocNotPICBit] = 1;
     124           0 :   if (TM.isPositionIndependent())
     125           0 :     Features[Feature_RelocPICBit] = 1;
     126           0 :   if (TM.Options.NoNaNsFPMath)
     127           0 :     Features[Feature_NoNaNsFPMathBit] = 1;
     128           0 :   if (Subtarget->hasStandardEncoding())
     129           0 :     Features[Feature_HasStdEncBit] = 1;
     130           0 :   if (!Subtarget->hasDSP())
     131           0 :     Features[Feature_NotDSPBit] = 1;
     132           0 :   if (Subtarget->inMicroMipsMode())
     133           0 :     Features[Feature_InMicroMipsBit] = 1;
     134             :   if (!Subtarget->inMicroMipsMode())
     135           0 :     Features[Feature_NotInMicroMipsBit] = 1;
     136           0 :   if (Subtarget->isLittle())
     137           0 :     Features[Feature_IsLEBit] = 1;
     138           0 :   if (!Subtarget->isLittle())
     139           0 :     Features[Feature_IsBEBit] = 1;
     140           0 :   if (!Subtarget->isTargetNaCl())
     141           0 :     Features[Feature_IsNotNaClBit] = 1;
     142           0 :   if (Subtarget->hasEVA())
     143           0 :     Features[Feature_HasEVABit] = 1;
     144           0 :   if (Subtarget->hasMSA())
     145           0 :     Features[Feature_HasMSABit] = 1;
     146           0 :   if (!Subtarget->disableMadd4())
     147           0 :     Features[Feature_HasMadd4Bit] = 1;
     148             :   if (Subtarget->useIndirectJumpsHazard())
     149           0 :     Features[Feature_UseIndirectJumpsHazardBit] = 1;
     150             :   if (!Subtarget->useIndirectJumpsHazard())
     151           0 :     Features[Feature_NoIndirectJumpGuardsBit] = 1;
     152           0 :   if (TM.Options.AllowFPOpFusion == FPOpFusion::Fast)
     153           0 :     Features[Feature_AllowFPOpFusionBit] = 1;
     154           0 :   if (Subtarget->isFP64bit())
     155           0 :     Features[Feature_IsFP64bitBit] = 1;
     156           0 :   if (!Subtarget->isFP64bit())
     157           0 :     Features[Feature_NotFP64bitBit] = 1;
     158           0 :   if (!Subtarget->useSoftFloat())
     159           0 :     Features[Feature_IsNotSoftFloatBit] = 1;
     160           0 :   if (Subtarget->hasDSP())
     161           0 :     Features[Feature_HasDSPBit] = 1;
     162           0 :   if (Subtarget->hasDSPR2())
     163           0 :     Features[Feature_HasDSPR2Bit] = 1;
     164           0 :   return Features;
     165             : }
     166             : 
     167           0 : PredicateBitset MipsInstructionSelector::
     168             : computeAvailableFunctionFeatures(const MipsSubtarget *Subtarget, const MachineFunction *MF) const {
     169             :   PredicateBitset Features;
     170           0 :   return Features;
     171             : }
     172             : 
     173             : // LLT Objects.
     174             : enum {
     175             :   GILLT_s16,
     176             :   GILLT_s32,
     177             :   GILLT_s64,
     178             :   GILLT_v2s16,
     179             :   GILLT_v2s64,
     180             :   GILLT_v4s8,
     181             :   GILLT_v4s32,
     182             :   GILLT_v8s16,
     183             :   GILLT_v16s8,
     184             : };
     185             : const static size_t NumTypeObjects = 9;
     186             : const static LLT TypeObjects[] = {
     187             :   LLT::scalar(16),
     188             :   LLT::scalar(32),
     189             :   LLT::scalar(64),
     190             :   LLT::vector(2, 16),
     191             :   LLT::vector(2, 64),
     192             :   LLT::vector(4, 8),
     193             :   LLT::vector(4, 32),
     194             :   LLT::vector(8, 16),
     195             :   LLT::vector(16, 8),
     196             : };
     197             : 
     198             : // Feature bitsets.
     199             : enum {
     200             :   GIFBS_Invalid,
     201             :   GIFBS_HasCnMips,
     202             :   GIFBS_HasDSP,
     203             :   GIFBS_HasDSPR2,
     204             :   GIFBS_HasMSA,
     205             :   GIFBS_InMicroMips,
     206             :   GIFBS_InMips16Mode,
     207             :   GIFBS_IsFP64bit,
     208             :   GIFBS_NotFP64bit,
     209             :   GIFBS_HasDSP_InMicroMips,
     210             :   GIFBS_HasDSP_NotInMicroMips,
     211             :   GIFBS_HasDSPR2_InMicroMips,
     212             :   GIFBS_HasMSA_HasStdEnc,
     213             :   GIFBS_HasMSA_IsBE,
     214             :   GIFBS_HasMSA_IsLE,
     215             :   GIFBS_HasMips32r6_HasStdEnc,
     216             :   GIFBS_HasMips32r6_InMicroMips,
     217             :   GIFBS_HasMips64r2_HasStdEnc,
     218             :   GIFBS_HasMips64r6_HasStdEnc,
     219             :   GIFBS_HasStdEnc_IsNotSoftFloat,
     220             :   GIFBS_HasStdEnc_NotInMicroMips,
     221             :   GIFBS_HasStdEnc_NotMips4_32,
     222             :   GIFBS_InMicroMips_IsFP64bit,
     223             :   GIFBS_InMicroMips_IsNotSoftFloat,
     224             :   GIFBS_InMicroMips_NotFP64bit,
     225             :   GIFBS_InMicroMips_NotMips32r6,
     226             :   GIFBS_IsGP64bit_NotInMips16Mode,
     227             :   GIFBS_AllowFPOpFusion_HasMSA_HasStdEnc,
     228             :   GIFBS_HasMSA_HasMips64_HasStdEnc,
     229             :   GIFBS_HasMips3_HasStdEnc_IsGP64bit,
     230             :   GIFBS_HasMips3_HasStdEnc_NotInMicroMips,
     231             :   GIFBS_HasMips32r2_HasStdEnc_NotInMicroMips,
     232             :   GIFBS_HasMips32r6_HasStdEnc_NotInMicroMips,
     233             :   GIFBS_HasMips32r6_InMicroMips_IsNotSoftFloat,
     234             :   GIFBS_HasMips64r6_HasStdEnc_NotInMicroMips,
     235             :   GIFBS_HasStdEnc_IsFP64bit_NotInMicroMips,
     236             :   GIFBS_HasStdEnc_IsFP64bit_NotMips4_32,
     237             :   GIFBS_HasStdEnc_IsNotSoftFloat_NotInMicroMips,
     238             :   GIFBS_HasStdEnc_NotFP64bit_NotInMicroMips,
     239             :   GIFBS_HasStdEnc_NotFP64bit_NotMips4_32,
     240             :   GIFBS_HasStdEnc_NotInMicroMips_RelocNotPIC,
     241             :   GIFBS_InMicroMips_IsFP64bit_IsNotSoftFloat,
     242             :   GIFBS_InMicroMips_IsNotSoftFloat_NotFP64bit,
     243             :   GIFBS_InMicroMips_NotFP64bit_NotMips32r6,
     244             :   GIFBS_InMicroMips_NotMips32r6_RelocNotPIC,
     245             :   GIFBS_InMicroMips_NotMips32r6_RelocPIC,
     246             :   GIFBS_HasMips3_HasStdEnc_IsNotSoftFloat_NotInMicroMips,
     247             :   GIFBS_HasMips32r6_HasStdEnc_IsNotSoftFloat_NotInMicroMips,
     248             :   GIFBS_HasMips4_32_HasStdEnc_NotMips32r6_NotMips64r6,
     249             :   GIFBS_HasMips64_HasStdEnc_NotInMicroMips_NotMips64r6,
     250             :   GIFBS_HasMips64r2_HasStdEnc_IsGP64bit_NotInMicroMips,
     251             :   GIFBS_HasStdEnc_IsFP64bit_IsNotSoftFloat_NotInMicroMips,
     252             :   GIFBS_HasStdEnc_IsNotSoftFloat_NotFP64bit_NotInMicroMips,
     253             :   GIFBS_HasMips32_HasStdEnc_NotInMicroMips_NotMips32r6_NotMips64r6,
     254             :   GIFBS_HasMips4_32_HasStdEnc_NotInMicroMips_NotMips32r6_NotMips64r6,
     255             :   GIFBS_HasMadd4_InMicroMips_InMicroMips_NoNaNsFPMath_NotMips32r6_NotMips32r6,
     256             :   GIFBS_HasMips4_32_HasStdEnc_IsFP64bit_NotInMicroMips_NotMips32r6_NotMips64r6,
     257             :   GIFBS_HasMips4_32_HasStdEnc_IsGP64bit_NotInMicroMips_NotMips32r6_NotMips64r6,
     258             :   GIFBS_HasMips4_32_HasStdEnc_NotFP64bit_NotInMicroMips_NotMips32r6_NotMips64r6,
     259             :   GIFBS_HasMadd4_HasMips4_32r2_HasStdEnc_IsNotSoftFloat_NotInMicroMips_NotMips32r6_NotMips64r6,
     260             :   GIFBS_HasMadd4_HasMips4_32r2_HasStdEnc_NoNaNsFPMath_NotInMicroMips_NotMips32r6_NotMips64r6,
     261             :   GIFBS_HasMadd4_InMicroMips_InMicroMips_NoNaNsFPMath_NotFP64bit_NotMips32r6_NotMips32r6,
     262             :   GIFBS_HasMadd4_HasMips4_32r2_HasStdEnc_IsFP64bit_IsNotSoftFloat_NotInMicroMips_NotMips32r6_NotMips64r6,
     263             :   GIFBS_HasMadd4_HasMips4_32r2_HasStdEnc_IsFP64bit_NoNaNsFPMath_NotInMicroMips_NotMips32r6_NotMips64r6,
     264             :   GIFBS_HasMadd4_HasMips4_32r2_HasStdEnc_IsNotSoftFloat_NotFP64bit_NotInMicroMips_NotMips32r6_NotMips64r6,
     265             :   GIFBS_HasMadd4_HasMips4_32r2_HasStdEnc_NoNaNsFPMath_NotFP64bit_NotInMicroMips_NotMips32r6_NotMips64r6,
     266             : };
     267             : const static PredicateBitset FeatureBitsets[] {
     268             :   {}, // GIFBS_Invalid
     269             :   {Feature_HasCnMipsBit, },
     270             :   {Feature_HasDSPBit, },
     271             :   {Feature_HasDSPR2Bit, },
     272             :   {Feature_HasMSABit, },
     273             :   {Feature_InMicroMipsBit, },
     274             :   {Feature_InMips16ModeBit, },
     275             :   {Feature_IsFP64bitBit, },
     276             :   {Feature_NotFP64bitBit, },
     277             :   {Feature_HasDSPBit, Feature_InMicroMipsBit, },
     278             :   {Feature_HasDSPBit, Feature_NotInMicroMipsBit, },
     279             :   {Feature_HasDSPR2Bit, Feature_InMicroMipsBit, },
     280             :   {Feature_HasMSABit, Feature_HasStdEncBit, },
     281             :   {Feature_HasMSABit, Feature_IsBEBit, },
     282             :   {Feature_HasMSABit, Feature_IsLEBit, },
     283             :   {Feature_HasMips32r6Bit, Feature_HasStdEncBit, },
     284             :   {Feature_HasMips32r6Bit, Feature_InMicroMipsBit, },
     285             :   {Feature_HasMips64r2Bit, Feature_HasStdEncBit, },
     286             :   {Feature_HasMips64r6Bit, Feature_HasStdEncBit, },
     287             :   {Feature_HasStdEncBit, Feature_IsNotSoftFloatBit, },
     288             :   {Feature_HasStdEncBit, Feature_NotInMicroMipsBit, },
     289             :   {Feature_HasStdEncBit, Feature_NotMips4_32Bit, },
     290             :   {Feature_InMicroMipsBit, Feature_IsFP64bitBit, },
     291             :   {Feature_InMicroMipsBit, Feature_IsNotSoftFloatBit, },
     292             :   {Feature_InMicroMipsBit, Feature_NotFP64bitBit, },
     293             :   {Feature_InMicroMipsBit, Feature_NotMips32r6Bit, },
     294             :   {Feature_IsGP64bitBit, Feature_NotInMips16ModeBit, },
     295             :   {Feature_AllowFPOpFusionBit, Feature_HasMSABit, Feature_HasStdEncBit, },
     296             :   {Feature_HasMSABit, Feature_HasMips64Bit, Feature_HasStdEncBit, },
     297             :   {Feature_HasMips3Bit, Feature_HasStdEncBit, Feature_IsGP64bitBit, },
     298             :   {Feature_HasMips3Bit, Feature_HasStdEncBit, Feature_NotInMicroMipsBit, },
     299             :   {Feature_HasMips32r2Bit, Feature_HasStdEncBit, Feature_NotInMicroMipsBit, },
     300             :   {Feature_HasMips32r6Bit, Feature_HasStdEncBit, Feature_NotInMicroMipsBit, },
     301             :   {Feature_HasMips32r6Bit, Feature_InMicroMipsBit, Feature_IsNotSoftFloatBit, },
     302             :   {Feature_HasMips64r6Bit, Feature_HasStdEncBit, Feature_NotInMicroMipsBit, },
     303             :   {Feature_HasStdEncBit, Feature_IsFP64bitBit, Feature_NotInMicroMipsBit, },
     304             :   {Feature_HasStdEncBit, Feature_IsFP64bitBit, Feature_NotMips4_32Bit, },
     305             :   {Feature_HasStdEncBit, Feature_IsNotSoftFloatBit, Feature_NotInMicroMipsBit, },
     306             :   {Feature_HasStdEncBit, Feature_NotFP64bitBit, Feature_NotInMicroMipsBit, },
     307             :   {Feature_HasStdEncBit, Feature_NotFP64bitBit, Feature_NotMips4_32Bit, },
     308             :   {Feature_HasStdEncBit, Feature_NotInMicroMipsBit, Feature_RelocNotPICBit, },
     309             :   {Feature_InMicroMipsBit, Feature_IsFP64bitBit, Feature_IsNotSoftFloatBit, },
     310             :   {Feature_InMicroMipsBit, Feature_IsNotSoftFloatBit, Feature_NotFP64bitBit, },
     311             :   {Feature_InMicroMipsBit, Feature_NotFP64bitBit, Feature_NotMips32r6Bit, },
     312             :   {Feature_InMicroMipsBit, Feature_NotMips32r6Bit, Feature_RelocNotPICBit, },
     313             :   {Feature_InMicroMipsBit, Feature_NotMips32r6Bit, Feature_RelocPICBit, },
     314             :   {Feature_HasMips3Bit, Feature_HasStdEncBit, Feature_IsNotSoftFloatBit, Feature_NotInMicroMipsBit, },
     315             :   {Feature_HasMips32r6Bit, Feature_HasStdEncBit, Feature_IsNotSoftFloatBit, Feature_NotInMicroMipsBit, },
     316             :   {Feature_HasMips4_32Bit, Feature_HasStdEncBit, Feature_NotMips32r6Bit, Feature_NotMips64r6Bit, },
     317             :   {Feature_HasMips64Bit, Feature_HasStdEncBit, Feature_NotInMicroMipsBit, Feature_NotMips64r6Bit, },
     318             :   {Feature_HasMips64r2Bit, Feature_HasStdEncBit, Feature_IsGP64bitBit, Feature_NotInMicroMipsBit, },
     319             :   {Feature_HasStdEncBit, Feature_IsFP64bitBit, Feature_IsNotSoftFloatBit, Feature_NotInMicroMipsBit, },
     320             :   {Feature_HasStdEncBit, Feature_IsNotSoftFloatBit, Feature_NotFP64bitBit, Feature_NotInMicroMipsBit, },
     321             :   {Feature_HasMips32Bit, Feature_HasStdEncBit, Feature_NotInMicroMipsBit, Feature_NotMips32r6Bit, Feature_NotMips64r6Bit, },
     322             :   {Feature_HasMips4_32Bit, Feature_HasStdEncBit, Feature_NotInMicroMipsBit, Feature_NotMips32r6Bit, Feature_NotMips64r6Bit, },
     323             :   {Feature_HasMadd4Bit, Feature_InMicroMipsBit, Feature_InMicroMipsBit, Feature_NoNaNsFPMathBit, Feature_NotMips32r6Bit, Feature_NotMips32r6Bit, },
     324             :   {Feature_HasMips4_32Bit, Feature_HasStdEncBit, Feature_IsFP64bitBit, Feature_NotInMicroMipsBit, Feature_NotMips32r6Bit, Feature_NotMips64r6Bit, },
     325             :   {Feature_HasMips4_32Bit, Feature_HasStdEncBit, Feature_IsGP64bitBit, Feature_NotInMicroMipsBit, Feature_NotMips32r6Bit, Feature_NotMips64r6Bit, },
     326             :   {Feature_HasMips4_32Bit, Feature_HasStdEncBit, Feature_NotFP64bitBit, Feature_NotInMicroMipsBit, Feature_NotMips32r6Bit, Feature_NotMips64r6Bit, },
     327             :   {Feature_HasMadd4Bit, Feature_HasMips4_32r2Bit, Feature_HasStdEncBit, Feature_IsNotSoftFloatBit, Feature_NotInMicroMipsBit, Feature_NotMips32r6Bit, Feature_NotMips64r6Bit, },
     328             :   {Feature_HasMadd4Bit, Feature_HasMips4_32r2Bit, Feature_HasStdEncBit, Feature_NoNaNsFPMathBit, Feature_NotInMicroMipsBit, Feature_NotMips32r6Bit, Feature_NotMips64r6Bit, },
     329             :   {Feature_HasMadd4Bit, Feature_InMicroMipsBit, Feature_InMicroMipsBit, Feature_NoNaNsFPMathBit, Feature_NotFP64bitBit, Feature_NotMips32r6Bit, Feature_NotMips32r6Bit, },
     330             :   {Feature_HasMadd4Bit, Feature_HasMips4_32r2Bit, Feature_HasStdEncBit, Feature_IsFP64bitBit, Feature_IsNotSoftFloatBit, Feature_NotInMicroMipsBit, Feature_NotMips32r6Bit, Feature_NotMips64r6Bit, },
     331             :   {Feature_HasMadd4Bit, Feature_HasMips4_32r2Bit, Feature_HasStdEncBit, Feature_IsFP64bitBit, Feature_NoNaNsFPMathBit, Feature_NotInMicroMipsBit, Feature_NotMips32r6Bit, Feature_NotMips64r6Bit, },
     332             :   {Feature_HasMadd4Bit, Feature_HasMips4_32r2Bit, Feature_HasStdEncBit, Feature_IsNotSoftFloatBit, Feature_NotFP64bitBit, Feature_NotInMicroMipsBit, Feature_NotMips32r6Bit, Feature_NotMips64r6Bit, },
     333             :   {Feature_HasMadd4Bit, Feature_HasMips4_32r2Bit, Feature_HasStdEncBit, Feature_NoNaNsFPMathBit, Feature_NotFP64bitBit, Feature_NotInMicroMipsBit, Feature_NotMips32r6Bit, Feature_NotMips64r6Bit, },
     334             : };
     335             : 
     336             : // ComplexPattern predicates.
     337             : enum {
     338             :   GICP_Invalid,
     339             : };
     340             : // See constructor for table contents
     341             : 
     342             : // PatFrag predicates.
     343             : enum {
     344             :   GIPFP_I64_Predicate_immLi16 = GIPFP_I64_Invalid + 1,
     345             :   GIPFP_I64_Predicate_immSExt10,
     346             :   GIPFP_I64_Predicate_immSExt6,
     347             :   GIPFP_I64_Predicate_immSExtAddiur2,
     348             :   GIPFP_I64_Predicate_immSExtAddius5,
     349             :   GIPFP_I64_Predicate_immZExt1,
     350             :   GIPFP_I64_Predicate_immZExt10,
     351             :   GIPFP_I64_Predicate_immZExt1Ptr,
     352             :   GIPFP_I64_Predicate_immZExt2,
     353             :   GIPFP_I64_Predicate_immZExt2Lsa,
     354             :   GIPFP_I64_Predicate_immZExt2Ptr,
     355             :   GIPFP_I64_Predicate_immZExt2Shift,
     356             :   GIPFP_I64_Predicate_immZExt3,
     357             :   GIPFP_I64_Predicate_immZExt3Ptr,
     358             :   GIPFP_I64_Predicate_immZExt4,
     359             :   GIPFP_I64_Predicate_immZExt4Ptr,
     360             :   GIPFP_I64_Predicate_immZExt5,
     361             :   GIPFP_I64_Predicate_immZExt5_64,
     362             :   GIPFP_I64_Predicate_immZExt6,
     363             :   GIPFP_I64_Predicate_immZExt8,
     364             :   GIPFP_I64_Predicate_immZExtAndi16,
     365             :   GIPFP_I64_Predicate_immi32Cst15,
     366             :   GIPFP_I64_Predicate_immi32Cst31,
     367             :   GIPFP_I64_Predicate_immi32Cst7,
     368             : };
     369          14 : bool MipsInstructionSelector::testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const {
     370          14 :   switch (PredicateID) {
     371           0 :   case GIPFP_I64_Predicate_immLi16: {
     372           0 :     return Imm >= -1 && Imm <= 126;
     373             :     llvm_unreachable("ImmediateCode should have returned");
     374             :     return false;
     375             :   }
     376             :   case GIPFP_I64_Predicate_immSExt10: {
     377           0 :     return isInt<10>(Imm);
     378             :     llvm_unreachable("ImmediateCode should have returned");
     379             :     return false;
     380             :   }
     381             :   case GIPFP_I64_Predicate_immSExt6: {
     382           0 :     return isInt<6>(Imm);
     383             :     llvm_unreachable("ImmediateCode should have returned");
     384             :     return false;
     385             :   }
     386           0 :   case GIPFP_I64_Predicate_immSExtAddiur2: {
     387           0 :     return Imm == 1 || Imm == -1 ||
     388           0 :                                            ((Imm % 4 == 0) &&
     389           0 :                                             Imm < 28 && Imm > 0);
     390             :     llvm_unreachable("ImmediateCode should have returned");
     391             :     return false;
     392             :   }
     393           0 :   case GIPFP_I64_Predicate_immSExtAddius5: {
     394           0 :     return Imm >= -8 && Imm <= 7;
     395             :     llvm_unreachable("ImmediateCode should have returned");
     396             :     return false;
     397             :   }
     398           0 :   case GIPFP_I64_Predicate_immZExt1: {
     399           0 :     return isUInt<1>(Imm);
     400             :     llvm_unreachable("ImmediateCode should have returned");
     401             :     return false;
     402             :   }
     403           0 :   case GIPFP_I64_Predicate_immZExt10: {
     404           0 :     return isUInt<10>(Imm);
     405             :     llvm_unreachable("ImmediateCode should have returned");
     406             :     return false;
     407             :   }
     408           0 :   case GIPFP_I64_Predicate_immZExt1Ptr: {
     409           0 :     return isUInt<1>(Imm);
     410             :     llvm_unreachable("ImmediateCode should have returned");
     411             :     return false;
     412             :   }
     413           0 :   case GIPFP_I64_Predicate_immZExt2: {
     414           0 :     return isUInt<2>(Imm);
     415             :     llvm_unreachable("ImmediateCode should have returned");
     416             :     return false;
     417             :   }
     418           0 :   case GIPFP_I64_Predicate_immZExt2Lsa: {
     419           0 :     return isUInt<2>(Imm - 1);
     420             :     llvm_unreachable("ImmediateCode should have returned");
     421             :     return false;
     422             :   }
     423           0 :   case GIPFP_I64_Predicate_immZExt2Ptr: {
     424           0 :     return isUInt<2>(Imm);
     425             :     llvm_unreachable("ImmediateCode should have returned");
     426             :     return false;
     427             :   }
     428           0 :   case GIPFP_I64_Predicate_immZExt2Shift: {
     429           0 :     return Imm >= 1 && Imm <= 8;
     430             :     llvm_unreachable("ImmediateCode should have returned");
     431             :     return false;
     432             :   }
     433           0 :   case GIPFP_I64_Predicate_immZExt3: {
     434           0 :     return isUInt<3>(Imm);
     435             :     llvm_unreachable("ImmediateCode should have returned");
     436             :     return false;
     437             :   }
     438           0 :   case GIPFP_I64_Predicate_immZExt3Ptr: {
     439           0 :     return isUInt<3>(Imm);
     440             :     llvm_unreachable("ImmediateCode should have returned");
     441             :     return false;
     442             :   }
     443           0 :   case GIPFP_I64_Predicate_immZExt4: {
     444           0 :     return isUInt<4>(Imm);
     445             :     llvm_unreachable("ImmediateCode should have returned");
     446             :     return false;
     447             :   }
     448           0 :   case GIPFP_I64_Predicate_immZExt4Ptr: {
     449           0 :     return isUInt<4>(Imm);
     450             :     llvm_unreachable("ImmediateCode should have returned");
     451             :     return false;
     452             :   }
     453          14 :   case GIPFP_I64_Predicate_immZExt5: {
     454          14 :     return Imm == (Imm & 0x1f);
     455             :     llvm_unreachable("ImmediateCode should have returned");
     456             :     return false;
     457             :   }
     458           0 :   case GIPFP_I64_Predicate_immZExt5_64: {
     459           0 :      return Imm == (Imm & 0x1f); 
     460             :     llvm_unreachable("ImmediateCode should have returned");
     461             :     return false;
     462             :   }
     463           0 :   case GIPFP_I64_Predicate_immZExt6: {
     464           0 :     return Imm == (Imm & 0x3f);
     465             :     llvm_unreachable("ImmediateCode should have returned");
     466             :     return false;
     467             :   }
     468           0 :   case GIPFP_I64_Predicate_immZExt8: {
     469           0 :     return isUInt<8>(Imm);
     470             :     llvm_unreachable("ImmediateCode should have returned");
     471             :     return false;
     472             :   }
     473           0 :   case GIPFP_I64_Predicate_immZExtAndi16: {
     474           0 :     return (Imm == 128 || (Imm >= 1 && Imm <= 4) || Imm == 7 || Imm == 8 ||
     475           0 :             Imm == 15 || Imm == 16 || Imm == 31 || Imm == 32 || Imm == 63 ||
     476           0 :             Imm == 64 || Imm == 255 || Imm == 32768 || Imm == 65535 );
     477             :     llvm_unreachable("ImmediateCode should have returned");
     478             :     return false;
     479             :   }
     480           0 :   case GIPFP_I64_Predicate_immi32Cst15: {
     481           0 :     return isUInt<32>(Imm) && Imm == 15;
     482             :     llvm_unreachable("ImmediateCode should have returned");
     483             :     return false;
     484             :   }
     485           0 :   case GIPFP_I64_Predicate_immi32Cst31: {
     486           0 :     return isUInt<32>(Imm) && Imm == 31;
     487             :     llvm_unreachable("ImmediateCode should have returned");
     488             :     return false;
     489             :   }
     490           0 :   case GIPFP_I64_Predicate_immi32Cst7: {
     491           0 :     return isUInt<32>(Imm) && Imm == 7;
     492             :     llvm_unreachable("ImmediateCode should have returned");
     493             :     return false;
     494             :   }
     495             :   }
     496           0 :   llvm_unreachable("Unknown predicate");
     497             :   return false;
     498             : }
     499           0 : bool MipsInstructionSelector::testImmPredicate_APFloat(unsigned PredicateID, const APFloat & Imm) const {
     500           0 :   llvm_unreachable("Unknown predicate");
     501             :   return false;
     502             : }
     503           0 : bool MipsInstructionSelector::testImmPredicate_APInt(unsigned PredicateID, const APInt & Imm) const {
     504           0 :   llvm_unreachable("Unknown predicate");
     505             :   return false;
     506             : }
     507           0 : bool MipsInstructionSelector::testMIPredicate_MI(unsigned PredicateID, const MachineInstr & MI) const {
     508             :   const MachineFunction &MF = *MI.getParent()->getParent();
     509             :   const MachineRegisterInfo &MRI = MF.getRegInfo();
     510             :   (void)MRI;
     511           0 :   llvm_unreachable("Unknown predicate");
     512             :   return false;
     513             : }
     514             : 
     515             : MipsInstructionSelector::ComplexMatcherMemFn
     516             : MipsInstructionSelector::ComplexPredicateFns[] = {
     517             :   nullptr, // GICP_Invalid
     518             : };
     519             : 
     520             : // Custom renderers.
     521             : enum {
     522             :   GICR_Invalid,
     523             : };
     524             : MipsInstructionSelector::CustomRendererFn
     525             : MipsInstructionSelector::CustomRenderers[] = {
     526             :   nullptr, // GICP_Invalid
     527             : };
     528             : 
     529         144 : bool MipsInstructionSelector::selectImpl(MachineInstr &I, CodeGenCoverage &CoverageInfo) const {
     530         144 :   MachineFunction &MF = *I.getParent()->getParent();
     531         144 :   MachineRegisterInfo &MRI = MF.getRegInfo();
     532             :   // FIXME: This should be computed on a per-function basis rather than per-insn.
     533         144 :   AvailableFunctionFeatures = computeAvailableFunctionFeatures(&STI, &MF);
     534         144 :   const PredicateBitset AvailableFeatures = getAvailableFeatures();
     535             :   NewMIVector OutMIs;
     536             :   State.MIs.clear();
     537         144 :   State.MIs.push_back(&I);
     538             : 
     539         144 :   if (executeMatchTable(*this, OutMIs, State, ISelInfo, getMatchTable(), TII, MRI, TRI, RBI, AvailableFeatures, CoverageInfo)) {
     540          64 :     return true;
     541             :   }
     542             : 
     543             :   return false;
     544             : }
     545             : 
     546           0 : const int64_t *MipsInstructionSelector::getMatchTable() const {
     547             :   constexpr static int64_t MatchTable0[] = {
     548             :     GIM_SwitchOpcode, /*MI*/0, /*[*/34, 135, /*)*//*default:*//*Label 42*/ 38274,
     549             :     /*TargetOpcode::G_ADD*//*Label 0*/ 106,
     550             :     /*TargetOpcode::G_SUB*//*Label 1*/ 1283,
     551             :     /*TargetOpcode::G_MUL*//*Label 2*/ 1895,
     552             :     /*TargetOpcode::G_SDIV*//*Label 3*/ 2271,
     553             :     /*TargetOpcode::G_UDIV*//*Label 4*/ 2492,
     554             :     /*TargetOpcode::G_SREM*//*Label 5*/ 2713,
     555             :     /*TargetOpcode::G_UREM*//*Label 6*/ 2934,
     556             :     /*TargetOpcode::G_AND*//*Label 7*/ 3155,
     557             :     /*TargetOpcode::G_OR*//*Label 8*/ 3599,
     558             :     /*TargetOpcode::G_XOR*//*Label 9*/ 3901, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     559             :     /*TargetOpcode::G_BITCAST*//*Label 10*/ 4695, 0, 0,
     560             :     /*TargetOpcode::G_LOAD*//*Label 11*/ 8348,
     561             :     /*TargetOpcode::G_SEXTLOAD*//*Label 12*/ 8414,
     562             :     /*TargetOpcode::G_ZEXTLOAD*//*Label 13*/ 8480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     563             :     /*TargetOpcode::G_INTRINSIC*//*Label 14*/ 8546,
     564             :     /*TargetOpcode::G_INTRINSIC_W_SIDE_EFFECTS*//*Label 15*/ 25057, 0,
     565             :     /*TargetOpcode::G_TRUNC*//*Label 16*/ 29981,
     566             :     /*TargetOpcode::G_CONSTANT*//*Label 17*/ 30038, 0, 0, 0,
     567             :     /*TargetOpcode::G_SEXT*//*Label 18*/ 30098,
     568             :     /*TargetOpcode::G_ZEXT*//*Label 19*/ 30126,
     569             :     /*TargetOpcode::G_SHL*//*Label 20*/ 30211,
     570             :     /*TargetOpcode::G_LSHR*//*Label 21*/ 30735,
     571             :     /*TargetOpcode::G_ASHR*//*Label 22*/ 31259, 0, 0,
     572             :     /*TargetOpcode::G_SELECT*//*Label 23*/ 31740, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     573             :     /*TargetOpcode::G_FADD*//*Label 24*/ 33194,
     574             :     /*TargetOpcode::G_FSUB*//*Label 25*/ 34073,
     575             :     /*TargetOpcode::G_FMUL*//*Label 26*/ 34649,
     576             :     /*TargetOpcode::G_FMA*//*Label 27*/ 35086,
     577             :     /*TargetOpcode::G_FDIV*//*Label 28*/ 35176, 0, 0, 0,
     578             :     /*TargetOpcode::G_FEXP2*//*Label 29*/ 35427, 0,
     579             :     /*TargetOpcode::G_FLOG2*//*Label 30*/ 35485,
     580             :     /*TargetOpcode::G_FNEG*//*Label 31*/ 35543,
     581             :     /*TargetOpcode::G_FPEXT*//*Label 32*/ 36839,
     582             :     /*TargetOpcode::G_FPTRUNC*//*Label 33*/ 36988,
     583             :     /*TargetOpcode::G_FPTOSI*//*Label 34*/ 37116,
     584             :     /*TargetOpcode::G_FPTOUI*//*Label 35*/ 37174,
     585             :     /*TargetOpcode::G_SITOFP*//*Label 36*/ 37232,
     586             :     /*TargetOpcode::G_UITOFP*//*Label 37*/ 37385, 0, 0, 0,
     587             :     /*TargetOpcode::G_BR*//*Label 38*/ 37443, 0, 0, 0, 0, 0,
     588             :     /*TargetOpcode::G_CTLZ*//*Label 39*/ 37528, 0,
     589             :     /*TargetOpcode::G_CTPOP*//*Label 40*/ 37963,
     590             :     /*TargetOpcode::G_BSWAP*//*Label 41*/ 38122,
     591             :     // Label 0: @106
     592             :     GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 9, /*)*//*default:*//*Label 51*/ 1282,
     593             :     /*GILLT_s32*//*Label 43*/ 120,
     594             :     /*GILLT_s64*//*Label 44*/ 469,
     595             :     /*GILLT_v2s16*//*Label 45*/ 632,
     596             :     /*GILLT_v2s64*//*Label 46*/ 659,
     597             :     /*GILLT_v4s8*//*Label 47*/ 808,
     598             :     /*GILLT_v4s32*//*Label 48*/ 835,
     599             :     /*GILLT_v8s16*//*Label 49*/ 984,
     600             :     /*GILLT_v16s8*//*Label 50*/ 1133,
     601             :     // Label 43: @120
     602             :     GIM_Try, /*On fail goto*//*Label 52*/ 468,
     603             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
     604             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
     605             :       GIM_Try, /*On fail goto*//*Label 53*/ 198, // Rule ID 2309 //
     606             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
     607             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
     608             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     609             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SHL,
     610             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
     611             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
     612             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
     613             :         GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
     614             :         GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
     615             :         GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_immZExt2Lsa,
     616             :         // MIs[2] Operand 1
     617             :         // No operand predicates
     618             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
     619             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
     620             :         GIM_CheckIsSafeToFold, /*InsnID*/2,
     621             :         // (add:{ *:[i32] } (shl:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, (imm:{ *:[i32] })<<P:Predicate_immZExt2Lsa>>:$sa), GPR32Opnd:{ *:[i32] }:$rt)  =>  (LSA:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt, (imm:{ *:[i32] }):$sa)
     622             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::LSA,
     623             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
     624             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs
     625             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
     626             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // sa
     627             :         GIR_EraseFromParent, /*InsnID*/0,
     628             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
     629             :         // GIR_Coverage, 2309,
     630             :         GIR_Done,
     631             :       // Label 53: @198
     632             :       GIM_Try, /*On fail goto*//*Label 54*/ 266, // Rule ID 802 //
     633             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
     634             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
     635             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
     636             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     637             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SHL,
     638             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
     639             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
     640             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
     641             :         GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
     642             :         GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
     643             :         GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_immZExt2Lsa,
     644             :         // MIs[2] Operand 1
     645             :         // No operand predicates
     646             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
     647             :         GIM_CheckIsSafeToFold, /*InsnID*/2,
     648             :         // (add:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rt, (shl:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, (imm:{ *:[i32] })<<P:Predicate_immZExt2Lsa>>:$sa))  =>  (LSA:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt, (imm:{ *:[i32] }):$sa)
     649             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::LSA,
     650             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
     651             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs
     652             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rt
     653             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // sa
     654             :         GIR_EraseFromParent, /*InsnID*/0,
     655             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
     656             :         // GIR_Coverage, 802,
     657             :         GIR_Done,
     658             :       // Label 54: @266
     659             :       GIM_Try, /*On fail goto*//*Label 55*/ 309, // Rule ID 2084 //
     660             :         GIM_CheckFeatures, GIFBS_InMicroMips,
     661             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPRMM16RegClassID,
     662             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPRMM16RegClassID,
     663             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     664             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
     665             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immSExtAddiur2,
     666             :         // MIs[1] Operand 1
     667             :         // No operand predicates
     668             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
     669             :         // (add:{ *:[i32] } GPRMM16:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_immSExtAddiur2>>:$imm)  =>  (ADDIUR2_MM:{ *:[i32] } GPRMM16:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_immSExtAddiur2>>:$imm)
     670             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ADDIUR2_MM,
     671             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
     672             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
     673             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
     674             :         GIR_EraseFromParent, /*InsnID*/0,
     675             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
     676             :         // GIR_Coverage, 2084,
     677             :         GIR_Done,
     678             :       // Label 55: @309
     679             :       GIM_Try, /*On fail goto*//*Label 56*/ 352, // Rule ID 2085 //
     680             :         GIM_CheckFeatures, GIFBS_InMicroMips,
     681             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
     682             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
     683             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     684             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
     685             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immSExtAddius5,
     686             :         // MIs[1] Operand 1
     687             :         // No operand predicates
     688             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
     689             :         // (add:{ *:[i32] } GPR32:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_immSExtAddius5>>:$imm)  =>  (ADDIUS5_MM:{ *:[i32] } GPR32:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_immSExtAddius5>>:$imm)
     690             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ADDIUS5_MM,
     691             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
     692             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
     693             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
     694             :         GIR_EraseFromParent, /*InsnID*/0,
     695             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
     696             :         // GIR_Coverage, 2085,
     697             :         GIR_Done,
     698             :       // Label 56: @352
     699             :       GIM_Try, /*On fail goto*//*Label 57*/ 375, // Rule ID 1174 //
     700             :         GIM_CheckFeatures, GIFBS_HasMips32r6_InMicroMips,
     701             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPRMM16RegClassID,
     702             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPRMM16RegClassID,
     703             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPRMM16RegClassID,
     704             :         // (add:{ *:[i32] } GPRMM16Opnd:{ *:[i32] }:$rs, GPRMM16Opnd:{ *:[i32] }:$rt)  =>  (ADDU16_MMR6:{ *:[i32] } GPRMM16Opnd:{ *:[i32] }:$rs, GPRMM16Opnd:{ *:[i32] }:$rt)
     705             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::ADDU16_MMR6,
     706             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
     707             :         // GIR_Coverage, 1174,
     708             :         GIR_Done,
     709             :       // Label 57: @375
     710             :       GIM_Try, /*On fail goto*//*Label 58*/ 398, // Rule ID 34 //
     711             :         GIM_CheckFeatures, GIFBS_HasStdEnc_NotInMicroMips,
     712             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
     713             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
     714             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
     715             :         // (add:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (ADDu:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
     716             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::ADDu,
     717             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
     718             :         // GIR_Coverage, 34,
     719             :         GIR_Done,
     720             :       // Label 58: @398
     721             :       GIM_Try, /*On fail goto*//*Label 59*/ 421, // Rule ID 1028 //
     722             :         GIM_CheckFeatures, GIFBS_InMicroMips_NotMips32r6,
     723             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPRMM16RegClassID,
     724             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPRMM16RegClassID,
     725             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPRMM16RegClassID,
     726             :         // (add:{ *:[i32] } GPRMM16Opnd:{ *:[i32] }:$rs, GPRMM16Opnd:{ *:[i32] }:$rt)  =>  (ADDU16_MM:{ *:[i32] } GPRMM16Opnd:{ *:[i32] }:$rs, GPRMM16Opnd:{ *:[i32] }:$rt)
     727             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::ADDU16_MM,
     728             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
     729             :         // GIR_Coverage, 1028,
     730             :         GIR_Done,
     731             :       // Label 59: @421
     732             :       GIM_Try, /*On fail goto*//*Label 60*/ 444, // Rule ID 1040 //
     733             :         GIM_CheckFeatures, GIFBS_InMicroMips_NotMips32r6,
     734             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
     735             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
     736             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
     737             :         // (add:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (ADDu_MM:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
     738             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::ADDu_MM,
     739             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
     740             :         // GIR_Coverage, 1040,
     741             :         GIR_Done,
     742             :       // Label 60: @444
     743             :       GIM_Try, /*On fail goto*//*Label 61*/ 467, // Rule ID 1745 //
     744             :         GIM_CheckFeatures, GIFBS_InMips16Mode,
     745             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::CPU16RegsRegClassID,
     746             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::CPU16RegsRegClassID,
     747             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::CPU16RegsRegClassID,
     748             :         // (add:{ *:[i32] } CPU16Regs:{ *:[i32] }:$l, CPU16Regs:{ *:[i32] }:$r)  =>  (AdduRxRyRz16:{ *:[i32] } CPU16Regs:{ *:[i32] }:$l, CPU16Regs:{ *:[i32] }:$r)
     749             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::AdduRxRyRz16,
     750             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
     751             :         // GIR_Coverage, 1745,
     752             :         GIR_Done,
     753             :       // Label 61: @467
     754             :       GIM_Reject,
     755             :     // Label 52: @468
     756             :     GIM_Reject,
     757             :     // Label 44: @469
     758             :     GIM_Try, /*On fail goto*//*Label 62*/ 631,
     759             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
     760             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
     761             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR64RegClassID,
     762             :       GIM_Try, /*On fail goto*//*Label 63*/ 547, // Rule ID 2310 //
     763             :         GIM_CheckFeatures, GIFBS_HasMSA_HasMips64_HasStdEnc,
     764             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     765             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SHL,
     766             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
     767             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
     768             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::GPR64RegClassID,
     769             :         GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
     770             :         GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
     771             :         GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_immZExt2Lsa,
     772             :         // MIs[2] Operand 1
     773             :         // No operand predicates
     774             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR64RegClassID,
     775             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
     776             :         GIM_CheckIsSafeToFold, /*InsnID*/2,
     777             :         // (add:{ *:[i64] } (shl:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rs, (imm:{ *:[i32] })<<P:Predicate_immZExt2Lsa>>:$sa), GPR64Opnd:{ *:[i64] }:$rt)  =>  (DLSA:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rs, GPR64Opnd:{ *:[i64] }:$rt, (imm:{ *:[i32] }):$sa)
     778             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::DLSA,
     779             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
     780             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs
     781             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
     782             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // sa
     783             :         GIR_EraseFromParent, /*InsnID*/0,
     784             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
     785             :         // GIR_Coverage, 2310,
     786             :         GIR_Done,
     787             :       // Label 63: @547
     788             :       GIM_Try, /*On fail goto*//*Label 64*/ 611, // Rule ID 803 //
     789             :         GIM_CheckFeatures, GIFBS_HasMSA_HasMips64_HasStdEnc,
     790             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR64RegClassID,
     791             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     792             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SHL,
     793             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
     794             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
     795             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::GPR64RegClassID,
     796             :         GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
     797             :         GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
     798             :         GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_immZExt2Lsa,
     799             :         // MIs[2] Operand 1
     800             :         // No operand predicates
     801             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
     802             :         GIM_CheckIsSafeToFold, /*InsnID*/2,
     803             :         // (add:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rt, (shl:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rs, (imm:{ *:[i32] })<<P:Predicate_immZExt2Lsa>>:$sa))  =>  (DLSA:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rs, GPR64Opnd:{ *:[i64] }:$rt, (imm:{ *:[i32] }):$sa)
     804             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::DLSA,
     805             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
     806             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs
     807             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rt
     808             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // sa
     809             :         GIR_EraseFromParent, /*InsnID*/0,
     810             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
     811             :         // GIR_Coverage, 803,
     812             :         GIR_Done,
     813             :       // Label 64: @611
     814             :       GIM_Try, /*On fail goto*//*Label 65*/ 630, // Rule ID 180 //
     815             :         GIM_CheckFeatures, GIFBS_HasMips3_HasStdEnc_NotInMicroMips,
     816             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR64RegClassID,
     817             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR64RegClassID,
     818             :         // (add:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rs, GPR64Opnd:{ *:[i64] }:$rt)  =>  (DADDu:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rs, GPR64Opnd:{ *:[i64] }:$rt)
     819             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::DADDu,
     820             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
     821             :         // GIR_Coverage, 180,
     822             :         GIR_Done,
     823             :       // Label 65: @630
     824             :       GIM_Reject,
     825             :     // Label 62: @631
     826             :     GIM_Reject,
     827             :     // Label 45: @632
     828             :     GIM_Try, /*On fail goto*//*Label 66*/ 658, // Rule ID 1844 //
     829             :       GIM_CheckFeatures, GIFBS_HasDSP,
     830             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s16,
     831             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
     832             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
     833             :       // (add:{ *:[v2i16] } v2i16:{ *:[v2i16] }:$a, v2i16:{ *:[v2i16] }:$b)  =>  (ADDQ_PH:{ *:[v2i16] } v2i16:{ *:[v2i16] }:$a, v2i16:{ *:[v2i16] }:$b)
     834             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::ADDQ_PH,
     835             :       GIR_AddImplicitDef, /*InsnID*/0, Mips::DSPOutFlag20,
     836             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
     837             :       // GIR_Coverage, 1844,
     838             :       GIR_Done,
     839             :     // Label 66: @658
     840             :     GIM_Reject,
     841             :     // Label 46: @659
     842             :     GIM_Try, /*On fail goto*//*Label 67*/ 807,
     843             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
     844             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
     845             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
     846             :       GIM_Try, /*On fail goto*//*Label 68*/ 730, // Rule ID 2314 //
     847             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
     848             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     849             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
     850             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
     851             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
     852             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::MSA128DRegClassID,
     853             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
     854             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
     855             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
     856             :         // (add:{ *:[v2i64] } (mul:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt), MSA128DOpnd:{ *:[v2i64] }:$wd_in)  =>  (MADDV_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$wd_in, MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)
     857             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MADDV_D,
     858             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
     859             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // wd_in
     860             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // ws
     861             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // wt
     862             :         GIR_EraseFromParent, /*InsnID*/0,
     863             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
     864             :         // GIR_Coverage, 2314,
     865             :         GIR_Done,
     866             :       // Label 68: @730
     867             :       GIM_Try, /*On fail goto*//*Label 69*/ 787, // Rule ID 811 //
     868             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
     869             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128DRegClassID,
     870             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     871             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
     872             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
     873             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
     874             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::MSA128DRegClassID,
     875             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
     876             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
     877             :         // (add:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$wd_in, (mul:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt))  =>  (MADDV_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$wd_in, MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)
     878             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MADDV_D,
     879             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
     880             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // wd_in
     881             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // ws
     882             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // wt
     883             :         GIR_EraseFromParent, /*InsnID*/0,
     884             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
     885             :         // GIR_Coverage, 811,
     886             :         GIR_Done,
     887             :       // Label 69: @787
     888             :       GIM_Try, /*On fail goto*//*Label 70*/ 806, // Rule ID 478 //
     889             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
     890             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128DRegClassID,
     891             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
     892             :         // (add:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)  =>  (ADDV_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)
     893             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::ADDV_D,
     894             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
     895             :         // GIR_Coverage, 478,
     896             :         GIR_Done,
     897             :       // Label 70: @806
     898             :       GIM_Reject,
     899             :     // Label 67: @807
     900             :     GIM_Reject,
     901             :     // Label 47: @808
     902             :     GIM_Try, /*On fail goto*//*Label 71*/ 834, // Rule ID 1850 //
     903             :       GIM_CheckFeatures, GIFBS_HasDSP,
     904             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s8,
     905             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
     906             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
     907             :       // (add:{ *:[v4i8] } v4i8:{ *:[v4i8] }:$a, v4i8:{ *:[v4i8] }:$b)  =>  (ADDU_QB:{ *:[v4i8] } v4i8:{ *:[v4i8] }:$a, v4i8:{ *:[v4i8] }:$b)
     908             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::ADDU_QB,
     909             :       GIR_AddImplicitDef, /*InsnID*/0, Mips::DSPOutFlag20,
     910             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
     911             :       // GIR_Coverage, 1850,
     912             :       GIR_Done,
     913             :     // Label 71: @834
     914             :     GIM_Reject,
     915             :     // Label 48: @835
     916             :     GIM_Try, /*On fail goto*//*Label 72*/ 983,
     917             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
     918             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
     919             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
     920             :       GIM_Try, /*On fail goto*//*Label 73*/ 906, // Rule ID 2313 //
     921             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
     922             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     923             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
     924             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s32,
     925             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s32,
     926             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::MSA128WRegClassID,
     927             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
     928             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
     929             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
     930             :         // (add:{ *:[v4i32] } (mul:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt), MSA128WOpnd:{ *:[v4i32] }:$wd_in)  =>  (MADDV_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$wd_in, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
     931             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MADDV_W,
     932             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
     933             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // wd_in
     934             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // ws
     935             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // wt
     936             :         GIR_EraseFromParent, /*InsnID*/0,
     937             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
     938             :         // GIR_Coverage, 2313,
     939             :         GIR_Done,
     940             :       // Label 73: @906
     941             :       GIM_Try, /*On fail goto*//*Label 74*/ 963, // Rule ID 810 //
     942             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
     943             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128WRegClassID,
     944             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     945             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
     946             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s32,
     947             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s32,
     948             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::MSA128WRegClassID,
     949             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
     950             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
     951             :         // (add:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$wd_in, (mul:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt))  =>  (MADDV_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$wd_in, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
     952             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MADDV_W,
     953             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
     954             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // wd_in
     955             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // ws
     956             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // wt
     957             :         GIR_EraseFromParent, /*InsnID*/0,
     958             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
     959             :         // GIR_Coverage, 810,
     960             :         GIR_Done,
     961             :       // Label 74: @963
     962             :       GIM_Try, /*On fail goto*//*Label 75*/ 982, // Rule ID 477 //
     963             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
     964             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128WRegClassID,
     965             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
     966             :         // (add:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (ADDV_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
     967             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::ADDV_W,
     968             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
     969             :         // GIR_Coverage, 477,
     970             :         GIR_Done,
     971             :       // Label 75: @982
     972             :       GIM_Reject,
     973             :     // Label 72: @983
     974             :     GIM_Reject,
     975             :     // Label 49: @984
     976             :     GIM_Try, /*On fail goto*//*Label 76*/ 1132,
     977             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
     978             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
     979             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
     980             :       GIM_Try, /*On fail goto*//*Label 77*/ 1055, // Rule ID 2312 //
     981             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
     982             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     983             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
     984             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s16,
     985             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s16,
     986             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::MSA128HRegClassID,
     987             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
     988             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
     989             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
     990             :         // (add:{ *:[v8i16] } (mul:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt), MSA128HOpnd:{ *:[v8i16] }:$wd_in)  =>  (MADDV_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$wd_in, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
     991             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MADDV_H,
     992             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
     993             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // wd_in
     994             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // ws
     995             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // wt
     996             :         GIR_EraseFromParent, /*InsnID*/0,
     997             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
     998             :         // GIR_Coverage, 2312,
     999             :         GIR_Done,
    1000             :       // Label 77: @1055
    1001             :       GIM_Try, /*On fail goto*//*Label 78*/ 1112, // Rule ID 809 //
    1002             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    1003             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128HRegClassID,
    1004             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    1005             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
    1006             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s16,
    1007             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s16,
    1008             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::MSA128HRegClassID,
    1009             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    1010             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    1011             :         // (add:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$wd_in, (mul:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt))  =>  (MADDV_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$wd_in, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
    1012             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MADDV_H,
    1013             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    1014             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // wd_in
    1015             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // ws
    1016             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // wt
    1017             :         GIR_EraseFromParent, /*InsnID*/0,
    1018             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1019             :         // GIR_Coverage, 809,
    1020             :         GIR_Done,
    1021             :       // Label 78: @1112
    1022             :       GIM_Try, /*On fail goto*//*Label 79*/ 1131, // Rule ID 476 //
    1023             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    1024             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128HRegClassID,
    1025             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    1026             :         // (add:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (ADDV_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
    1027             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::ADDV_H,
    1028             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1029             :         // GIR_Coverage, 476,
    1030             :         GIR_Done,
    1031             :       // Label 79: @1131
    1032             :       GIM_Reject,
    1033             :     // Label 76: @1132
    1034             :     GIM_Reject,
    1035             :     // Label 50: @1133
    1036             :     GIM_Try, /*On fail goto*//*Label 80*/ 1281,
    1037             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
    1038             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    1039             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    1040             :       GIM_Try, /*On fail goto*//*Label 81*/ 1204, // Rule ID 2311 //
    1041             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    1042             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    1043             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
    1044             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v16s8,
    1045             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v16s8,
    1046             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::MSA128BRegClassID,
    1047             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    1048             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    1049             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    1050             :         // (add:{ *:[v16i8] } (mul:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt), MSA128BOpnd:{ *:[v16i8] }:$wd_in)  =>  (MADDV_B:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$wd_in, MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
    1051             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MADDV_B,
    1052             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    1053             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // wd_in
    1054             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // ws
    1055             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // wt
    1056             :         GIR_EraseFromParent, /*InsnID*/0,
    1057             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1058             :         // GIR_Coverage, 2311,
    1059             :         GIR_Done,
    1060             :       // Label 81: @1204
    1061             :       GIM_Try, /*On fail goto*//*Label 82*/ 1261, // Rule ID 808 //
    1062             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    1063             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128BRegClassID,
    1064             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    1065             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
    1066             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v16s8,
    1067             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v16s8,
    1068             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::MSA128BRegClassID,
    1069             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    1070             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    1071             :         // (add:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$wd_in, (mul:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt))  =>  (MADDV_B:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$wd_in, MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
    1072             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MADDV_B,
    1073             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    1074             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // wd_in
    1075             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // ws
    1076             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // wt
    1077             :         GIR_EraseFromParent, /*InsnID*/0,
    1078             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1079             :         // GIR_Coverage, 808,
    1080             :         GIR_Done,
    1081             :       // Label 82: @1261
    1082             :       GIM_Try, /*On fail goto*//*Label 83*/ 1280, // Rule ID 475 //
    1083             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    1084             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128BRegClassID,
    1085             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    1086             :         // (add:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)  =>  (ADDV_B:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
    1087             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::ADDV_B,
    1088             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1089             :         // GIR_Coverage, 475,
    1090             :         GIR_Done,
    1091             :       // Label 83: @1280
    1092             :       GIM_Reject,
    1093             :     // Label 80: @1281
    1094             :     GIM_Reject,
    1095             :     // Label 51: @1282
    1096             :     GIM_Reject,
    1097             :     // Label 1: @1283
    1098             :     GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 9, /*)*//*default:*//*Label 92*/ 1894,
    1099             :     /*GILLT_s32*//*Label 84*/ 1297,
    1100             :     /*GILLT_s64*//*Label 85*/ 1456,
    1101             :     /*GILLT_v2s16*//*Label 86*/ 1488,
    1102             :     /*GILLT_v2s64*//*Label 87*/ 1515,
    1103             :     /*GILLT_v4s8*//*Label 88*/ 1603,
    1104             :     /*GILLT_v4s32*//*Label 89*/ 1630,
    1105             :     /*GILLT_v8s16*//*Label 90*/ 1718,
    1106             :     /*GILLT_v16s8*//*Label 91*/ 1806,
    1107             :     // Label 84: @1297
    1108             :     GIM_Try, /*On fail goto*//*Label 93*/ 1455,
    1109             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
    1110             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    1111             :       GIM_Try, /*On fail goto*//*Label 94*/ 1339, // Rule ID 1744 //
    1112             :         GIM_CheckFeatures, GIFBS_InMips16Mode,
    1113             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::CPU16RegsRegClassID,
    1114             :         GIM_CheckConstantInt, /*MI*/0, /*Op*/1, 0,
    1115             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::CPU16RegsRegClassID,
    1116             :         // (sub:{ *:[i32] } 0:{ *:[i32] }, CPU16Regs:{ *:[i32] }:$r)  =>  (NegRxRy16:{ *:[i32] } CPU16Regs:{ *:[i32] }:$r)
    1117             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::NegRxRy16,
    1118             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rx
    1119             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // r
    1120             :         GIR_EraseFromParent, /*InsnID*/0,
    1121             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1122             :         // GIR_Coverage, 1744,
    1123             :         GIR_Done,
    1124             :       // Label 94: @1339
    1125             :       GIM_Try, /*On fail goto*//*Label 95*/ 1362, // Rule ID 1176 //
    1126             :         GIM_CheckFeatures, GIFBS_HasMips32r6_InMicroMips,
    1127             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPRMM16RegClassID,
    1128             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPRMM16RegClassID,
    1129             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPRMM16RegClassID,
    1130             :         // (sub:{ *:[i32] } GPRMM16Opnd:{ *:[i32] }:$rs, GPRMM16Opnd:{ *:[i32] }:$rt)  =>  (SUBU16_MMR6:{ *:[i32] } GPRMM16Opnd:{ *:[i32] }:$rs, GPRMM16Opnd:{ *:[i32] }:$rt)
    1131             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::SUBU16_MMR6,
    1132             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1133             :         // GIR_Coverage, 1176,
    1134             :         GIR_Done,
    1135             :       // Label 95: @1362
    1136             :       GIM_Try, /*On fail goto*//*Label 96*/ 1385, // Rule ID 35 //
    1137             :         GIM_CheckFeatures, GIFBS_HasStdEnc_NotInMicroMips,
    1138             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    1139             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
    1140             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    1141             :         // (sub:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (SUBu:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
    1142             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::SUBu,
    1143             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1144             :         // GIR_Coverage, 35,
    1145             :         GIR_Done,
    1146             :       // Label 96: @1385
    1147             :       GIM_Try, /*On fail goto*//*Label 97*/ 1408, // Rule ID 1032 //
    1148             :         GIM_CheckFeatures, GIFBS_InMicroMips_NotMips32r6,
    1149             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPRMM16RegClassID,
    1150             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPRMM16RegClassID,
    1151             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPRMM16RegClassID,
    1152             :         // (sub:{ *:[i32] } GPRMM16Opnd:{ *:[i32] }:$rs, GPRMM16Opnd:{ *:[i32] }:$rt)  =>  (SUBU16_MM:{ *:[i32] } GPRMM16Opnd:{ *:[i32] }:$rs, GPRMM16Opnd:{ *:[i32] }:$rt)
    1153             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::SUBU16_MM,
    1154             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1155             :         // GIR_Coverage, 1032,
    1156             :         GIR_Done,
    1157             :       // Label 97: @1408
    1158             :       GIM_Try, /*On fail goto*//*Label 98*/ 1431, // Rule ID 1041 //
    1159             :         GIM_CheckFeatures, GIFBS_InMicroMips_NotMips32r6,
    1160             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    1161             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
    1162             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    1163             :         // (sub:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (SUBu_MM:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
    1164             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::SUBu_MM,
    1165             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1166             :         // GIR_Coverage, 1041,
    1167             :         GIR_Done,
    1168             :       // Label 98: @1431
    1169             :       GIM_Try, /*On fail goto*//*Label 99*/ 1454, // Rule ID 1749 //
    1170             :         GIM_CheckFeatures, GIFBS_InMips16Mode,
    1171             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::CPU16RegsRegClassID,
    1172             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::CPU16RegsRegClassID,
    1173             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::CPU16RegsRegClassID,
    1174             :         // (sub:{ *:[i32] } CPU16Regs:{ *:[i32] }:$l, CPU16Regs:{ *:[i32] }:$r)  =>  (SubuRxRyRz16:{ *:[i32] } CPU16Regs:{ *:[i32] }:$l, CPU16Regs:{ *:[i32] }:$r)
    1175             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::SubuRxRyRz16,
    1176             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1177             :         // GIR_Coverage, 1749,
    1178             :         GIR_Done,
    1179             :       // Label 99: @1454
    1180             :       GIM_Reject,
    1181             :     // Label 93: @1455
    1182             :     GIM_Reject,
    1183             :     // Label 85: @1456
    1184             :     GIM_Try, /*On fail goto*//*Label 100*/ 1487, // Rule ID 181 //
    1185             :       GIM_CheckFeatures, GIFBS_HasMips3_HasStdEnc_NotInMicroMips,
    1186             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
    1187             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
    1188             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR64RegClassID,
    1189             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR64RegClassID,
    1190             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR64RegClassID,
    1191             :       // (sub:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rs, GPR64Opnd:{ *:[i64] }:$rt)  =>  (DSUBu:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rs, GPR64Opnd:{ *:[i64] }:$rt)
    1192             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::DSUBu,
    1193             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1194             :       // GIR_Coverage, 181,
    1195             :       GIR_Done,
    1196             :     // Label 100: @1487
    1197             :     GIM_Reject,
    1198             :     // Label 86: @1488
    1199             :     GIM_Try, /*On fail goto*//*Label 101*/ 1514, // Rule ID 1846 //
    1200             :       GIM_CheckFeatures, GIFBS_HasDSP,
    1201             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s16,
    1202             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
    1203             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    1204             :       // (sub:{ *:[v2i16] } v2i16:{ *:[v2i16] }:$a, v2i16:{ *:[v2i16] }:$b)  =>  (SUBQ_PH:{ *:[v2i16] } v2i16:{ *:[v2i16] }:$a, v2i16:{ *:[v2i16] }:$b)
    1205             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::SUBQ_PH,
    1206             :       GIR_AddImplicitDef, /*InsnID*/0, Mips::DSPOutFlag20,
    1207             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1208             :       // GIR_Coverage, 1846,
    1209             :       GIR_Done,
    1210             :     // Label 101: @1514
    1211             :     GIM_Reject,
    1212             :     // Label 87: @1515
    1213             :     GIM_Try, /*On fail goto*//*Label 102*/ 1602,
    1214             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    1215             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    1216             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    1217             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128DRegClassID,
    1218             :       GIM_Try, /*On fail goto*//*Label 103*/ 1586, // Rule ID 867 //
    1219             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    1220             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    1221             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
    1222             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
    1223             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
    1224             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::MSA128DRegClassID,
    1225             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    1226             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    1227             :         // (sub:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$wd_in, (mul:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt))  =>  (MSUBV_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$wd_in, MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)
    1228             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MSUBV_D,
    1229             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    1230             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // wd_in
    1231             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // ws
    1232             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // wt
    1233             :         GIR_EraseFromParent, /*InsnID*/0,
    1234             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1235             :         // GIR_Coverage, 867,
    1236             :         GIR_Done,
    1237             :       // Label 103: @1586
    1238             :       GIM_Try, /*On fail goto*//*Label 104*/ 1601, // Rule ID 996 //
    1239             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    1240             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    1241             :         // (sub:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)  =>  (SUBV_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)
    1242             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::SUBV_D,
    1243             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1244             :         // GIR_Coverage, 996,
    1245             :         GIR_Done,
    1246             :       // Label 104: @1601
    1247             :       GIM_Reject,
    1248             :     // Label 102: @1602
    1249             :     GIM_Reject,
    1250             :     // Label 88: @1603
    1251             :     GIM_Try, /*On fail goto*//*Label 105*/ 1629, // Rule ID 1852 //
    1252             :       GIM_CheckFeatures, GIFBS_HasDSP,
    1253             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s8,
    1254             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
    1255             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    1256             :       // (sub:{ *:[v4i8] } v4i8:{ *:[v4i8] }:$a, v4i8:{ *:[v4i8] }:$b)  =>  (SUBU_QB:{ *:[v4i8] } v4i8:{ *:[v4i8] }:$a, v4i8:{ *:[v4i8] }:$b)
    1257             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::SUBU_QB,
    1258             :       GIR_AddImplicitDef, /*InsnID*/0, Mips::DSPOutFlag20,
    1259             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1260             :       // GIR_Coverage, 1852,
    1261             :       GIR_Done,
    1262             :     // Label 105: @1629
    1263             :     GIM_Reject,
    1264             :     // Label 89: @1630
    1265             :     GIM_Try, /*On fail goto*//*Label 106*/ 1717,
    1266             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
    1267             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    1268             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    1269             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128WRegClassID,
    1270             :       GIM_Try, /*On fail goto*//*Label 107*/ 1701, // Rule ID 866 //
    1271             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    1272             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    1273             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
    1274             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s32,
    1275             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s32,
    1276             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::MSA128WRegClassID,
    1277             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    1278             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    1279             :         // (sub:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$wd_in, (mul:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt))  =>  (MSUBV_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$wd_in, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
    1280             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MSUBV_W,
    1281             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    1282             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // wd_in
    1283             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // ws
    1284             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // wt
    1285             :         GIR_EraseFromParent, /*InsnID*/0,
    1286             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1287             :         // GIR_Coverage, 866,
    1288             :         GIR_Done,
    1289             :       // Label 107: @1701
    1290             :       GIM_Try, /*On fail goto*//*Label 108*/ 1716, // Rule ID 995 //
    1291             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    1292             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    1293             :         // (sub:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (SUBV_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
    1294             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::SUBV_W,
    1295             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1296             :         // GIR_Coverage, 995,
    1297             :         GIR_Done,
    1298             :       // Label 108: @1716
    1299             :       GIM_Reject,
    1300             :     // Label 106: @1717
    1301             :     GIM_Reject,
    1302             :     // Label 90: @1718
    1303             :     GIM_Try, /*On fail goto*//*Label 109*/ 1805,
    1304             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
    1305             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    1306             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    1307             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128HRegClassID,
    1308             :       GIM_Try, /*On fail goto*//*Label 110*/ 1789, // Rule ID 865 //
    1309             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    1310             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    1311             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
    1312             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s16,
    1313             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s16,
    1314             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::MSA128HRegClassID,
    1315             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    1316             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    1317             :         // (sub:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$wd_in, (mul:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt))  =>  (MSUBV_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$wd_in, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
    1318             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MSUBV_H,
    1319             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    1320             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // wd_in
    1321             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // ws
    1322             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // wt
    1323             :         GIR_EraseFromParent, /*InsnID*/0,
    1324             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1325             :         // GIR_Coverage, 865,
    1326             :         GIR_Done,
    1327             :       // Label 110: @1789
    1328             :       GIM_Try, /*On fail goto*//*Label 111*/ 1804, // Rule ID 994 //
    1329             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    1330             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    1331             :         // (sub:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (SUBV_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
    1332             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::SUBV_H,
    1333             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1334             :         // GIR_Coverage, 994,
    1335             :         GIR_Done,
    1336             :       // Label 111: @1804
    1337             :       GIM_Reject,
    1338             :     // Label 109: @1805
    1339             :     GIM_Reject,
    1340             :     // Label 91: @1806
    1341             :     GIM_Try, /*On fail goto*//*Label 112*/ 1893,
    1342             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
    1343             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    1344             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    1345             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128BRegClassID,
    1346             :       GIM_Try, /*On fail goto*//*Label 113*/ 1877, // Rule ID 864 //
    1347             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    1348             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    1349             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
    1350             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v16s8,
    1351             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v16s8,
    1352             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::MSA128BRegClassID,
    1353             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    1354             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    1355             :         // (sub:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$wd_in, (mul:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt))  =>  (MSUBV_B:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$wd_in, MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
    1356             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MSUBV_B,
    1357             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    1358             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // wd_in
    1359             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // ws
    1360             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // wt
    1361             :         GIR_EraseFromParent, /*InsnID*/0,
    1362             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1363             :         // GIR_Coverage, 864,
    1364             :         GIR_Done,
    1365             :       // Label 113: @1877
    1366             :       GIM_Try, /*On fail goto*//*Label 114*/ 1892, // Rule ID 993 //
    1367             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    1368             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    1369             :         // (sub:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)  =>  (SUBV_B:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
    1370             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::SUBV_B,
    1371             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1372             :         // GIR_Coverage, 993,
    1373             :         GIR_Done,
    1374             :       // Label 114: @1892
    1375             :       GIM_Reject,
    1376             :     // Label 112: @1893
    1377             :     GIM_Reject,
    1378             :     // Label 92: @1894
    1379             :     GIM_Reject,
    1380             :     // Label 2: @1895
    1381             :     GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 9, /*)*//*default:*//*Label 122*/ 2270,
    1382             :     /*GILLT_s32*//*Label 115*/ 1909,
    1383             :     /*GILLT_s64*//*Label 116*/ 2054,
    1384             :     /*GILLT_v2s16*//*Label 117*/ 2115,
    1385             :     /*GILLT_v2s64*//*Label 118*/ 2142, 0,
    1386             :     /*GILLT_v4s32*//*Label 119*/ 2174,
    1387             :     /*GILLT_v8s16*//*Label 120*/ 2206,
    1388             :     /*GILLT_v16s8*//*Label 121*/ 2238,
    1389             :     // Label 115: @1909
    1390             :     GIM_Try, /*On fail goto*//*Label 123*/ 2053,
    1391             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
    1392             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    1393             :       GIM_Try, /*On fail goto*//*Label 124*/ 1948, // Rule ID 36 //
    1394             :         GIM_CheckFeatures, GIFBS_HasMips32_HasStdEnc_NotInMicroMips_NotMips32r6_NotMips64r6,
    1395             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    1396             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
    1397             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    1398             :         // (mul:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (MUL:{ *:[i32] }:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
    1399             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::MUL,
    1400             :         GIR_AddImplicitDef, /*InsnID*/0, Mips::HI0,
    1401             :         GIR_AddImplicitDef, /*InsnID*/0, Mips::LO0,
    1402             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1403             :         // GIR_Coverage, 36,
    1404             :         GIR_Done,
    1405             :       // Label 124: @1948
    1406             :       GIM_Try, /*On fail goto*//*Label 125*/ 1971, // Rule ID 304 //
    1407             :         GIM_CheckFeatures, GIFBS_HasMips32r6_HasStdEnc_NotInMicroMips,
    1408             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    1409             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
    1410             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    1411             :         // (mul:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (MUL_R6:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
    1412             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::MUL_R6,
    1413             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1414             :         // GIR_Coverage, 304,
    1415             :         GIR_Done,
    1416             :       // Label 125: @1971
    1417             :       GIM_Try, /*On fail goto*//*Label 126*/ 2000, // Rule ID 1042 //
    1418             :         GIM_CheckFeatures, GIFBS_InMicroMips_NotMips32r6,
    1419             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    1420             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
    1421             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    1422             :         // (mul:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (MUL_MM:{ *:[i32] }:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
    1423             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::MUL_MM,
    1424             :         GIR_AddImplicitDef, /*InsnID*/0, Mips::HI0,
    1425             :         GIR_AddImplicitDef, /*InsnID*/0, Mips::LO0,
    1426             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1427             :         // GIR_Coverage, 1042,
    1428             :         GIR_Done,
    1429             :       // Label 126: @2000
    1430             :       GIM_Try, /*On fail goto*//*Label 127*/ 2023, // Rule ID 1145 //
    1431             :         GIM_CheckFeatures, GIFBS_HasMips32r6_InMicroMips,
    1432             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    1433             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
    1434             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    1435             :         // (mul:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (MUL_MMR6:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
    1436             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::MUL_MMR6,
    1437             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1438             :         // GIR_Coverage, 1145,
    1439             :         GIR_Done,
    1440             :       // Label 127: @2023
    1441             :       GIM_Try, /*On fail goto*//*Label 128*/ 2052, // Rule ID 1747 //
    1442             :         GIM_CheckFeatures, GIFBS_InMips16Mode,
    1443             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::CPU16RegsRegClassID,
    1444             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::CPU16RegsRegClassID,
    1445             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::CPU16RegsRegClassID,
    1446             :         // (mul:{ *:[i32] } CPU16Regs:{ *:[i32] }:$l, CPU16Regs:{ *:[i32] }:$r)  =>  (MultRxRyRz16:{ *:[i32] }:{ *:[i32] } CPU16Regs:{ *:[i32] }:$l, CPU16Regs:{ *:[i32] }:$r)
    1447             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::MultRxRyRz16,
    1448             :         GIR_AddImplicitDef, /*InsnID*/0, Mips::HI0,
    1449             :         GIR_AddImplicitDef, /*InsnID*/0, Mips::LO0,
    1450             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1451             :         // GIR_Coverage, 1747,
    1452             :         GIR_Done,
    1453             :       // Label 128: @2052
    1454             :       GIM_Reject,
    1455             :     // Label 123: @2053
    1456             :     GIM_Reject,
    1457             :     // Label 116: @2054
    1458             :     GIM_Try, /*On fail goto*//*Label 129*/ 2114,
    1459             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
    1460             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
    1461             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR64RegClassID,
    1462             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR64RegClassID,
    1463             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR64RegClassID,
    1464             :       GIM_Try, /*On fail goto*//*Label 130*/ 2102, // Rule ID 246 //
    1465             :         GIM_CheckFeatures, GIFBS_HasCnMips,
    1466             :         // (mul:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rs, GPR64Opnd:{ *:[i64] }:$rt)  =>  (DMUL:{ *:[i64] }:{ *:[i32] } GPR64Opnd:{ *:[i64] }:$rs, GPR64Opnd:{ *:[i64] }:$rt)
    1467             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::DMUL,
    1468             :         GIR_AddImplicitDef, /*InsnID*/0, Mips::HI0,
    1469             :         GIR_AddImplicitDef, /*InsnID*/0, Mips::LO0,
    1470             :         GIR_AddImplicitDef, /*InsnID*/0, Mips::P0,
    1471             :         GIR_AddImplicitDef, /*InsnID*/0, Mips::P1,
    1472             :         GIR_AddImplicitDef, /*InsnID*/0, Mips::P2,
    1473             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1474             :         // GIR_Coverage, 246,
    1475             :         GIR_Done,
    1476             :       // Label 130: @2102
    1477             :       GIM_Try, /*On fail goto*//*Label 131*/ 2113, // Rule ID 319 //
    1478             :         GIM_CheckFeatures, GIFBS_HasMips64r6_HasStdEnc_NotInMicroMips,
    1479             :         // (mul:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rs, GPR64Opnd:{ *:[i64] }:$rt)  =>  (DMUL_R6:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rs, GPR64Opnd:{ *:[i64] }:$rt)
    1480             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::DMUL_R6,
    1481             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1482             :         // GIR_Coverage, 319,
    1483             :         GIR_Done,
    1484             :       // Label 131: @2113
    1485             :       GIM_Reject,
    1486             :     // Label 129: @2114
    1487             :     GIM_Reject,
    1488             :     // Label 117: @2115
    1489             :     GIM_Try, /*On fail goto*//*Label 132*/ 2141, // Rule ID 1848 //
    1490             :       GIM_CheckFeatures, GIFBS_HasDSPR2,
    1491             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s16,
    1492             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
    1493             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    1494             :       // (mul:{ *:[v2i16] } v2i16:{ *:[v2i16] }:$a, v2i16:{ *:[v2i16] }:$b)  =>  (MUL_PH:{ *:[v2i16] } v2i16:{ *:[v2i16] }:$a, v2i16:{ *:[v2i16] }:$b)
    1495             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::MUL_PH,
    1496             :       GIR_AddImplicitDef, /*InsnID*/0, Mips::DSPOutFlag21,
    1497             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1498             :       // GIR_Coverage, 1848,
    1499             :       GIR_Done,
    1500             :     // Label 132: @2141
    1501             :     GIM_Reject,
    1502             :     // Label 118: @2142
    1503             :     GIM_Try, /*On fail goto*//*Label 133*/ 2173, // Rule ID 875 //
    1504             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    1505             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    1506             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    1507             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    1508             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128DRegClassID,
    1509             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    1510             :       // (mul:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)  =>  (MULV_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)
    1511             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::MULV_D,
    1512             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1513             :       // GIR_Coverage, 875,
    1514             :       GIR_Done,
    1515             :     // Label 133: @2173
    1516             :     GIM_Reject,
    1517             :     // Label 119: @2174
    1518             :     GIM_Try, /*On fail goto*//*Label 134*/ 2205, // Rule ID 874 //
    1519             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    1520             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
    1521             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    1522             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    1523             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128WRegClassID,
    1524             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    1525             :       // (mul:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (MULV_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
    1526             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::MULV_W,
    1527             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1528             :       // GIR_Coverage, 874,
    1529             :       GIR_Done,
    1530             :     // Label 134: @2205
    1531             :     GIM_Reject,
    1532             :     // Label 120: @2206
    1533             :     GIM_Try, /*On fail goto*//*Label 135*/ 2237, // Rule ID 873 //
    1534             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    1535             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
    1536             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    1537             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    1538             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128HRegClassID,
    1539             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    1540             :       // (mul:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (MULV_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
    1541             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::MULV_H,
    1542             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1543             :       // GIR_Coverage, 873,
    1544             :       GIR_Done,
    1545             :     // Label 135: @2237
    1546             :     GIM_Reject,
    1547             :     // Label 121: @2238
    1548             :     GIM_Try, /*On fail goto*//*Label 136*/ 2269, // Rule ID 872 //
    1549             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    1550             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
    1551             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    1552             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    1553             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128BRegClassID,
    1554             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    1555             :       // (mul:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)  =>  (MULV_B:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
    1556             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::MULV_B,
    1557             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1558             :       // GIR_Coverage, 872,
    1559             :       GIR_Done,
    1560             :     // Label 136: @2269
    1561             :     GIM_Reject,
    1562             :     // Label 122: @2270
    1563             :     GIM_Reject,
    1564             :     // Label 3: @2271
    1565             :     GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 9, /*)*//*default:*//*Label 143*/ 2491,
    1566             :     /*GILLT_s32*//*Label 137*/ 2285,
    1567             :     /*GILLT_s64*//*Label 138*/ 2331, 0,
    1568             :     /*GILLT_v2s64*//*Label 139*/ 2363, 0,
    1569             :     /*GILLT_v4s32*//*Label 140*/ 2395,
    1570             :     /*GILLT_v8s16*//*Label 141*/ 2427,
    1571             :     /*GILLT_v16s8*//*Label 142*/ 2459,
    1572             :     // Label 137: @2285
    1573             :     GIM_Try, /*On fail goto*//*Label 144*/ 2330,
    1574             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
    1575             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    1576             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    1577             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
    1578             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    1579             :       GIM_Try, /*On fail goto*//*Label 145*/ 2318, // Rule ID 298 //
    1580             :         GIM_CheckFeatures, GIFBS_HasMips32r6_HasStdEnc_NotInMicroMips,
    1581             :         // (sdiv:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (DIV:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
    1582             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::DIV,
    1583             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1584             :         // GIR_Coverage, 298,
    1585             :         GIR_Done,
    1586             :       // Label 145: @2318
    1587             :       GIM_Try, /*On fail goto*//*Label 146*/ 2329, // Rule ID 1138 //
    1588             :         GIM_CheckFeatures, GIFBS_HasMips32r6_InMicroMips,
    1589             :         // (sdiv:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (DIV_MMR6:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
    1590             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::DIV_MMR6,
    1591             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1592             :         // GIR_Coverage, 1138,
    1593             :         GIR_Done,
    1594             :       // Label 146: @2329
    1595             :       GIM_Reject,
    1596             :     // Label 144: @2330
    1597             :     GIM_Reject,
    1598             :     // Label 138: @2331
    1599             :     GIM_Try, /*On fail goto*//*Label 147*/ 2362, // Rule ID 313 //
    1600             :       GIM_CheckFeatures, GIFBS_HasMips64r6_HasStdEnc_NotInMicroMips,
    1601             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
    1602             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
    1603             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR64RegClassID,
    1604             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR64RegClassID,
    1605             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR64RegClassID,
    1606             :       // (sdiv:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rs, GPR64Opnd:{ *:[i64] }:$rt)  =>  (DDIV:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rs, GPR64Opnd:{ *:[i64] }:$rt)
    1607             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::DDIV,
    1608             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1609             :       // GIR_Coverage, 313,
    1610             :       GIR_Done,
    1611             :     // Label 147: @2362
    1612             :     GIM_Reject,
    1613             :     // Label 139: @2363
    1614             :     GIM_Try, /*On fail goto*//*Label 148*/ 2394, // Rule ID 615 //
    1615             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    1616             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    1617             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    1618             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    1619             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128DRegClassID,
    1620             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    1621             :       // (sdiv:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)  =>  (DIV_S_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)
    1622             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::DIV_S_D,
    1623             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1624             :       // GIR_Coverage, 615,
    1625             :       GIR_Done,
    1626             :     // Label 148: @2394
    1627             :     GIM_Reject,
    1628             :     // Label 140: @2395
    1629             :     GIM_Try, /*On fail goto*//*Label 149*/ 2426, // Rule ID 614 //
    1630             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    1631             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
    1632             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    1633             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    1634             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128WRegClassID,
    1635             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    1636             :       // (sdiv:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (DIV_S_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
    1637             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::DIV_S_W,
    1638             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1639             :       // GIR_Coverage, 614,
    1640             :       GIR_Done,
    1641             :     // Label 149: @2426
    1642             :     GIM_Reject,
    1643             :     // Label 141: @2427
    1644             :     GIM_Try, /*On fail goto*//*Label 150*/ 2458, // Rule ID 613 //
    1645             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    1646             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
    1647             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    1648             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    1649             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128HRegClassID,
    1650             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    1651             :       // (sdiv:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (DIV_S_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
    1652             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::DIV_S_H,
    1653             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1654             :       // GIR_Coverage, 613,
    1655             :       GIR_Done,
    1656             :     // Label 150: @2458
    1657             :     GIM_Reject,
    1658             :     // Label 142: @2459
    1659             :     GIM_Try, /*On fail goto*//*Label 151*/ 2490, // Rule ID 612 //
    1660             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    1661             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
    1662             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    1663             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    1664             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128BRegClassID,
    1665             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    1666             :       // (sdiv:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)  =>  (DIV_S_B:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
    1667             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::DIV_S_B,
    1668             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1669             :       // GIR_Coverage, 612,
    1670             :       GIR_Done,
    1671             :     // Label 151: @2490
    1672             :     GIM_Reject,
    1673             :     // Label 143: @2491
    1674             :     GIM_Reject,
    1675             :     // Label 4: @2492
    1676             :     GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 9, /*)*//*default:*//*Label 158*/ 2712,
    1677             :     /*GILLT_s32*//*Label 152*/ 2506,
    1678             :     /*GILLT_s64*//*Label 153*/ 2552, 0,
    1679             :     /*GILLT_v2s64*//*Label 154*/ 2584, 0,
    1680             :     /*GILLT_v4s32*//*Label 155*/ 2616,
    1681             :     /*GILLT_v8s16*//*Label 156*/ 2648,
    1682             :     /*GILLT_v16s8*//*Label 157*/ 2680,
    1683             :     // Label 152: @2506
    1684             :     GIM_Try, /*On fail goto*//*Label 159*/ 2551,
    1685             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
    1686             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    1687             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    1688             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
    1689             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    1690             :       GIM_Try, /*On fail goto*//*Label 160*/ 2539, // Rule ID 299 //
    1691             :         GIM_CheckFeatures, GIFBS_HasMips32r6_HasStdEnc_NotInMicroMips,
    1692             :         // (udiv:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (DIVU:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
    1693             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::DIVU,
    1694             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1695             :         // GIR_Coverage, 299,
    1696             :         GIR_Done,
    1697             :       // Label 160: @2539
    1698             :       GIM_Try, /*On fail goto*//*Label 161*/ 2550, // Rule ID 1139 //
    1699             :         GIM_CheckFeatures, GIFBS_HasMips32r6_InMicroMips,
    1700             :         // (udiv:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (DIVU_MMR6:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
    1701             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::DIVU_MMR6,
    1702             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1703             :         // GIR_Coverage, 1139,
    1704             :         GIR_Done,
    1705             :       // Label 161: @2550
    1706             :       GIM_Reject,
    1707             :     // Label 159: @2551
    1708             :     GIM_Reject,
    1709             :     // Label 153: @2552
    1710             :     GIM_Try, /*On fail goto*//*Label 162*/ 2583, // Rule ID 314 //
    1711             :       GIM_CheckFeatures, GIFBS_HasMips64r6_HasStdEnc_NotInMicroMips,
    1712             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
    1713             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
    1714             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR64RegClassID,
    1715             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR64RegClassID,
    1716             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR64RegClassID,
    1717             :       // (udiv:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rs, GPR64Opnd:{ *:[i64] }:$rt)  =>  (DDIVU:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rs, GPR64Opnd:{ *:[i64] }:$rt)
    1718             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::DDIVU,
    1719             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1720             :       // GIR_Coverage, 314,
    1721             :       GIR_Done,
    1722             :     // Label 162: @2583
    1723             :     GIM_Reject,
    1724             :     // Label 154: @2584
    1725             :     GIM_Try, /*On fail goto*//*Label 163*/ 2615, // Rule ID 619 //
    1726             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    1727             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    1728             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    1729             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    1730             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128DRegClassID,
    1731             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    1732             :       // (udiv:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)  =>  (DIV_U_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)
    1733             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::DIV_U_D,
    1734             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1735             :       // GIR_Coverage, 619,
    1736             :       GIR_Done,
    1737             :     // Label 163: @2615
    1738             :     GIM_Reject,
    1739             :     // Label 155: @2616
    1740             :     GIM_Try, /*On fail goto*//*Label 164*/ 2647, // Rule ID 618 //
    1741             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    1742             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
    1743             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    1744             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    1745             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128WRegClassID,
    1746             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    1747             :       // (udiv:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (DIV_U_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
    1748             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::DIV_U_W,
    1749             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1750             :       // GIR_Coverage, 618,
    1751             :       GIR_Done,
    1752             :     // Label 164: @2647
    1753             :     GIM_Reject,
    1754             :     // Label 156: @2648
    1755             :     GIM_Try, /*On fail goto*//*Label 165*/ 2679, // Rule ID 617 //
    1756             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    1757             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
    1758             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    1759             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    1760             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128HRegClassID,
    1761             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    1762             :       // (udiv:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (DIV_U_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
    1763             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::DIV_U_H,
    1764             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1765             :       // GIR_Coverage, 617,
    1766             :       GIR_Done,
    1767             :     // Label 165: @2679
    1768             :     GIM_Reject,
    1769             :     // Label 157: @2680
    1770             :     GIM_Try, /*On fail goto*//*Label 166*/ 2711, // Rule ID 616 //
    1771             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    1772             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
    1773             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    1774             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    1775             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128BRegClassID,
    1776             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    1777             :       // (udiv:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)  =>  (DIV_U_B:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
    1778             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::DIV_U_B,
    1779             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1780             :       // GIR_Coverage, 616,
    1781             :       GIR_Done,
    1782             :     // Label 166: @2711
    1783             :     GIM_Reject,
    1784             :     // Label 158: @2712
    1785             :     GIM_Reject,
    1786             :     // Label 5: @2713
    1787             :     GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 9, /*)*//*default:*//*Label 173*/ 2933,
    1788             :     /*GILLT_s32*//*Label 167*/ 2727,
    1789             :     /*GILLT_s64*//*Label 168*/ 2773, 0,
    1790             :     /*GILLT_v2s64*//*Label 169*/ 2805, 0,
    1791             :     /*GILLT_v4s32*//*Label 170*/ 2837,
    1792             :     /*GILLT_v8s16*//*Label 171*/ 2869,
    1793             :     /*GILLT_v16s8*//*Label 172*/ 2901,
    1794             :     // Label 167: @2727
    1795             :     GIM_Try, /*On fail goto*//*Label 174*/ 2772,
    1796             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
    1797             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    1798             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    1799             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
    1800             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    1801             :       GIM_Try, /*On fail goto*//*Label 175*/ 2760, // Rule ID 300 //
    1802             :         GIM_CheckFeatures, GIFBS_HasMips32r6_HasStdEnc_NotInMicroMips,
    1803             :         // (srem:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (MOD:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
    1804             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::MOD,
    1805             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1806             :         // GIR_Coverage, 300,
    1807             :         GIR_Done,
    1808             :       // Label 175: @2760
    1809             :       GIM_Try, /*On fail goto*//*Label 176*/ 2771, // Rule ID 1143 //
    1810             :         GIM_CheckFeatures, GIFBS_HasMips32r6_InMicroMips,
    1811             :         // (srem:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (MOD_MMR6:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
    1812             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::MOD_MMR6,
    1813             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1814             :         // GIR_Coverage, 1143,
    1815             :         GIR_Done,
    1816             :       // Label 176: @2771
    1817             :       GIM_Reject,
    1818             :     // Label 174: @2772
    1819             :     GIM_Reject,
    1820             :     // Label 168: @2773
    1821             :     GIM_Try, /*On fail goto*//*Label 177*/ 2804, // Rule ID 315 //
    1822             :       GIM_CheckFeatures, GIFBS_HasMips64r6_HasStdEnc_NotInMicroMips,
    1823             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
    1824             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
    1825             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR64RegClassID,
    1826             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR64RegClassID,
    1827             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR64RegClassID,
    1828             :       // (srem:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rs, GPR64Opnd:{ *:[i64] }:$rt)  =>  (DMOD:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rs, GPR64Opnd:{ *:[i64] }:$rt)
    1829             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::DMOD,
    1830             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1831             :       // GIR_Coverage, 315,
    1832             :       GIR_Done,
    1833             :     // Label 177: @2804
    1834             :     GIM_Reject,
    1835             :     // Label 169: @2805
    1836             :     GIM_Try, /*On fail goto*//*Label 178*/ 2836, // Rule ID 855 //
    1837             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    1838             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    1839             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    1840             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    1841             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128DRegClassID,
    1842             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    1843             :       // (srem:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)  =>  (MOD_S_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)
    1844             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::MOD_S_D,
    1845             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1846             :       // GIR_Coverage, 855,
    1847             :       GIR_Done,
    1848             :     // Label 178: @2836
    1849             :     GIM_Reject,
    1850             :     // Label 170: @2837
    1851             :     GIM_Try, /*On fail goto*//*Label 179*/ 2868, // Rule ID 854 //
    1852             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    1853             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
    1854             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    1855             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    1856             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128WRegClassID,
    1857             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    1858             :       // (srem:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (MOD_S_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
    1859             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::MOD_S_W,
    1860             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1861             :       // GIR_Coverage, 854,
    1862             :       GIR_Done,
    1863             :     // Label 179: @2868
    1864             :     GIM_Reject,
    1865             :     // Label 171: @2869
    1866             :     GIM_Try, /*On fail goto*//*Label 180*/ 2900, // Rule ID 853 //
    1867             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    1868             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
    1869             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    1870             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    1871             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128HRegClassID,
    1872             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    1873             :       // (srem:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (MOD_S_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
    1874             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::MOD_S_H,
    1875             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1876             :       // GIR_Coverage, 853,
    1877             :       GIR_Done,
    1878             :     // Label 180: @2900
    1879             :     GIM_Reject,
    1880             :     // Label 172: @2901
    1881             :     GIM_Try, /*On fail goto*//*Label 181*/ 2932, // Rule ID 852 //
    1882             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    1883             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
    1884             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    1885             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    1886             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128BRegClassID,
    1887             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    1888             :       // (srem:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)  =>  (MOD_S_B:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
    1889             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::MOD_S_B,
    1890             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1891             :       // GIR_Coverage, 852,
    1892             :       GIR_Done,
    1893             :     // Label 181: @2932
    1894             :     GIM_Reject,
    1895             :     // Label 173: @2933
    1896             :     GIM_Reject,
    1897             :     // Label 6: @2934
    1898             :     GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 9, /*)*//*default:*//*Label 188*/ 3154,
    1899             :     /*GILLT_s32*//*Label 182*/ 2948,
    1900             :     /*GILLT_s64*//*Label 183*/ 2994, 0,
    1901             :     /*GILLT_v2s64*//*Label 184*/ 3026, 0,
    1902             :     /*GILLT_v4s32*//*Label 185*/ 3058,
    1903             :     /*GILLT_v8s16*//*Label 186*/ 3090,
    1904             :     /*GILLT_v16s8*//*Label 187*/ 3122,
    1905             :     // Label 182: @2948
    1906             :     GIM_Try, /*On fail goto*//*Label 189*/ 2993,
    1907             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
    1908             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    1909             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    1910             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
    1911             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    1912             :       GIM_Try, /*On fail goto*//*Label 190*/ 2981, // Rule ID 301 //
    1913             :         GIM_CheckFeatures, GIFBS_HasMips32r6_HasStdEnc_NotInMicroMips,
    1914             :         // (urem:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (MODU:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
    1915             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::MODU,
    1916             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1917             :         // GIR_Coverage, 301,
    1918             :         GIR_Done,
    1919             :       // Label 190: @2981
    1920             :       GIM_Try, /*On fail goto*//*Label 191*/ 2992, // Rule ID 1144 //
    1921             :         GIM_CheckFeatures, GIFBS_HasMips32r6_InMicroMips,
    1922             :         // (urem:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (MODU_MMR6:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
    1923             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::MODU_MMR6,
    1924             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1925             :         // GIR_Coverage, 1144,
    1926             :         GIR_Done,
    1927             :       // Label 191: @2992
    1928             :       GIM_Reject,
    1929             :     // Label 189: @2993
    1930             :     GIM_Reject,
    1931             :     // Label 183: @2994
    1932             :     GIM_Try, /*On fail goto*//*Label 192*/ 3025, // Rule ID 316 //
    1933             :       GIM_CheckFeatures, GIFBS_HasMips64r6_HasStdEnc_NotInMicroMips,
    1934             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
    1935             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
    1936             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR64RegClassID,
    1937             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR64RegClassID,
    1938             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR64RegClassID,
    1939             :       // (urem:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rs, GPR64Opnd:{ *:[i64] }:$rt)  =>  (DMODU:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rs, GPR64Opnd:{ *:[i64] }:$rt)
    1940             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::DMODU,
    1941             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1942             :       // GIR_Coverage, 316,
    1943             :       GIR_Done,
    1944             :     // Label 192: @3025
    1945             :     GIM_Reject,
    1946             :     // Label 184: @3026
    1947             :     GIM_Try, /*On fail goto*//*Label 193*/ 3057, // Rule ID 859 //
    1948             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    1949             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    1950             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    1951             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    1952             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128DRegClassID,
    1953             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    1954             :       // (urem:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)  =>  (MOD_U_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)
    1955             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::MOD_U_D,
    1956             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1957             :       // GIR_Coverage, 859,
    1958             :       GIR_Done,
    1959             :     // Label 193: @3057
    1960             :     GIM_Reject,
    1961             :     // Label 185: @3058
    1962             :     GIM_Try, /*On fail goto*//*Label 194*/ 3089, // Rule ID 858 //
    1963             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    1964             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
    1965             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    1966             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    1967             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128WRegClassID,
    1968             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    1969             :       // (urem:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (MOD_U_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
    1970             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::MOD_U_W,
    1971             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1972             :       // GIR_Coverage, 858,
    1973             :       GIR_Done,
    1974             :     // Label 194: @3089
    1975             :     GIM_Reject,
    1976             :     // Label 186: @3090
    1977             :     GIM_Try, /*On fail goto*//*Label 195*/ 3121, // Rule ID 857 //
    1978             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    1979             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
    1980             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    1981             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    1982             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128HRegClassID,
    1983             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    1984             :       // (urem:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (MOD_U_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
    1985             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::MOD_U_H,
    1986             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1987             :       // GIR_Coverage, 857,
    1988             :       GIR_Done,
    1989             :     // Label 195: @3121
    1990             :     GIM_Reject,
    1991             :     // Label 187: @3122
    1992             :     GIM_Try, /*On fail goto*//*Label 196*/ 3153, // Rule ID 856 //
    1993             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    1994             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
    1995             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    1996             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    1997             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128BRegClassID,
    1998             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    1999             :       // (urem:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)  =>  (MOD_U_B:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
    2000             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::MOD_U_B,
    2001             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2002             :       // GIR_Coverage, 856,
    2003             :       GIR_Done,
    2004             :     // Label 196: @3153
    2005             :     GIM_Reject,
    2006             :     // Label 188: @3154
    2007             :     GIM_Reject,
    2008             :     // Label 7: @3155
    2009             :     GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 9, /*)*//*default:*//*Label 203*/ 3598,
    2010             :     /*GILLT_s32*//*Label 197*/ 3169,
    2011             :     /*GILLT_s64*//*Label 198*/ 3382, 0,
    2012             :     /*GILLT_v2s64*//*Label 199*/ 3470, 0,
    2013             :     /*GILLT_v4s32*//*Label 200*/ 3502,
    2014             :     /*GILLT_v8s16*//*Label 201*/ 3534,
    2015             :     /*GILLT_v16s8*//*Label 202*/ 3566,
    2016             :     // Label 197: @3169
    2017             :     GIM_Try, /*On fail goto*//*Label 204*/ 3381,
    2018             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
    2019             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    2020             :       GIM_Try, /*On fail goto*//*Label 205*/ 3222, // Rule ID 2087 //
    2021             :         GIM_CheckFeatures, GIFBS_InMicroMips,
    2022             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPRMM16RegClassID,
    2023             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPRMM16RegClassID,
    2024             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    2025             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    2026             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExtAndi16,
    2027             :         // MIs[1] Operand 1
    2028             :         // No operand predicates
    2029             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    2030             :         // (and:{ *:[i32] } GPRMM16:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_immZExtAndi16>>:$imm)  =>  (ANDI16_MM:{ *:[i32] } GPRMM16:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_immZExtAndi16>>:$imm)
    2031             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ANDI16_MM,
    2032             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    2033             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    2034             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
    2035             :         GIR_EraseFromParent, /*InsnID*/0,
    2036             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2037             :         // GIR_Coverage, 2087,
    2038             :         GIR_Done,
    2039             :       // Label 205: @3222
    2040             :       GIM_Try, /*On fail goto*//*Label 206*/ 3265, // Rule ID 2240 //
    2041             :         GIM_CheckFeatures, GIFBS_HasMips32r6_InMicroMips,
    2042             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPRMM16RegClassID,
    2043             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPRMM16RegClassID,
    2044             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    2045             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    2046             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExtAndi16,
    2047             :         // MIs[1] Operand 1
    2048             :         // No operand predicates
    2049             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    2050             :         // (and:{ *:[i32] } GPRMM16:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_immZExtAndi16>>:$imm)  =>  (ANDI16_MMR6:{ *:[i32] } GPRMM16:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_immZExtAndi16>>:$imm)
    2051             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ANDI16_MMR6,
    2052             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    2053             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    2054             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
    2055             :         GIR_EraseFromParent, /*InsnID*/0,
    2056             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2057             :         // GIR_Coverage, 2240,
    2058             :         GIR_Done,
    2059             :       // Label 206: @3265
    2060             :       GIM_Try, /*On fail goto*//*Label 207*/ 3288, // Rule ID 39 //
    2061             :         GIM_CheckFeatures, GIFBS_HasStdEnc_NotInMicroMips,
    2062             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    2063             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
    2064             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    2065             :         // (and:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (AND:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
    2066             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::AND,
    2067             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2068             :         // GIR_Coverage, 39,
    2069             :         GIR_Done,
    2070             :       // Label 207: @3288
    2071             :       GIM_Try, /*On fail goto*//*Label 208*/ 3311, // Rule ID 1029 //
    2072             :         GIM_CheckFeatures, GIFBS_InMicroMips_NotMips32r6,
    2073             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPRMM16RegClassID,
    2074             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPRMM16RegClassID,
    2075             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPRMM16RegClassID,
    2076             :         // (and:{ *:[i32] } GPRMM16Opnd:{ *:[i32] }:$rs, GPRMM16Opnd:{ *:[i32] }:$rt)  =>  (AND16_MM:{ *:[i32] } GPRMM16Opnd:{ *:[i32] }:$rs, GPRMM16Opnd:{ *:[i32] }:$rt)
    2077             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::AND16_MM,
    2078             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2079             :         // GIR_Coverage, 1029,
    2080             :         GIR_Done,
    2081             :       // Label 208: @3311
    2082             :       GIM_Try, /*On fail goto*//*Label 209*/ 3334, // Rule ID 1045 //
    2083             :         GIM_CheckFeatures, GIFBS_InMicroMips_NotMips32r6,
    2084             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    2085             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
    2086             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    2087             :         // (and:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (AND_MM:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
    2088             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::AND_MM,
    2089             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2090             :         // GIR_Coverage, 1045,
    2091             :         GIR_Done,
    2092             :       // Label 209: @3334
    2093             :       GIM_Try, /*On fail goto*//*Label 210*/ 3357, // Rule ID 1136 //
    2094             :         GIM_CheckFeatures, GIFBS_HasMips32r6_InMicroMips,
    2095             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    2096             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
    2097             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    2098             :         // (and:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (AND_MMR6:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
    2099             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::AND_MMR6,
    2100             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2101             :         // GIR_Coverage, 1136,
    2102             :         GIR_Done,
    2103             :       // Label 210: @3357
    2104             :       GIM_Try, /*On fail goto*//*Label 211*/ 3380, // Rule ID 1746 //
    2105             :         GIM_CheckFeatures, GIFBS_InMips16Mode,
    2106             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::CPU16RegsRegClassID,
    2107             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::CPU16RegsRegClassID,
    2108             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::CPU16RegsRegClassID,
    2109             :         // (and:{ *:[i32] } CPU16Regs:{ *:[i32] }:$l, CPU16Regs:{ *:[i32] }:$r)  =>  (AndRxRxRy16:{ *:[i32] } CPU16Regs:{ *:[i32] }:$l, CPU16Regs:{ *:[i32] }:$r)
    2110             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::AndRxRxRy16,
    2111             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2112             :         // GIR_Coverage, 1746,
    2113             :         GIR_Done,
    2114             :       // Label 211: @3380
    2115             :       GIM_Reject,
    2116             :     // Label 204: @3381
    2117             :     GIM_Reject,
    2118             :     // Label 198: @3382
    2119             :     GIM_Try, /*On fail goto*//*Label 212*/ 3469,
    2120             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
    2121             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
    2122             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR64RegClassID,
    2123             :       GIM_Try, /*On fail goto*//*Label 213*/ 3449, // Rule ID 241 //
    2124             :         GIM_CheckFeatures, GIFBS_HasCnMips,
    2125             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    2126             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
    2127             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
    2128             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
    2129             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::GPR64RegClassID,
    2130             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/Mips::GPR64RegClassID,
    2131             :         GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 255,
    2132             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    2133             :         // (and:{ *:[i64] } (add:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rs, GPR64Opnd:{ *:[i64] }:$rt), 255:{ *:[i64] })  =>  (BADDu:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rs, GPR64Opnd:{ *:[i64] }:$rt)
    2134             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::BADDu,
    2135             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    2136             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs
    2137             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // rt
    2138             :         GIR_EraseFromParent, /*InsnID*/0,
    2139             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2140             :         // GIR_Coverage, 241,
    2141             :         GIR_Done,
    2142             :       // Label 213: @3449
    2143             :       GIM_Try, /*On fail goto*//*Label 214*/ 3468, // Rule ID 184 //
    2144             :         GIM_CheckFeatures, GIFBS_IsGP64bit_NotInMips16Mode,
    2145             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR64RegClassID,
    2146             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR64RegClassID,
    2147             :         // (and:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rs, GPR64Opnd:{ *:[i64] }:$rt)  =>  (AND64:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rs, GPR64Opnd:{ *:[i64] }:$rt)
    2148             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::AND64,
    2149             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2150             :         // GIR_Coverage, 184,
    2151             :         GIR_Done,
    2152             :       // Label 214: @3468
    2153             :       GIM_Reject,
    2154             :     // Label 212: @3469
    2155             :     GIM_Reject,
    2156             :     // Label 199: @3470
    2157             :     GIM_Try, /*On fail goto*//*Label 215*/ 3501, // Rule ID 486 //
    2158             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    2159             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    2160             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    2161             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    2162             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128DRegClassID,
    2163             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    2164             :       // (and:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)  =>  (AND_V_D_PSEUDO:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)
    2165             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::AND_V_D_PSEUDO,
    2166             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2167             :       // GIR_Coverage, 486,
    2168             :       GIR_Done,
    2169             :     // Label 215: @3501
    2170             :     GIM_Reject,
    2171             :     // Label 200: @3502
    2172             :     GIM_Try, /*On fail goto*//*Label 216*/ 3533, // Rule ID 485 //
    2173             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    2174             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
    2175             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    2176             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    2177             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128WRegClassID,
    2178             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    2179             :       // (and:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (AND_V_W_PSEUDO:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
    2180             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::AND_V_W_PSEUDO,
    2181             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2182             :       // GIR_Coverage, 485,
    2183             :       GIR_Done,
    2184             :     // Label 216: @3533
    2185             :     GIM_Reject,
    2186             :     // Label 201: @3534
    2187             :     GIM_Try, /*On fail goto*//*Label 217*/ 3565, // Rule ID 484 //
    2188             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    2189             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
    2190             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    2191             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    2192             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128HRegClassID,
    2193             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    2194             :       // (and:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (AND_V_H_PSEUDO:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
    2195             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::AND_V_H_PSEUDO,
    2196             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2197             :       // GIR_Coverage, 484,
    2198             :       GIR_Done,
    2199             :     // Label 217: @3565
    2200             :     GIM_Reject,
    2201             :     // Label 202: @3566
    2202             :     GIM_Try, /*On fail goto*//*Label 218*/ 3597, // Rule ID 483 //
    2203             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    2204             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
    2205             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    2206             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    2207             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128BRegClassID,
    2208             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    2209             :       // (and:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)  =>  (AND_V:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
    2210             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::AND_V,
    2211             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2212             :       // GIR_Coverage, 483,
    2213             :       GIR_Done,
    2214             :     // Label 218: @3597
    2215             :     GIM_Reject,
    2216             :     // Label 203: @3598
    2217             :     GIM_Reject,
    2218             :     // Label 8: @3599
    2219             :     GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 9, /*)*//*default:*//*Label 225*/ 3900,
    2220             :     /*GILLT_s32*//*Label 219*/ 3613,
    2221             :     /*GILLT_s64*//*Label 220*/ 3740, 0,
    2222             :     /*GILLT_v2s64*//*Label 221*/ 3772, 0,
    2223             :     /*GILLT_v4s32*//*Label 222*/ 3804,
    2224             :     /*GILLT_v8s16*//*Label 223*/ 3836,
    2225             :     /*GILLT_v16s8*//*Label 224*/ 3868,
    2226             :     // Label 219: @3613
    2227             :     GIM_Try, /*On fail goto*//*Label 226*/ 3739,
    2228             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
    2229             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    2230             :       GIM_Try, /*On fail goto*//*Label 227*/ 3646, // Rule ID 40 //
    2231             :         GIM_CheckFeatures, GIFBS_HasStdEnc_NotInMicroMips,
    2232             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    2233             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
    2234             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    2235             :         // (or:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (OR:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
    2236             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::OR,
    2237             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2238             :         // GIR_Coverage, 40,
    2239             :         GIR_Done,
    2240             :       // Label 227: @3646
    2241             :       GIM_Try, /*On fail goto*//*Label 228*/ 3669, // Rule ID 1031 //
    2242             :         GIM_CheckFeatures, GIFBS_InMicroMips_NotMips32r6,
    2243             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPRMM16RegClassID,
    2244             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPRMM16RegClassID,
    2245             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPRMM16RegClassID,
    2246             :         // (or:{ *:[i32] } GPRMM16Opnd:{ *:[i32] }:$rs, GPRMM16Opnd:{ *:[i32] }:$rt)  =>  (OR16_MM:{ *:[i32] } GPRMM16Opnd:{ *:[i32] }:$rs, GPRMM16Opnd:{ *:[i32] }:$rt)
    2247             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::OR16_MM,
    2248             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2249             :         // GIR_Coverage, 1031,
    2250             :         GIR_Done,
    2251             :       // Label 228: @3669
    2252             :       GIM_Try, /*On fail goto*//*Label 229*/ 3692, // Rule ID 1046 //
    2253             :         GIM_CheckFeatures, GIFBS_InMicroMips_NotMips32r6,
    2254             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    2255             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
    2256             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    2257             :         // (or:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (OR_MM:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
    2258             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::OR_MM,
    2259             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2260             :         // GIR_Coverage, 1046,
    2261             :         GIR_Done,
    2262             :       // Label 229: @3692
    2263             :       GIM_Try, /*On fail goto*//*Label 230*/ 3715, // Rule ID 1149 //
    2264             :         GIM_CheckFeatures, GIFBS_HasMips32r6_InMicroMips,
    2265             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    2266             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
    2267             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    2268             :         // (or:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (OR_MMR6:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
    2269             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::OR_MMR6,
    2270             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2271             :         // GIR_Coverage, 1149,
    2272             :         GIR_Done,
    2273             :       // Label 230: @3715
    2274             :       GIM_Try, /*On fail goto*//*Label 231*/ 3738, // Rule ID 1748 //
    2275             :         GIM_CheckFeatures, GIFBS_InMips16Mode,
    2276             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::CPU16RegsRegClassID,
    2277             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::CPU16RegsRegClassID,
    2278             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::CPU16RegsRegClassID,
    2279             :         // (or:{ *:[i32] } CPU16Regs:{ *:[i32] }:$l, CPU16Regs:{ *:[i32] }:$r)  =>  (OrRxRxRy16:{ *:[i32] } CPU16Regs:{ *:[i32] }:$l, CPU16Regs:{ *:[i32] }:$r)
    2280             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::OrRxRxRy16,
    2281             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2282             :         // GIR_Coverage, 1748,
    2283             :         GIR_Done,
    2284             :       // Label 231: @3738
    2285             :       GIM_Reject,
    2286             :     // Label 226: @3739
    2287             :     GIM_Reject,
    2288             :     // Label 220: @3740
    2289             :     GIM_Try, /*On fail goto*//*Label 232*/ 3771, // Rule ID 185 //
    2290             :       GIM_CheckFeatures, GIFBS_IsGP64bit_NotInMips16Mode,
    2291             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
    2292             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
    2293             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR64RegClassID,
    2294             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR64RegClassID,
    2295             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR64RegClassID,
    2296             :       // (or:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rs, GPR64Opnd:{ *:[i64] }:$rt)  =>  (OR64:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rs, GPR64Opnd:{ *:[i64] }:$rt)
    2297             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::OR64,
    2298             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2299             :       // GIR_Coverage, 185,
    2300             :       GIR_Done,
    2301             :     // Label 232: @3771
    2302             :     GIM_Reject,
    2303             :     // Label 221: @3772
    2304             :     GIM_Try, /*On fail goto*//*Label 233*/ 3803, // Rule ID 892 //
    2305             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    2306             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    2307             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    2308             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    2309             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128DRegClassID,
    2310             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    2311             :       // (or:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)  =>  (OR_V_D_PSEUDO:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)
    2312             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::OR_V_D_PSEUDO,
    2313             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2314             :       // GIR_Coverage, 892,
    2315             :       GIR_Done,
    2316             :     // Label 233: @3803
    2317             :     GIM_Reject,
    2318             :     // Label 222: @3804
    2319             :     GIM_Try, /*On fail goto*//*Label 234*/ 3835, // Rule ID 891 //
    2320             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    2321             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
    2322             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    2323             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    2324             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128WRegClassID,
    2325             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    2326             :       // (or:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (OR_V_W_PSEUDO:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
    2327             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::OR_V_W_PSEUDO,
    2328             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2329             :       // GIR_Coverage, 891,
    2330             :       GIR_Done,
    2331             :     // Label 234: @3835
    2332             :     GIM_Reject,
    2333             :     // Label 223: @3836
    2334             :     GIM_Try, /*On fail goto*//*Label 235*/ 3867, // Rule ID 890 //
    2335             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    2336             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
    2337             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    2338             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    2339             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128HRegClassID,
    2340             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    2341             :       // (or:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (OR_V_H_PSEUDO:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
    2342             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::OR_V_H_PSEUDO,
    2343             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2344             :       // GIR_Coverage, 890,
    2345             :       GIR_Done,
    2346             :     // Label 235: @3867
    2347             :     GIM_Reject,
    2348             :     // Label 224: @3868
    2349             :     GIM_Try, /*On fail goto*//*Label 236*/ 3899, // Rule ID 889 //
    2350             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    2351             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
    2352             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    2353             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    2354             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128BRegClassID,
    2355             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    2356             :       // (or:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)  =>  (OR_V:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
    2357             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::OR_V,
    2358             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2359             :       // GIR_Coverage, 889,
    2360             :       GIR_Done,
    2361             :     // Label 236: @3899
    2362             :     GIM_Reject,
    2363             :     // Label 225: @3900
    2364             :     GIM_Reject,
    2365             :     // Label 9: @3901
    2366             :     GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 9, /*)*//*default:*//*Label 243*/ 4694,
    2367             :     /*GILLT_s32*//*Label 237*/ 3915,
    2368             :     /*GILLT_s64*//*Label 238*/ 4478, 0,
    2369             :     /*GILLT_v2s64*//*Label 239*/ 4566, 0,
    2370             :     /*GILLT_v4s32*//*Label 240*/ 4598,
    2371             :     /*GILLT_v8s16*//*Label 241*/ 4630,
    2372             :     /*GILLT_v16s8*//*Label 242*/ 4662,
    2373             :     // Label 237: @3915
    2374             :     GIM_Try, /*On fail goto*//*Label 244*/ 4477,
    2375             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
    2376             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    2377             :       GIM_Try, /*On fail goto*//*Label 245*/ 3982, // Rule ID 42 //
    2378             :         GIM_CheckFeatures, GIFBS_HasStdEnc_NotInMicroMips,
    2379             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    2380             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    2381             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_OR,
    2382             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
    2383             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
    2384             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
    2385             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    2386             :         GIM_CheckConstantInt, /*MI*/0, /*Op*/2, -1,
    2387             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    2388             :         // (xor:{ *:[i32] } (or:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt), -1:{ *:[i32] })  =>  (NOR:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
    2389             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::NOR,
    2390             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    2391             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs
    2392             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // rt
    2393             :         GIR_EraseFromParent, /*InsnID*/0,
    2394             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2395             :         // GIR_Coverage, 42,
    2396             :         GIR_Done,
    2397             :       // Label 245: @3982
    2398             :       GIM_Try, /*On fail goto*//*Label 246*/ 4039, // Rule ID 1048 //
    2399             :         GIM_CheckFeatures, GIFBS_InMicroMips_NotMips32r6,
    2400             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    2401             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    2402             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_OR,
    2403             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
    2404             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
    2405             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
    2406             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    2407             :         GIM_CheckConstantInt, /*MI*/0, /*Op*/2, -1,
    2408             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    2409             :         // (xor:{ *:[i32] } (or:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt), -1:{ *:[i32] })  =>  (NOR_MM:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
    2410             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::NOR_MM,
    2411             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    2412             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs
    2413             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // rt
    2414             :         GIR_EraseFromParent, /*InsnID*/0,
    2415             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2416             :         // GIR_Coverage, 1048,
    2417             :         GIR_Done,
    2418             :       // Label 246: @4039
    2419             :       GIM_Try, /*On fail goto*//*Label 247*/ 4096, // Rule ID 1148 //
    2420             :         GIM_CheckFeatures, GIFBS_HasMips32r6_InMicroMips,
    2421             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    2422             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    2423             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_OR,
    2424             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
    2425             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
    2426             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
    2427             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    2428             :         GIM_CheckConstantInt, /*MI*/0, /*Op*/2, -1,
    2429             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    2430             :         // (xor:{ *:[i32] } (or:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt), -1:{ *:[i32] })  =>  (NOR_MMR6:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
    2431             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::NOR_MMR6,
    2432             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    2433             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs
    2434             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // rt
    2435             :         GIR_EraseFromParent, /*InsnID*/0,
    2436             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2437             :         // GIR_Coverage, 1148,
    2438             :         GIR_Done,
    2439             :       // Label 247: @4096
    2440             :       GIM_Try, /*On fail goto*//*Label 248*/ 4128, // Rule ID 1175 //
    2441             :         GIM_CheckFeatures, GIFBS_HasMips32r6_InMicroMips,
    2442             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPRMM16RegClassID,
    2443             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPRMM16RegClassID,
    2444             :         GIM_CheckConstantInt, /*MI*/0, /*Op*/2, -1,
    2445             :         // (xor:{ *:[i32] } GPRMM16Opnd:{ *:[i32] }:$rs, -1:{ *:[i32] })  =>  (NOT16_MMR6:{ *:[i32] } GPRMM16Opnd:{ *:[i32] }:$rs)
    2446             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::NOT16_MMR6,
    2447             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rt
    2448             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs
    2449             :         GIR_EraseFromParent, /*InsnID*/0,
    2450             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2451             :         // GIR_Coverage, 1175,
    2452             :         GIR_Done,
    2453             :       // Label 248: @4128
    2454             :       GIM_Try, /*On fail goto*//*Label 249*/ 4160, // Rule ID 1030 //
    2455             :         GIM_CheckFeatures, GIFBS_InMicroMips_NotMips32r6,
    2456             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPRMM16RegClassID,
    2457             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPRMM16RegClassID,
    2458             :         GIM_CheckConstantInt, /*MI*/0, /*Op*/2, -1,
    2459             :         // (xor:{ *:[i32] } GPRMM16Opnd:{ *:[i32] }:$rs, -1:{ *:[i32] })  =>  (NOT16_MM:{ *:[i32] } GPRMM16Opnd:{ *:[i32] }:$rs)
    2460             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::NOT16_MM,
    2461             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rt
    2462             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs
    2463             :         GIR_EraseFromParent, /*InsnID*/0,
    2464             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2465             :         // GIR_Coverage, 1030,
    2466             :         GIR_Done,
    2467             :       // Label 249: @4160
    2468             :       GIM_Try, /*On fail goto*//*Label 250*/ 4195, // Rule ID 1362 //
    2469             :         GIM_CheckFeatures, GIFBS_HasStdEnc_NotInMicroMips,
    2470             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    2471             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
    2472             :         GIM_CheckConstantInt, /*MI*/0, /*Op*/2, -1,
    2473             :         // (xor:{ *:[i32] } GPR32:{ *:[i32] }:$in, -1:{ *:[i32] })  =>  (NOR:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$in, ZERO:{ *:[i32] })
    2474             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::NOR,
    2475             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    2476             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // in
    2477             :         GIR_AddRegister, /*InsnID*/0, Mips::ZERO,
    2478             :         GIR_EraseFromParent, /*InsnID*/0,
    2479             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2480             :         // GIR_Coverage, 1362,
    2481             :         GIR_Done,
    2482             :       // Label 250: @4195
    2483             :       GIM_Try, /*On fail goto*//*Label 251*/ 4227, // Rule ID 1743 //
    2484             :         GIM_CheckFeatures, GIFBS_InMips16Mode,
    2485             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::CPU16RegsRegClassID,
    2486             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::CPU16RegsRegClassID,
    2487             :         GIM_CheckConstantInt, /*MI*/0, /*Op*/2, -1,
    2488             :         // (xor:{ *:[i32] } CPU16Regs:{ *:[i32] }:$r, -1:{ *:[i32] })  =>  (NotRxRy16:{ *:[i32] } CPU16Regs:{ *:[i32] }:$r)
    2489             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::NotRxRy16,
    2490             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rx
    2491             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // r
    2492             :         GIR_EraseFromParent, /*InsnID*/0,
    2493             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2494             :         // GIR_Coverage, 1743,
    2495             :         GIR_Done,
    2496             :       // Label 251: @4227
    2497             :       GIM_Try, /*On fail goto*//*Label 252*/ 4259, // Rule ID 2082 //
    2498             :         GIM_CheckFeatures, GIFBS_InMicroMips,
    2499             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPRMM16RegClassID,
    2500             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPRMM16RegClassID,
    2501             :         GIM_CheckConstantInt, /*MI*/0, /*Op*/2, -1,
    2502             :         // (xor:{ *:[i32] } GPRMM16:{ *:[i32] }:$in, -1:{ *:[i32] })  =>  (NOT16_MM:{ *:[i32] } GPRMM16:{ *:[i32] }:$in)
    2503             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::NOT16_MM,
    2504             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rt
    2505             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // in
    2506             :         GIR_EraseFromParent, /*InsnID*/0,
    2507             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2508             :         // GIR_Coverage, 2082,
    2509             :         GIR_Done,
    2510             :       // Label 252: @4259
    2511             :       GIM_Try, /*On fail goto*//*Label 253*/ 4294, // Rule ID 2083 //
    2512             :         GIM_CheckFeatures, GIFBS_InMicroMips,
    2513             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    2514             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
    2515             :         GIM_CheckConstantInt, /*MI*/0, /*Op*/2, -1,
    2516             :         // (xor:{ *:[i32] } GPR32:{ *:[i32] }:$in, -1:{ *:[i32] })  =>  (NOR_MM:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$in, ZERO:{ *:[i32] })
    2517             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::NOR_MM,
    2518             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    2519             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // in
    2520             :         GIR_AddRegister, /*InsnID*/0, Mips::ZERO,
    2521             :         GIR_EraseFromParent, /*InsnID*/0,
    2522             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2523             :         // GIR_Coverage, 2083,
    2524             :         GIR_Done,
    2525             :       // Label 253: @4294
    2526             :       GIM_Try, /*On fail goto*//*Label 254*/ 4326, // Rule ID 2243 //
    2527             :         GIM_CheckFeatures, GIFBS_HasMips32r6_InMicroMips,
    2528             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPRMM16RegClassID,
    2529             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPRMM16RegClassID,
    2530             :         GIM_CheckConstantInt, /*MI*/0, /*Op*/2, -1,
    2531             :         // (xor:{ *:[i32] } GPRMM16:{ *:[i32] }:$in, -1:{ *:[i32] })  =>  (NOT16_MMR6:{ *:[i32] } GPRMM16:{ *:[i32] }:$in)
    2532             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::NOT16_MMR6,
    2533             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rt
    2534             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // in
    2535             :         GIR_EraseFromParent, /*InsnID*/0,
    2536             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2537             :         // GIR_Coverage, 2243,
    2538             :         GIR_Done,
    2539             :       // Label 254: @4326
    2540             :       GIM_Try, /*On fail goto*//*Label 255*/ 4361, // Rule ID 2244 //
    2541             :         GIM_CheckFeatures, GIFBS_HasMips32r6_InMicroMips,
    2542             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    2543             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
    2544             :         GIM_CheckConstantInt, /*MI*/0, /*Op*/2, -1,
    2545             :         // (xor:{ *:[i32] } GPR32:{ *:[i32] }:$in, -1:{ *:[i32] })  =>  (NOR_MMR6:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$in, ZERO:{ *:[i32] })
    2546             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::NOR_MMR6,
    2547             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    2548             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // in
    2549             :         GIR_AddRegister, /*InsnID*/0, Mips::ZERO,
    2550             :         GIR_EraseFromParent, /*InsnID*/0,
    2551             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2552             :         // GIR_Coverage, 2244,
    2553             :         GIR_Done,
    2554             :       // Label 255: @4361
    2555             :       GIM_Try, /*On fail goto*//*Label 256*/ 4384, // Rule ID 41 //
    2556             :         GIM_CheckFeatures, GIFBS_HasStdEnc_NotInMicroMips,
    2557             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    2558             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
    2559             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    2560             :         // (xor:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (XOR:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
    2561             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::XOR,
    2562             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2563             :         // GIR_Coverage, 41,
    2564             :         GIR_Done,
    2565             :       // Label 256: @4384
    2566             :       GIM_Try, /*On fail goto*//*Label 257*/ 4407, // Rule ID 1033 //
    2567             :         GIM_CheckFeatures, GIFBS_InMicroMips_NotMips32r6,
    2568             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPRMM16RegClassID,
    2569             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPRMM16RegClassID,
    2570             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPRMM16RegClassID,
    2571             :         // (xor:{ *:[i32] } GPRMM16Opnd:{ *:[i32] }:$rs, GPRMM16Opnd:{ *:[i32] }:$rt)  =>  (XOR16_MM:{ *:[i32] } GPRMM16Opnd:{ *:[i32] }:$rs, GPRMM16Opnd:{ *:[i32] }:$rt)
    2572             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::XOR16_MM,
    2573             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2574             :         // GIR_Coverage, 1033,
    2575             :         GIR_Done,
    2576             :       // Label 257: @4407
    2577             :       GIM_Try, /*On fail goto*//*Label 258*/ 4430, // Rule ID 1047 //
    2578             :         GIM_CheckFeatures, GIFBS_InMicroMips_NotMips32r6,
    2579             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    2580             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
    2581             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    2582             :         // (xor:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (XOR_MM:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
    2583             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::XOR_MM,
    2584             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2585             :         // GIR_Coverage, 1047,
    2586             :         GIR_Done,
    2587             :       // Label 258: @4430
    2588             :       GIM_Try, /*On fail goto*//*Label 259*/ 4453, // Rule ID 1152 //
    2589             :         GIM_CheckFeatures, GIFBS_HasMips32r6_InMicroMips,
    2590             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    2591             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
    2592             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    2593             :         // (xor:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (XOR_MMR6:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
    2594             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::XOR_MMR6,
    2595             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2596             :         // GIR_Coverage, 1152,
    2597             :         GIR_Done,
    2598             :       // Label 259: @4453
    2599             :       GIM_Try, /*On fail goto*//*Label 260*/ 4476, // Rule ID 1750 //
    2600             :         GIM_CheckFeatures, GIFBS_InMips16Mode,
    2601             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::CPU16RegsRegClassID,
    2602             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::CPU16RegsRegClassID,
    2603             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::CPU16RegsRegClassID,
    2604             :         // (xor:{ *:[i32] } CPU16Regs:{ *:[i32] }:$l, CPU16Regs:{ *:[i32] }:$r)  =>  (XorRxRxRy16:{ *:[i32] } CPU16Regs:{ *:[i32] }:$l, CPU16Regs:{ *:[i32] }:$r)
    2605             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::XorRxRxRy16,
    2606             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2607             :         // GIR_Coverage, 1750,
    2608             :         GIR_Done,
    2609             :       // Label 260: @4476
    2610             :       GIM_Reject,
    2611             :     // Label 244: @4477
    2612             :     GIM_Reject,
    2613             :     // Label 238: @4478
    2614             :     GIM_Try, /*On fail goto*//*Label 261*/ 4565,
    2615             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
    2616             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
    2617             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR64RegClassID,
    2618             :       GIM_Try, /*On fail goto*//*Label 262*/ 4545, // Rule ID 187 //
    2619             :         GIM_CheckFeatures, GIFBS_IsGP64bit_NotInMips16Mode,
    2620             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    2621             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_OR,
    2622             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
    2623             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
    2624             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::GPR64RegClassID,
    2625             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/Mips::GPR64RegClassID,
    2626             :         GIM_CheckConstantInt, /*MI*/0, /*Op*/2, -1,
    2627             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    2628             :         // (xor:{ *:[i64] } (or:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rs, GPR64Opnd:{ *:[i64] }:$rt), -1:{ *:[i64] })  =>  (NOR64:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rs, GPR64Opnd:{ *:[i64] }:$rt)
    2629             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::NOR64,
    2630             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    2631             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs
    2632             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // rt
    2633             :         GIR_EraseFromParent, /*InsnID*/0,
    2634             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2635             :         // GIR_Coverage, 187,
    2636             :         GIR_Done,
    2637             :       // Label 262: @4545
    2638             :       GIM_Try, /*On fail goto*//*Label 263*/ 4564, // Rule ID 186 //
    2639             :         GIM_CheckFeatures, GIFBS_IsGP64bit_NotInMips16Mode,
    2640             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR64RegClassID,
    2641             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR64RegClassID,
    2642             :         // (xor:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rs, GPR64Opnd:{ *:[i64] }:$rt)  =>  (XOR64:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rs, GPR64Opnd:{ *:[i64] }:$rt)
    2643             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::XOR64,
    2644             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2645             :         // GIR_Coverage, 186,
    2646             :         GIR_Done,
    2647             :       // Label 263: @4564
    2648             :       GIM_Reject,
    2649             :     // Label 261: @4565
    2650             :     GIM_Reject,
    2651             :     // Label 239: @4566
    2652             :     GIM_Try, /*On fail goto*//*Label 264*/ 4597, // Rule ID 1008 //
    2653             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    2654             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    2655             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    2656             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    2657             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128DRegClassID,
    2658             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    2659             :       // (xor:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)  =>  (XOR_V_D_PSEUDO:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)
    2660             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::XOR_V_D_PSEUDO,
    2661             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2662             :       // GIR_Coverage, 1008,
    2663             :       GIR_Done,
    2664             :     // Label 264: @4597
    2665             :     GIM_Reject,
    2666             :     // Label 240: @4598
    2667             :     GIM_Try, /*On fail goto*//*Label 265*/ 4629, // Rule ID 1007 //
    2668             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    2669             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
    2670             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    2671             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    2672             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128WRegClassID,
    2673             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    2674             :       // (xor:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (XOR_V_W_PSEUDO:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
    2675             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::XOR_V_W_PSEUDO,
    2676             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2677             :       // GIR_Coverage, 1007,
    2678             :       GIR_Done,
    2679             :     // Label 265: @4629
    2680             :     GIM_Reject,
    2681             :     // Label 241: @4630
    2682             :     GIM_Try, /*On fail goto*//*Label 266*/ 4661, // Rule ID 1006 //
    2683             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    2684             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
    2685             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    2686             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    2687             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128HRegClassID,
    2688             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    2689             :       // (xor:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (XOR_V_H_PSEUDO:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
    2690             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::XOR_V_H_PSEUDO,
    2691             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2692             :       // GIR_Coverage, 1006,
    2693             :       GIR_Done,
    2694             :     // Label 266: @4661
    2695             :     GIM_Reject,
    2696             :     // Label 242: @4662
    2697             :     GIM_Try, /*On fail goto*//*Label 267*/ 4693, // Rule ID 1005 //
    2698             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    2699             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
    2700             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    2701             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    2702             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128BRegClassID,
    2703             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    2704             :       // (xor:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)  =>  (XOR_V:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
    2705             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::XOR_V,
    2706             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2707             :       // GIR_Coverage, 1005,
    2708             :       GIR_Done,
    2709             :     // Label 267: @4693
    2710             :     GIM_Reject,
    2711             :     // Label 243: @4694
    2712             :     GIM_Reject,
    2713             :     // Label 10: @4695
    2714             :     GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 9, /*)*//*default:*//*Label 276*/ 8347,
    2715             :     /*GILLT_s32*//*Label 268*/ 4709,
    2716             :     /*GILLT_s64*//*Label 269*/ 4948,
    2717             :     /*GILLT_v2s16*//*Label 270*/ 4994,
    2718             :     /*GILLT_v2s64*//*Label 271*/ 5040,
    2719             :     /*GILLT_v4s8*//*Label 272*/ 6013,
    2720             :     /*GILLT_v4s32*//*Label 273*/ 6059,
    2721             :     /*GILLT_v8s16*//*Label 274*/ 6962,
    2722             :     /*GILLT_v16s8*//*Label 275*/ 7760,
    2723             :     // Label 268: @4709
    2724             :     GIM_Try, /*On fail goto*//*Label 277*/ 4732, // Rule ID 117 //
    2725             :       GIM_CheckFeatures, GIFBS_HasStdEnc_IsNotSoftFloat_NotInMicroMips,
    2726             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
    2727             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    2728             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::FGR32RegClassID,
    2729             :       // (bitconvert:{ *:[i32] } FGR32Opnd:{ *:[f32] }:$fs)  =>  (MFC1:{ *:[i32] } FGR32Opnd:{ *:[f32] }:$fs)
    2730             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::MFC1,
    2731             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2732             :       // GIR_Coverage, 117,
    2733             :       GIR_Done,
    2734             :     // Label 277: @4732
    2735             :     GIM_Try, /*On fail goto*//*Label 278*/ 4755, // Rule ID 118 //
    2736             :       GIM_CheckFeatures, GIFBS_HasStdEnc_IsNotSoftFloat_NotInMicroMips,
    2737             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
    2738             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::FGR32RegClassID,
    2739             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
    2740             :       // (bitconvert:{ *:[f32] } GPR32Opnd:{ *:[i32] }:$rt)  =>  (MTC1:{ *:[f32] } GPR32Opnd:{ *:[i32] }:$rt)
    2741             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::MTC1,
    2742             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2743             :       // GIR_Coverage, 118,
    2744             :       GIR_Done,
    2745             :     // Label 278: @4755
    2746             :     GIM_Try, /*On fail goto*//*Label 279*/ 4778, // Rule ID 1128 //
    2747             :       GIM_CheckFeatures, GIFBS_InMicroMips_IsNotSoftFloat,
    2748             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
    2749             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    2750             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::FGR32RegClassID,
    2751             :       // (bitconvert:{ *:[i32] } FGR32Opnd:{ *:[f32] }:$fs)  =>  (MFC1_MM:{ *:[i32] } FGR32Opnd:{ *:[f32] }:$fs)
    2752             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::MFC1_MM,
    2753             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2754             :       // GIR_Coverage, 1128,
    2755             :       GIR_Done,
    2756             :     // Label 279: @4778
    2757             :     GIM_Try, /*On fail goto*//*Label 280*/ 4801, // Rule ID 1129 //
    2758             :       GIM_CheckFeatures, GIFBS_InMicroMips_IsNotSoftFloat,
    2759             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
    2760             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::FGR32RegClassID,
    2761             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
    2762             :       // (bitconvert:{ *:[f32] } GPR32Opnd:{ *:[i32] }:$rt)  =>  (MTC1_MM:{ *:[f32] } GPR32Opnd:{ *:[i32] }:$rt)
    2763             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::MTC1_MM,
    2764             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2765             :       // GIR_Coverage, 1129,
    2766             :       GIR_Done,
    2767             :     // Label 280: @4801
    2768             :     GIM_Try, /*On fail goto*//*Label 281*/ 4824, // Rule ID 1141 //
    2769             :       GIM_CheckFeatures, GIFBS_HasMips32r6_InMicroMips_IsNotSoftFloat,
    2770             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
    2771             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::FGR32RegClassID,
    2772             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
    2773             :       // (bitconvert:{ *:[f32] } GPR32Opnd:{ *:[i32] }:$rt)  =>  (MTC1_MMR6:{ *:[f32] } GPR32Opnd:{ *:[i32] }:$rt)
    2774             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::MTC1_MMR6,
    2775             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2776             :       // GIR_Coverage, 1141,
    2777             :       GIR_Done,
    2778             :     // Label 281: @4824
    2779             :     GIM_Try, /*On fail goto*//*Label 282*/ 4847, // Rule ID 1142 //
    2780             :       GIM_CheckFeatures, GIFBS_HasMips32r6_InMicroMips_IsNotSoftFloat,
    2781             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
    2782             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    2783             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::FGR32RegClassID,
    2784             :       // (bitconvert:{ *:[i32] } FGR32Opnd:{ *:[f32] }:$fs)  =>  (MFC1_MMR6:{ *:[i32] } FGR32Opnd:{ *:[f32] }:$fs)
    2785             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::MFC1_MMR6,
    2786             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2787             :       // GIR_Coverage, 1142,
    2788             :       GIR_Done,
    2789             :     // Label 282: @4847
    2790             :     GIM_Try, /*On fail goto*//*Label 283*/ 4872, // Rule ID 1831 //
    2791             :       GIM_CheckFeatures, GIFBS_HasDSP,
    2792             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s16,
    2793             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    2794             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::DSPRRegClassID,
    2795             :       // (bitconvert:{ *:[i32] } DSPR:{ *:[v2i16] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[i32] } DSPR:{ *:[v2i16] }:$src, GPR32:{ *:[i32] })
    2796             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    2797             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC GPR32*/11,
    2798             :       // GIR_Coverage, 1831,
    2799             :       GIR_Done,
    2800             :     // Label 283: @4872
    2801             :     GIM_Try, /*On fail goto*//*Label 284*/ 4897, // Rule ID 1832 //
    2802             :       GIM_CheckFeatures, GIFBS_HasDSP,
    2803             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s8,
    2804             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    2805             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::DSPRRegClassID,
    2806             :       // (bitconvert:{ *:[i32] } DSPR:{ *:[v4i8] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[i32] } DSPR:{ *:[v4i8] }:$src, GPR32:{ *:[i32] })
    2807             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    2808             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC GPR32*/11,
    2809             :       // GIR_Coverage, 1832,
    2810             :       GIR_Done,
    2811             :     // Label 284: @4897
    2812             :     GIM_Try, /*On fail goto*//*Label 285*/ 4922, // Rule ID 1835 //
    2813             :       GIM_CheckFeatures, GIFBS_HasDSP,
    2814             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s16,
    2815             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::FGR32RegClassID,
    2816             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::DSPRRegClassID,
    2817             :       // (bitconvert:{ *:[f32] } DSPR:{ *:[v2i16] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[f32] } DSPR:{ *:[v2i16] }:$src, FGR32:{ *:[i32] })
    2818             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    2819             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC FGR32*/8,
    2820             :       // GIR_Coverage, 1835,
    2821             :       GIR_Done,
    2822             :     // Label 285: @4922
    2823             :     GIM_Try, /*On fail goto*//*Label 286*/ 4947, // Rule ID 1836 //
    2824             :       GIM_CheckFeatures, GIFBS_HasDSP,
    2825             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s8,
    2826             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::FGR32RegClassID,
    2827             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::DSPRRegClassID,
    2828             :       // (bitconvert:{ *:[f32] } DSPR:{ *:[v4i8] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[f32] } DSPR:{ *:[v4i8] }:$src, FGR32:{ *:[i32] })
    2829             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    2830             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC FGR32*/8,
    2831             :       // GIR_Coverage, 1836,
    2832             :       GIR_Done,
    2833             :     // Label 286: @4947
    2834             :     GIM_Reject,
    2835             :     // Label 269: @4948
    2836             :     GIM_Try, /*On fail goto*//*Label 287*/ 4993,
    2837             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
    2838             :       GIM_Try, /*On fail goto*//*Label 288*/ 4973, // Rule ID 119 //
    2839             :         GIM_CheckFeatures, GIFBS_HasMips3_HasStdEnc_IsNotSoftFloat_NotInMicroMips,
    2840             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::FGR64RegClassID,
    2841             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR64RegClassID,
    2842             :         // (bitconvert:{ *:[f64] } GPR64Opnd:{ *:[i64] }:$rt)  =>  (DMTC1:{ *:[f64] } GPR64Opnd:{ *:[i64] }:$rt)
    2843             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::DMTC1,
    2844             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2845             :         // GIR_Coverage, 119,
    2846             :         GIR_Done,
    2847             :       // Label 288: @4973
    2848             :       GIM_Try, /*On fail goto*//*Label 289*/ 4992, // Rule ID 120 //
    2849             :         GIM_CheckFeatures, GIFBS_HasMips3_HasStdEnc_IsNotSoftFloat_NotInMicroMips,
    2850             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR64RegClassID,
    2851             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::FGR64RegClassID,
    2852             :         // (bitconvert:{ *:[i64] } FGR64Opnd:{ *:[f64] }:$fs)  =>  (DMFC1:{ *:[i64] } FGR64Opnd:{ *:[f64] }:$fs)
    2853             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::DMFC1,
    2854             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2855             :         // GIR_Coverage, 120,
    2856             :         GIR_Done,
    2857             :       // Label 289: @4992
    2858             :       GIM_Reject,
    2859             :     // Label 287: @4993
    2860             :     GIM_Reject,
    2861             :     // Label 270: @4994
    2862             :     GIM_Try, /*On fail goto*//*Label 290*/ 5039,
    2863             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
    2864             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    2865             :       GIM_Try, /*On fail goto*//*Label 291*/ 5021, // Rule ID 1833 //
    2866             :         GIM_CheckFeatures, GIFBS_HasDSP,
    2867             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
    2868             :         // (bitconvert:{ *:[v2i16] } GPR32:{ *:[i32] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v2i16] } GPR32:{ *:[i32] }:$src, DSPR:{ *:[i32] })
    2869             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    2870             :         GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC DSPR*/7,
    2871             :         // GIR_Coverage, 1833,
    2872             :         GIR_Done,
    2873             :       // Label 291: @5021
    2874             :       GIM_Try, /*On fail goto*//*Label 292*/ 5038, // Rule ID 1837 //
    2875             :         GIM_CheckFeatures, GIFBS_HasDSP,
    2876             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::FGR32RegClassID,
    2877             :         // (bitconvert:{ *:[v2i16] } FGR32:{ *:[f32] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v2i16] } FGR32:{ *:[f32] }:$src, DSPR:{ *:[i32] })
    2878             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    2879             :         GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC DSPR*/7,
    2880             :         // GIR_Coverage, 1837,
    2881             :         GIR_Done,
    2882             :       // Label 292: @5038
    2883             :       GIM_Reject,
    2884             :     // Label 290: @5039
    2885             :     GIM_Reject,
    2886             :     // Label 271: @5040
    2887             :     GIM_Try, /*On fail goto*//*Label 293*/ 5061, // Rule ID 1918 //
    2888             :       GIM_CheckFeatures, GIFBS_HasMSA,
    2889             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    2890             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    2891             :       // (bitconvert:{ *:[v2i64] } v2f64:{ *:[v2f64] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v2i64] } v2f64:{ *:[v2f64] }:$src, MSA128D:{ *:[i32] })
    2892             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    2893             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128D*/75,
    2894             :       // GIR_Coverage, 1918,
    2895             :       GIR_Done,
    2896             :     // Label 293: @5061
    2897             :     GIM_Try, /*On fail goto*//*Label 294*/ 5082, // Rule ID 1921 //
    2898             :       GIM_CheckFeatures, GIFBS_HasMSA,
    2899             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    2900             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    2901             :       // (bitconvert:{ *:[v2f64] } v2i64:{ *:[v2i64] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v2f64] } v2i64:{ *:[v2i64] }:$src, MSA128D:{ *:[i32] })
    2902             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    2903             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128D*/75,
    2904             :       // GIR_Coverage, 1921,
    2905             :       GIR_Done,
    2906             :     // Label 294: @5082
    2907             :     GIM_Try, /*On fail goto*//*Label 295*/ 5103, // Rule ID 1938 //
    2908             :       GIM_CheckFeatures, GIFBS_HasMSA_IsLE,
    2909             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
    2910             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    2911             :       // (bitconvert:{ *:[v2i64] } v16i8:{ *:[v16i8] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v2i64] } v16i8:{ *:[v16i8] }:$src, MSA128D:{ *:[i32] })
    2912             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    2913             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128D*/75,
    2914             :       // GIR_Coverage, 1938,
    2915             :       GIR_Done,
    2916             :     // Label 295: @5103
    2917             :     GIM_Try, /*On fail goto*//*Label 296*/ 5124, // Rule ID 1939 //
    2918             :       GIM_CheckFeatures, GIFBS_HasMSA_IsLE,
    2919             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
    2920             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    2921             :       // (bitconvert:{ *:[v2i64] } v8i16:{ *:[v8i16] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v2i64] } v8i16:{ *:[v8i16] }:$src, MSA128D:{ *:[i32] })
    2922             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    2923             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128D*/75,
    2924             :       // GIR_Coverage, 1939,
    2925             :       GIR_Done,
    2926             :     // Label 296: @5124
    2927             :     GIM_Try, /*On fail goto*//*Label 297*/ 5145, // Rule ID 1940 //
    2928             :       GIM_CheckFeatures, GIFBS_HasMSA_IsLE,
    2929             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
    2930             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    2931             :       // (bitconvert:{ *:[v2i64] } v4i32:{ *:[v4i32] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v2i64] } v4i32:{ *:[v4i32] }:$src, MSA128D:{ *:[i32] })
    2932             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    2933             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128D*/75,
    2934             :       // GIR_Coverage, 1940,
    2935             :       GIR_Done,
    2936             :     // Label 297: @5145
    2937             :     GIM_Try, /*On fail goto*//*Label 298*/ 5166, // Rule ID 1941 //
    2938             :       GIM_CheckFeatures, GIFBS_HasMSA_IsLE,
    2939             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
    2940             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    2941             :       // (bitconvert:{ *:[v2i64] } v8f16:{ *:[v8f16] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v2i64] } v8f16:{ *:[v8f16] }:$src, MSA128D:{ *:[i32] })
    2942             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    2943             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128D*/75,
    2944             :       // GIR_Coverage, 1941,
    2945             :       GIR_Done,
    2946             :     // Label 298: @5166
    2947             :     GIM_Try, /*On fail goto*//*Label 299*/ 5187, // Rule ID 1942 //
    2948             :       GIM_CheckFeatures, GIFBS_HasMSA_IsLE,
    2949             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
    2950             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    2951             :       // (bitconvert:{ *:[v2i64] } v4f32:{ *:[v4f32] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v2i64] } v4f32:{ *:[v4f32] }:$src, MSA128D:{ *:[i32] })
    2952             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    2953             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128D*/75,
    2954             :       // GIR_Coverage, 1942,
    2955             :       GIR_Done,
    2956             :     // Label 299: @5187
    2957             :     GIM_Try, /*On fail goto*//*Label 300*/ 5208, // Rule ID 1948 //
    2958             :       GIM_CheckFeatures, GIFBS_HasMSA_IsLE,
    2959             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
    2960             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    2961             :       // (bitconvert:{ *:[v2f64] } v16i8:{ *:[v16i8] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v2f64] } v16i8:{ *:[v16i8] }:$src, MSA128D:{ *:[i32] })
    2962             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    2963             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128D*/75,
    2964             :       // GIR_Coverage, 1948,
    2965             :       GIR_Done,
    2966             :     // Label 300: @5208
    2967             :     GIM_Try, /*On fail goto*//*Label 301*/ 5229, // Rule ID 1949 //
    2968             :       GIM_CheckFeatures, GIFBS_HasMSA_IsLE,
    2969             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
    2970             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    2971             :       // (bitconvert:{ *:[v2f64] } v8i16:{ *:[v8i16] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v2f64] } v8i16:{ *:[v8i16] }:$src, MSA128D:{ *:[i32] })
    2972             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    2973             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128D*/75,
    2974             :       // GIR_Coverage, 1949,
    2975             :       GIR_Done,
    2976             :     // Label 301: @5229
    2977             :     GIM_Try, /*On fail goto*//*Label 302*/ 5250, // Rule ID 1950 //
    2978             :       GIM_CheckFeatures, GIFBS_HasMSA_IsLE,
    2979             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
    2980             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    2981             :       // (bitconvert:{ *:[v2f64] } v4i32:{ *:[v4i32] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v2f64] } v4i32:{ *:[v4i32] }:$src, MSA128D:{ *:[i32] })
    2982             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    2983             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128D*/75,
    2984             :       // GIR_Coverage, 1950,
    2985             :       GIR_Done,
    2986             :     // Label 302: @5250
    2987             :     GIM_Try, /*On fail goto*//*Label 303*/ 5271, // Rule ID 1951 //
    2988             :       GIM_CheckFeatures, GIFBS_HasMSA_IsLE,
    2989             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
    2990             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    2991             :       // (bitconvert:{ *:[v2f64] } v8f16:{ *:[v8f16] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v2f64] } v8f16:{ *:[v8f16] }:$src, MSA128D:{ *:[i32] })
    2992             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    2993             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128D*/75,
    2994             :       // GIR_Coverage, 1951,
    2995             :       GIR_Done,
    2996             :     // Label 303: @5271
    2997             :     GIM_Try, /*On fail goto*//*Label 304*/ 5292, // Rule ID 1952 //
    2998             :       GIM_CheckFeatures, GIFBS_HasMSA_IsLE,
    2999             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
    3000             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    3001             :       // (bitconvert:{ *:[v2f64] } v4f32:{ *:[v4f32] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v2f64] } v4f32:{ *:[v4f32] }:$src, MSA128D:{ *:[i32] })
    3002             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3003             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128D*/75,
    3004             :       // GIR_Coverage, 1952,
    3005             :       GIR_Done,
    3006             :     // Label 304: @5292
    3007             :     GIM_Try, /*On fail goto*//*Label 305*/ 5392, // Rule ID 1957 //
    3008             :       GIM_CheckFeatures, GIFBS_HasMSA_IsBE,
    3009             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
    3010             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    3011             :       // (bitconvert:{ *:[v2i64] } v16i8:{ *:[v16i8] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v2i64] } (SHF_W:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } (SHF_B:{ *:[v16i8] } (COPY_TO_REGCLASS:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$src, MSA128B:{ *:[i32] }), 27:{ *:[i32] }), MSA128W:{ *:[i32] }), 177:{ *:[i32] }), MSA128D:{ *:[i32] })
    3012             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
    3013             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v4s32,
    3014             :       GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v16s8,
    3015             :       GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_v16s8,
    3016             :       GIR_BuildMI, /*InsnID*/4, /*Opcode*/TargetOpcode::COPY,
    3017             :       GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/3, /*TempRegFlags*/RegState::Define,
    3018             :       GIR_Copy, /*NewInsnID*/4, /*OldInsnID*/0, /*OpIdx*/1, // src
    3019             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/4,
    3020             :       GIR_BuildMI, /*InsnID*/3, /*Opcode*/Mips::SHF_B,
    3021             :       GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
    3022             :       GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/3, /*TempRegFlags*/0,
    3023             :       GIR_AddImm, /*InsnID*/3, /*Imm*/27,
    3024             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
    3025             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    3026             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    3027             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/2, /*TempRegFlags*/0,
    3028             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    3029             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/Mips::SHF_W,
    3030             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    3031             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    3032             :       GIR_AddImm, /*InsnID*/1, /*Imm*/177,
    3033             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    3034             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3035             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3036             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    3037             :       GIR_EraseFromParent, /*InsnID*/0,
    3038             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128D*/75,
    3039             :       // GIR_Coverage, 1957,
    3040             :       GIR_Done,
    3041             :     // Label 305: @5392
    3042             :     GIM_Try, /*On fail goto*//*Label 306*/ 5492, // Rule ID 1958 //
    3043             :       GIM_CheckFeatures, GIFBS_HasMSA_IsBE,
    3044             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
    3045             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    3046             :       // (bitconvert:{ *:[v2f64] } v16i8:{ *:[v16i8] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v2f64] } (SHF_W:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } (SHF_B:{ *:[v16i8] } (COPY_TO_REGCLASS:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$src, MSA128B:{ *:[i32] }), 27:{ *:[i32] }), MSA128W:{ *:[i32] }), 177:{ *:[i32] }), MSA128D:{ *:[i32] })
    3047             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
    3048             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v4s32,
    3049             :       GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v16s8,
    3050             :       GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_v16s8,
    3051             :       GIR_BuildMI, /*InsnID*/4, /*Opcode*/TargetOpcode::COPY,
    3052             :       GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/3, /*TempRegFlags*/RegState::Define,
    3053             :       GIR_Copy, /*NewInsnID*/4, /*OldInsnID*/0, /*OpIdx*/1, // src
    3054             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/4,
    3055             :       GIR_BuildMI, /*InsnID*/3, /*Opcode*/Mips::SHF_B,
    3056             :       GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
    3057             :       GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/3, /*TempRegFlags*/0,
    3058             :       GIR_AddImm, /*InsnID*/3, /*Imm*/27,
    3059             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
    3060             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    3061             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    3062             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/2, /*TempRegFlags*/0,
    3063             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    3064             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/Mips::SHF_W,
    3065             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    3066             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    3067             :       GIR_AddImm, /*InsnID*/1, /*Imm*/177,
    3068             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    3069             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3070             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3071             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    3072             :       GIR_EraseFromParent, /*InsnID*/0,
    3073             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128D*/75,
    3074             :       // GIR_Coverage, 1958,
    3075             :       GIR_Done,
    3076             :     // Label 306: @5492
    3077             :     GIM_Try, /*On fail goto*//*Label 307*/ 5557, // Rule ID 1962 //
    3078             :       GIM_CheckFeatures, GIFBS_HasMSA_IsBE,
    3079             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
    3080             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    3081             :       // (bitconvert:{ *:[v2i64] } v8i16:{ *:[v8i16] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v2i64] } (SHF_H:{ *:[v8i16] } (COPY_TO_REGCLASS:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$src, MSA128H:{ *:[i32] }), 27:{ *:[i32] }), MSA128D:{ *:[i32] })
    3082             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v8s16,
    3083             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v8s16,
    3084             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    3085             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    3086             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src
    3087             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    3088             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/Mips::SHF_H,
    3089             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    3090             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    3091             :       GIR_AddImm, /*InsnID*/1, /*Imm*/27,
    3092             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    3093             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3094             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3095             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    3096             :       GIR_EraseFromParent, /*InsnID*/0,
    3097             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128D*/75,
    3098             :       // GIR_Coverage, 1962,
    3099             :       GIR_Done,
    3100             :     // Label 307: @5557
    3101             :     GIM_Try, /*On fail goto*//*Label 308*/ 5622, // Rule ID 1963 //
    3102             :       GIM_CheckFeatures, GIFBS_HasMSA_IsBE,
    3103             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
    3104             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    3105             :       // (bitconvert:{ *:[v2f64] } v8i16:{ *:[v8i16] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v2f64] } (SHF_H:{ *:[v8i16] } (COPY_TO_REGCLASS:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$src, MSA128H:{ *:[i32] }), 27:{ *:[i32] }), MSA128D:{ *:[i32] })
    3106             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v8s16,
    3107             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v8s16,
    3108             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    3109             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    3110             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src
    3111             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    3112             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/Mips::SHF_H,
    3113             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    3114             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    3115             :       GIR_AddImm, /*InsnID*/1, /*Imm*/27,
    3116             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    3117             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3118             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3119             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    3120             :       GIR_EraseFromParent, /*InsnID*/0,
    3121             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128D*/75,
    3122             :       // GIR_Coverage, 1963,
    3123             :       GIR_Done,
    3124             :     // Label 308: @5622
    3125             :     GIM_Try, /*On fail goto*//*Label 309*/ 5687, // Rule ID 1967 //
    3126             :       GIM_CheckFeatures, GIFBS_HasMSA_IsBE,
    3127             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
    3128             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    3129             :       // (bitconvert:{ *:[v2i64] } v8f16:{ *:[v8f16] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v2i64] } (SHF_H:{ *:[v8i16] } (COPY_TO_REGCLASS:{ *:[v8i16] } v8f16:{ *:[v8f16] }:$src, MSA128H:{ *:[i32] }), 27:{ *:[i32] }), MSA128D:{ *:[i32] })
    3130             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v8s16,
    3131             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v8s16,
    3132             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    3133             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    3134             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src
    3135             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    3136             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/Mips::SHF_H,
    3137             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    3138             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    3139             :       GIR_AddImm, /*InsnID*/1, /*Imm*/27,
    3140             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    3141             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3142             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3143             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    3144             :       GIR_EraseFromParent, /*InsnID*/0,
    3145             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128D*/75,
    3146             :       // GIR_Coverage, 1967,
    3147             :       GIR_Done,
    3148             :     // Label 309: @5687
    3149             :     GIM_Try, /*On fail goto*//*Label 310*/ 5752, // Rule ID 1968 //
    3150             :       GIM_CheckFeatures, GIFBS_HasMSA_IsBE,
    3151             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
    3152             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    3153             :       // (bitconvert:{ *:[v2f64] } v8f16:{ *:[v8f16] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v2f64] } (SHF_H:{ *:[v8i16] } (COPY_TO_REGCLASS:{ *:[v8i16] } v8f16:{ *:[v8f16] }:$src, MSA128H:{ *:[i32] }), 27:{ *:[i32] }), MSA128D:{ *:[i32] })
    3154             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v8s16,
    3155             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v8s16,
    3156             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    3157             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    3158             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src
    3159             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    3160             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/Mips::SHF_H,
    3161             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    3162             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    3163             :       GIR_AddImm, /*InsnID*/1, /*Imm*/27,
    3164             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    3165             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3166             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3167             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    3168             :       GIR_EraseFromParent, /*InsnID*/0,
    3169             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128D*/75,
    3170             :       // GIR_Coverage, 1968,
    3171             :       GIR_Done,
    3172             :     // Label 310: @5752
    3173             :     GIM_Try, /*On fail goto*//*Label 311*/ 5817, // Rule ID 1972 //
    3174             :       GIM_CheckFeatures, GIFBS_HasMSA_IsBE,
    3175             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
    3176             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    3177             :       // (bitconvert:{ *:[v2i64] } v4i32:{ *:[v4i32] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v2i64] } (SHF_W:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$src, MSA128W:{ *:[i32] }), 177:{ *:[i32] }), MSA128D:{ *:[i32] })
    3178             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
    3179             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v4s32,
    3180             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    3181             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    3182             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src
    3183             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    3184             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/Mips::SHF_W,
    3185             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    3186             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    3187             :       GIR_AddImm, /*InsnID*/1, /*Imm*/177,
    3188             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    3189             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3190             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3191             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    3192             :       GIR_EraseFromParent, /*InsnID*/0,
    3193             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128D*/75,
    3194             :       // GIR_Coverage, 1972,
    3195             :       GIR_Done,
    3196             :     // Label 311: @5817
    3197             :     GIM_Try, /*On fail goto*//*Label 312*/ 5882, // Rule ID 1973 //
    3198             :       GIM_CheckFeatures, GIFBS_HasMSA_IsBE,
    3199             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
    3200             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    3201             :       // (bitconvert:{ *:[v2f64] } v4i32:{ *:[v4i32] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v2f64] } (SHF_W:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$src, MSA128W:{ *:[i32] }), 177:{ *:[i32] }), MSA128D:{ *:[i32] })
    3202             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
    3203             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v4s32,
    3204             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    3205             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    3206             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src
    3207             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    3208             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/Mips::SHF_W,
    3209             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    3210             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    3211             :       GIR_AddImm, /*InsnID*/1, /*Imm*/177,
    3212             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    3213             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3214             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3215             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    3216             :       GIR_EraseFromParent, /*InsnID*/0,
    3217             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128D*/75,
    3218             :       // GIR_Coverage, 1973,
    3219             :       GIR_Done,
    3220             :     // Label 312: @5882
    3221             :     GIM_Try, /*On fail goto*//*Label 313*/ 5947, // Rule ID 1977 //
    3222             :       GIM_CheckFeatures, GIFBS_HasMSA_IsBE,
    3223             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
    3224             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    3225             :       // (bitconvert:{ *:[v2i64] } v4f32:{ *:[v4f32] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v2i64] } (SHF_W:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } v4f32:{ *:[v4f32] }:$src, MSA128W:{ *:[i32] }), 177:{ *:[i32] }), MSA128D:{ *:[i32] })
    3226             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
    3227             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v4s32,
    3228             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    3229             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    3230             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src
    3231             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    3232             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/Mips::SHF_W,
    3233             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    3234             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    3235             :       GIR_AddImm, /*InsnID*/1, /*Imm*/177,
    3236             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    3237             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3238             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3239             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    3240             :       GIR_EraseFromParent, /*InsnID*/0,
    3241             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128D*/75,
    3242             :       // GIR_Coverage, 1977,
    3243             :       GIR_Done,
    3244             :     // Label 313: @5947
    3245             :     GIM_Try, /*On fail goto*//*Label 314*/ 6012, // Rule ID 1978 //
    3246             :       GIM_CheckFeatures, GIFBS_HasMSA_IsBE,
    3247             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
    3248             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    3249             :       // (bitconvert:{ *:[v2f64] } v4f32:{ *:[v4f32] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v2f64] } (SHF_W:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } v4f32:{ *:[v4f32] }:$src, MSA128W:{ *:[i32] }), 177:{ *:[i32] }), MSA128D:{ *:[i32] })
    3250             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
    3251             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v4s32,
    3252             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    3253             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    3254             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src
    3255             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    3256             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/Mips::SHF_W,
    3257             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    3258             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    3259             :       GIR_AddImm, /*InsnID*/1, /*Imm*/177,
    3260             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    3261             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3262             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3263             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    3264             :       GIR_EraseFromParent, /*InsnID*/0,
    3265             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128D*/75,
    3266             :       // GIR_Coverage, 1978,
    3267             :       GIR_Done,
    3268             :     // Label 314: @6012
    3269             :     GIM_Reject,
    3270             :     // Label 272: @6013
    3271             :     GIM_Try, /*On fail goto*//*Label 315*/ 6058,
    3272             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
    3273             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    3274             :       GIM_Try, /*On fail goto*//*Label 316*/ 6040, // Rule ID 1834 //
    3275             :         GIM_CheckFeatures, GIFBS_HasDSP,
    3276             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
    3277             :         // (bitconvert:{ *:[v4i8] } GPR32:{ *:[i32] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v4i8] } GPR32:{ *:[i32] }:$src, DSPR:{ *:[i32] })
    3278             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3279             :         GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC DSPR*/7,
    3280             :         // GIR_Coverage, 1834,
    3281             :         GIR_Done,
    3282             :       // Label 316: @6040
    3283             :       GIM_Try, /*On fail goto*//*Label 317*/ 6057, // Rule ID 1838 //
    3284             :         GIM_CheckFeatures, GIFBS_HasDSP,
    3285             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::FGR32RegClassID,
    3286             :         // (bitconvert:{ *:[v4i8] } FGR32:{ *:[f32] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v4i8] } FGR32:{ *:[f32] }:$src, DSPR:{ *:[i32] })
    3287             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3288             :         GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC DSPR*/7,
    3289             :         // GIR_Coverage, 1838,
    3290             :         GIR_Done,
    3291             :       // Label 317: @6057
    3292             :       GIM_Reject,
    3293             :     // Label 315: @6058
    3294             :     GIM_Reject,
    3295             :     // Label 273: @6059
    3296             :     GIM_Try, /*On fail goto*//*Label 318*/ 6080, // Rule ID 1917 //
    3297             :       GIM_CheckFeatures, GIFBS_HasMSA,
    3298             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
    3299             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    3300             :       // (bitconvert:{ *:[v4i32] } v4f32:{ *:[v4f32] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v4i32] } v4f32:{ *:[v4f32] }:$src, MSA128W:{ *:[i32] })
    3301             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3302             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128W*/77,
    3303             :       // GIR_Coverage, 1917,
    3304             :       GIR_Done,
    3305             :     // Label 318: @6080
    3306             :     GIM_Try, /*On fail goto*//*Label 319*/ 6101, // Rule ID 1920 //
    3307             :       GIM_CheckFeatures, GIFBS_HasMSA,
    3308             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
    3309             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    3310             :       // (bitconvert:{ *:[v4f32] } v4i32:{ *:[v4i32] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v4f32] } v4i32:{ *:[v4i32] }:$src, MSA128W:{ *:[i32] })
    3311             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3312             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128W*/77,
    3313             :       // GIR_Coverage, 1920,
    3314             :       GIR_Done,
    3315             :     // Label 319: @6101
    3316             :     GIM_Try, /*On fail goto*//*Label 320*/ 6122, // Rule ID 1933 //
    3317             :       GIM_CheckFeatures, GIFBS_HasMSA_IsLE,
    3318             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
    3319             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    3320             :       // (bitconvert:{ *:[v4i32] } v16i8:{ *:[v16i8] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v4i32] } v16i8:{ *:[v16i8] }:$src, MSA128W:{ *:[i32] })
    3321             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3322             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128W*/77,
    3323             :       // GIR_Coverage, 1933,
    3324             :       GIR_Done,
    3325             :     // Label 320: @6122
    3326             :     GIM_Try, /*On fail goto*//*Label 321*/ 6143, // Rule ID 1934 //
    3327             :       GIM_CheckFeatures, GIFBS_HasMSA_IsLE,
    3328             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
    3329             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    3330             :       // (bitconvert:{ *:[v4i32] } v8i16:{ *:[v8i16] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v4i32] } v8i16:{ *:[v8i16] }:$src, MSA128W:{ *:[i32] })
    3331             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3332             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128W*/77,
    3333             :       // GIR_Coverage, 1934,
    3334             :       GIR_Done,
    3335             :     // Label 321: @6143
    3336             :     GIM_Try, /*On fail goto*//*Label 322*/ 6164, // Rule ID 1935 //
    3337             :       GIM_CheckFeatures, GIFBS_HasMSA_IsLE,
    3338             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    3339             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    3340             :       // (bitconvert:{ *:[v4i32] } v2i64:{ *:[v2i64] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v4i32] } v2i64:{ *:[v2i64] }:$src, MSA128W:{ *:[i32] })
    3341             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3342             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128W*/77,
    3343             :       // GIR_Coverage, 1935,
    3344             :       GIR_Done,
    3345             :     // Label 322: @6164
    3346             :     GIM_Try, /*On fail goto*//*Label 323*/ 6185, // Rule ID 1936 //
    3347             :       GIM_CheckFeatures, GIFBS_HasMSA_IsLE,
    3348             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
    3349             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    3350             :       // (bitconvert:{ *:[v4i32] } v8f16:{ *:[v8f16] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v4i32] } v8f16:{ *:[v8f16] }:$src, MSA128W:{ *:[i32] })
    3351             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3352             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128W*/77,
    3353             :       // GIR_Coverage, 1936,
    3354             :       GIR_Done,
    3355             :     // Label 323: @6185
    3356             :     GIM_Try, /*On fail goto*//*Label 324*/ 6206, // Rule ID 1937 //
    3357             :       GIM_CheckFeatures, GIFBS_HasMSA_IsLE,
    3358             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    3359             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    3360             :       // (bitconvert:{ *:[v4i32] } v2f64:{ *:[v2f64] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v4i32] } v2f64:{ *:[v2f64] }:$src, MSA128W:{ *:[i32] })
    3361             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3362             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128W*/77,
    3363             :       // GIR_Coverage, 1937,
    3364             :       GIR_Done,
    3365             :     // Label 324: @6206
    3366             :     GIM_Try, /*On fail goto*//*Label 325*/ 6227, // Rule ID 1943 //
    3367             :       GIM_CheckFeatures, GIFBS_HasMSA_IsLE,
    3368             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
    3369             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    3370             :       // (bitconvert:{ *:[v4f32] } v16i8:{ *:[v16i8] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v4f32] } v16i8:{ *:[v16i8] }:$src, MSA128W:{ *:[i32] })
    3371             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3372             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128W*/77,
    3373             :       // GIR_Coverage, 1943,
    3374             :       GIR_Done,
    3375             :     // Label 325: @6227
    3376             :     GIM_Try, /*On fail goto*//*Label 326*/ 6248, // Rule ID 1944 //
    3377             :       GIM_CheckFeatures, GIFBS_HasMSA_IsLE,
    3378             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
    3379             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    3380             :       // (bitconvert:{ *:[v4f32] } v8i16:{ *:[v8i16] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v4f32] } v8i16:{ *:[v8i16] }:$src, MSA128W:{ *:[i32] })
    3381             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3382             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128W*/77,
    3383             :       // GIR_Coverage, 1944,
    3384             :       GIR_Done,
    3385             :     // Label 326: @6248
    3386             :     GIM_Try, /*On fail goto*//*Label 327*/ 6269, // Rule ID 1945 //
    3387             :       GIM_CheckFeatures, GIFBS_HasMSA_IsLE,
    3388             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    3389             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    3390             :       // (bitconvert:{ *:[v4f32] } v2i64:{ *:[v2i64] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v4f32] } v2i64:{ *:[v2i64] }:$src, MSA128W:{ *:[i32] })
    3391             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3392             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128W*/77,
    3393             :       // GIR_Coverage, 1945,
    3394             :       GIR_Done,
    3395             :     // Label 327: @6269
    3396             :     GIM_Try, /*On fail goto*//*Label 328*/ 6290, // Rule ID 1946 //
    3397             :       GIM_CheckFeatures, GIFBS_HasMSA_IsLE,
    3398             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
    3399             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    3400             :       // (bitconvert:{ *:[v4f32] } v8f16:{ *:[v8f16] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v4f32] } v8f16:{ *:[v8f16] }:$src, MSA128W:{ *:[i32] })
    3401             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3402             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128W*/77,
    3403             :       // GIR_Coverage, 1946,
    3404             :       GIR_Done,
    3405             :     // Label 328: @6290
    3406             :     GIM_Try, /*On fail goto*//*Label 329*/ 6311, // Rule ID 1947 //
    3407             :       GIM_CheckFeatures, GIFBS_HasMSA_IsLE,
    3408             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    3409             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    3410             :       // (bitconvert:{ *:[v4f32] } v2f64:{ *:[v2f64] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v4f32] } v2f64:{ *:[v2f64] }:$src, MSA128W:{ *:[i32] })
    3411             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3412             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128W*/77,
    3413             :       // GIR_Coverage, 1947,
    3414             :       GIR_Done,
    3415             :     // Label 329: @6311
    3416             :     GIM_Try, /*On fail goto*//*Label 330*/ 6376, // Rule ID 1955 //
    3417             :       GIM_CheckFeatures, GIFBS_HasMSA_IsBE,
    3418             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
    3419             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    3420             :       // (bitconvert:{ *:[v4i32] } v16i8:{ *:[v16i8] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v4i32] } (SHF_B:{ *:[v16i8] } (COPY_TO_REGCLASS:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$src, MSA128B:{ *:[i32] }), 27:{ *:[i32] }), MSA128W:{ *:[i32] })
    3421             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v16s8,
    3422             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v16s8,
    3423             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    3424             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    3425             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src
    3426             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    3427             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/Mips::SHF_B,
    3428             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    3429             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    3430             :       GIR_AddImm, /*InsnID*/1, /*Imm*/27,
    3431             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    3432             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3433             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3434             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    3435             :       GIR_EraseFromParent, /*InsnID*/0,
    3436             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128W*/77,
    3437             :       // GIR_Coverage, 1955,
    3438             :       GIR_Done,
    3439             :     // Label 330: @6376
    3440             :     GIM_Try, /*On fail goto*//*Label 331*/ 6441, // Rule ID 1956 //
    3441             :       GIM_CheckFeatures, GIFBS_HasMSA_IsBE,
    3442             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
    3443             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    3444             :       // (bitconvert:{ *:[v4f32] } v16i8:{ *:[v16i8] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v4f32] } (SHF_B:{ *:[v16i8] } (COPY_TO_REGCLASS:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$src, MSA128B:{ *:[i32] }), 27:{ *:[i32] }), MSA128W:{ *:[i32] })
    3445             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v16s8,
    3446             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v16s8,
    3447             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    3448             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    3449             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src
    3450             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    3451             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/Mips::SHF_B,
    3452             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    3453             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    3454             :       GIR_AddImm, /*InsnID*/1, /*Imm*/27,
    3455             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    3456             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3457             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3458             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    3459             :       GIR_EraseFromParent, /*InsnID*/0,
    3460             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128W*/77,
    3461             :       // GIR_Coverage, 1956,
    3462             :       GIR_Done,
    3463             :     // Label 331: @6441
    3464             :     GIM_Try, /*On fail goto*//*Label 332*/ 6506, // Rule ID 1960 //
    3465             :       GIM_CheckFeatures, GIFBS_HasMSA_IsBE,
    3466             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
    3467             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    3468             :       // (bitconvert:{ *:[v4i32] } v8i16:{ *:[v8i16] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v4i32] } (SHF_H:{ *:[v8i16] } (COPY_TO_REGCLASS:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$src, MSA128H:{ *:[i32] }), 177:{ *:[i32] }), MSA128W:{ *:[i32] })
    3469             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v8s16,
    3470             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v8s16,
    3471             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    3472             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    3473             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src
    3474             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    3475             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/Mips::SHF_H,
    3476             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    3477             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    3478             :       GIR_AddImm, /*InsnID*/1, /*Imm*/177,
    3479             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    3480             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3481             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3482             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    3483             :       GIR_EraseFromParent, /*InsnID*/0,
    3484             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128W*/77,
    3485             :       // GIR_Coverage, 1960,
    3486             :       GIR_Done,
    3487             :     // Label 332: @6506
    3488             :     GIM_Try, /*On fail goto*//*Label 333*/ 6571, // Rule ID 1961 //
    3489             :       GIM_CheckFeatures, GIFBS_HasMSA_IsBE,
    3490             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
    3491             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    3492             :       // (bitconvert:{ *:[v4f32] } v8i16:{ *:[v8i16] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v4f32] } (SHF_H:{ *:[v8i16] } (COPY_TO_REGCLASS:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$src, MSA128H:{ *:[i32] }), 177:{ *:[i32] }), MSA128W:{ *:[i32] })
    3493             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v8s16,
    3494             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v8s16,
    3495             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    3496             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    3497             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src
    3498             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    3499             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/Mips::SHF_H,
    3500             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    3501             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    3502             :       GIR_AddImm, /*InsnID*/1, /*Imm*/177,
    3503             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    3504             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3505             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3506             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    3507             :       GIR_EraseFromParent, /*InsnID*/0,
    3508             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128W*/77,
    3509             :       // GIR_Coverage, 1961,
    3510             :       GIR_Done,
    3511             :     // Label 333: @6571
    3512             :     GIM_Try, /*On fail goto*//*Label 334*/ 6636, // Rule ID 1965 //
    3513             :       GIM_CheckFeatures, GIFBS_HasMSA_IsBE,
    3514             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
    3515             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    3516             :       // (bitconvert:{ *:[v4i32] } v8f16:{ *:[v8f16] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v4i32] } (SHF_H:{ *:[v8i16] } (COPY_TO_REGCLASS:{ *:[v8i16] } v8f16:{ *:[v8f16] }:$src, MSA128H:{ *:[i32] }), 177:{ *:[i32] }), MSA128W:{ *:[i32] })
    3517             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v8s16,
    3518             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v8s16,
    3519             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    3520             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    3521             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src
    3522             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    3523             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/Mips::SHF_H,
    3524             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    3525             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    3526             :       GIR_AddImm, /*InsnID*/1, /*Imm*/177,
    3527             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    3528             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3529             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3530             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    3531             :       GIR_EraseFromParent, /*InsnID*/0,
    3532             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128W*/77,
    3533             :       // GIR_Coverage, 1965,
    3534             :       GIR_Done,
    3535             :     // Label 334: @6636
    3536             :     GIM_Try, /*On fail goto*//*Label 335*/ 6701, // Rule ID 1966 //
    3537             :       GIM_CheckFeatures, GIFBS_HasMSA_IsBE,
    3538             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
    3539             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    3540             :       // (bitconvert:{ *:[v4f32] } v8f16:{ *:[v8f16] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v4f32] } (SHF_H:{ *:[v8i16] } (COPY_TO_REGCLASS:{ *:[v8i16] } v8f16:{ *:[v8f16] }:$src, MSA128H:{ *:[i32] }), 177:{ *:[i32] }), MSA128W:{ *:[i32] })
    3541             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v8s16,
    3542             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v8s16,
    3543             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    3544             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    3545             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src
    3546             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    3547             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/Mips::SHF_H,
    3548             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    3549             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    3550             :       GIR_AddImm, /*InsnID*/1, /*Imm*/177,
    3551             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    3552             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3553             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3554             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    3555             :       GIR_EraseFromParent, /*InsnID*/0,
    3556             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128W*/77,
    3557             :       // GIR_Coverage, 1966,
    3558             :       GIR_Done,
    3559             :     // Label 335: @6701
    3560             :     GIM_Try, /*On fail goto*//*Label 336*/ 6766, // Rule ID 1982 //
    3561             :       GIM_CheckFeatures, GIFBS_HasMSA_IsBE,
    3562             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    3563             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    3564             :       // (bitconvert:{ *:[v4i32] } v2i64:{ *:[v2i64] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v4i32] } (SHF_W:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } v2i64:{ *:[v2i64] }:$src, MSA128W:{ *:[i32] }), 177:{ *:[i32] }), MSA128W:{ *:[i32] })
    3565             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
    3566             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v4s32,
    3567             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    3568             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    3569             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src
    3570             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    3571             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/Mips::SHF_W,
    3572             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    3573             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    3574             :       GIR_AddImm, /*InsnID*/1, /*Imm*/177,
    3575             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    3576             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3577             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3578             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    3579             :       GIR_EraseFromParent, /*InsnID*/0,
    3580             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128W*/77,
    3581             :       // GIR_Coverage, 1982,
    3582             :       GIR_Done,
    3583             :     // Label 336: @6766
    3584             :     GIM_Try, /*On fail goto*//*Label 337*/ 6831, // Rule ID 1983 //
    3585             :       GIM_CheckFeatures, GIFBS_HasMSA_IsBE,
    3586             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    3587             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    3588             :       // (bitconvert:{ *:[v4f32] } v2i64:{ *:[v2i64] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v4f32] } (SHF_W:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } v2i64:{ *:[v2i64] }:$src, MSA128W:{ *:[i32] }), 177:{ *:[i32] }), MSA128W:{ *:[i32] })
    3589             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
    3590             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v4s32,
    3591             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    3592             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    3593             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src
    3594             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    3595             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/Mips::SHF_W,
    3596             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    3597             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    3598             :       GIR_AddImm, /*InsnID*/1, /*Imm*/177,
    3599             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    3600             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3601             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3602             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    3603             :       GIR_EraseFromParent, /*InsnID*/0,
    3604             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128W*/77,
    3605             :       // GIR_Coverage, 1983,
    3606             :       GIR_Done,
    3607             :     // Label 337: @6831
    3608             :     GIM_Try, /*On fail goto*//*Label 338*/ 6896, // Rule ID 1987 //
    3609             :       GIM_CheckFeatures, GIFBS_HasMSA_IsBE,
    3610             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    3611             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    3612             :       // (bitconvert:{ *:[v4i32] } v2f64:{ *:[v2f64] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v4i32] } (SHF_W:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } v2f64:{ *:[v2f64] }:$src, MSA128W:{ *:[i32] }), 177:{ *:[i32] }), MSA128W:{ *:[i32] })
    3613             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
    3614             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v4s32,
    3615             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    3616             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    3617             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src
    3618             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    3619             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/Mips::SHF_W,
    3620             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    3621             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    3622             :       GIR_AddImm, /*InsnID*/1, /*Imm*/177,
    3623             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    3624             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3625             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3626             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    3627             :       GIR_EraseFromParent, /*InsnID*/0,
    3628             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128W*/77,
    3629             :       // GIR_Coverage, 1987,
    3630             :       GIR_Done,
    3631             :     // Label 338: @6896
    3632             :     GIM_Try, /*On fail goto*//*Label 339*/ 6961, // Rule ID 1988 //
    3633             :       GIM_CheckFeatures, GIFBS_HasMSA_IsBE,
    3634             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    3635             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    3636             :       // (bitconvert:{ *:[v4f32] } v2f64:{ *:[v2f64] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v4f32] } (SHF_W:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } v2f64:{ *:[v2f64] }:$src, MSA128W:{ *:[i32] }), 177:{ *:[i32] }), MSA128W:{ *:[i32] })
    3637             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
    3638             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v4s32,
    3639             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    3640             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    3641             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src
    3642             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    3643             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/Mips::SHF_W,
    3644             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    3645             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    3646             :       GIR_AddImm, /*InsnID*/1, /*Imm*/177,
    3647             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    3648             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3649             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3650             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    3651             :       GIR_EraseFromParent, /*InsnID*/0,
    3652             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128W*/77,
    3653             :       // GIR_Coverage, 1988,
    3654             :       GIR_Done,
    3655             :     // Label 339: @6961
    3656             :     GIM_Reject,
    3657             :     // Label 274: @6962
    3658             :     GIM_Try, /*On fail goto*//*Label 340*/ 6983, // Rule ID 1916 //
    3659             :       GIM_CheckFeatures, GIFBS_HasMSA,
    3660             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
    3661             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    3662             :       // (bitconvert:{ *:[v8i16] } v8f16:{ *:[v8f16] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v8i16] } v8f16:{ *:[v8f16] }:$src, MSA128H:{ *:[i32] })
    3663             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3664             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128H*/76,
    3665             :       // GIR_Coverage, 1916,
    3666             :       GIR_Done,
    3667             :     // Label 340: @6983
    3668             :     GIM_Try, /*On fail goto*//*Label 341*/ 7004, // Rule ID 1919 //
    3669             :       GIM_CheckFeatures, GIFBS_HasMSA,
    3670             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
    3671             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    3672             :       // (bitconvert:{ *:[v8f16] } v8i16:{ *:[v8i16] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v8f16] } v8i16:{ *:[v8i16] }:$src, MSA128H:{ *:[i32] })
    3673             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3674             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128H*/76,
    3675             :       // GIR_Coverage, 1919,
    3676             :       GIR_Done,
    3677             :     // Label 341: @7004
    3678             :     GIM_Try, /*On fail goto*//*Label 342*/ 7025, // Rule ID 1928 //
    3679             :       GIM_CheckFeatures, GIFBS_HasMSA_IsLE,
    3680             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
    3681             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    3682             :       // (bitconvert:{ *:[v8i16] } v16i8:{ *:[v16i8] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v8i16] } v16i8:{ *:[v16i8] }:$src, MSA128H:{ *:[i32] })
    3683             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3684             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128H*/76,
    3685             :       // GIR_Coverage, 1928,
    3686             :       GIR_Done,
    3687             :     // Label 342: @7025
    3688             :     GIM_Try, /*On fail goto*//*Label 343*/ 7046, // Rule ID 1929 //
    3689             :       GIM_CheckFeatures, GIFBS_HasMSA_IsLE,
    3690             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
    3691             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    3692             :       // (bitconvert:{ *:[v8i16] } v4i32:{ *:[v4i32] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v8i16] } v4i32:{ *:[v4i32] }:$src, MSA128H:{ *:[i32] })
    3693             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3694             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128H*/76,
    3695             :       // GIR_Coverage, 1929,
    3696             :       GIR_Done,
    3697             :     // Label 343: @7046
    3698             :     GIM_Try, /*On fail goto*//*Label 344*/ 7067, // Rule ID 1930 //
    3699             :       GIM_CheckFeatures, GIFBS_HasMSA_IsLE,
    3700             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    3701             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    3702             :       // (bitconvert:{ *:[v8i16] } v2i64:{ *:[v2i64] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v8i16] } v2i64:{ *:[v2i64] }:$src, MSA128H:{ *:[i32] })
    3703             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3704             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128H*/76,
    3705             :       // GIR_Coverage, 1930,
    3706             :       GIR_Done,
    3707             :     // Label 344: @7067
    3708             :     GIM_Try, /*On fail goto*//*Label 345*/ 7088, // Rule ID 1931 //
    3709             :       GIM_CheckFeatures, GIFBS_HasMSA_IsLE,
    3710             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
    3711             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    3712             :       // (bitconvert:{ *:[v8i16] } v4f32:{ *:[v4f32] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v8i16] } v4f32:{ *:[v4f32] }:$src, MSA128H:{ *:[i32] })
    3713             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3714             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128H*/76,
    3715             :       // GIR_Coverage, 1931,
    3716             :       GIR_Done,
    3717             :     // Label 345: @7088
    3718             :     GIM_Try, /*On fail goto*//*Label 346*/ 7109, // Rule ID 1932 //
    3719             :       GIM_CheckFeatures, GIFBS_HasMSA_IsLE,
    3720             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    3721             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    3722             :       // (bitconvert:{ *:[v8i16] } v2f64:{ *:[v2f64] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v8i16] } v2f64:{ *:[v2f64] }:$src, MSA128H:{ *:[i32] })
    3723             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3724             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128H*/76,
    3725             :       // GIR_Coverage, 1932,
    3726             :       GIR_Done,
    3727             :     // Label 346: @7109
    3728             :     GIM_Try, /*On fail goto*//*Label 347*/ 7174, // Rule ID 1953 //
    3729             :       GIM_CheckFeatures, GIFBS_HasMSA_IsBE,
    3730             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
    3731             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    3732             :       // (bitconvert:{ *:[v8i16] } v16i8:{ *:[v16i8] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v8i16] } (SHF_B:{ *:[v16i8] } (COPY_TO_REGCLASS:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$src, MSA128B:{ *:[i32] }), 177:{ *:[i32] }), MSA128H:{ *:[i32] })
    3733             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v16s8,
    3734             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v16s8,
    3735             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    3736             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    3737             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src
    3738             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    3739             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/Mips::SHF_B,
    3740             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    3741             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    3742             :       GIR_AddImm, /*InsnID*/1, /*Imm*/177,
    3743             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    3744             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3745             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3746             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    3747             :       GIR_EraseFromParent, /*InsnID*/0,
    3748             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128H*/76,
    3749             :       // GIR_Coverage, 1953,
    3750             :       GIR_Done,
    3751             :     // Label 347: @7174
    3752             :     GIM_Try, /*On fail goto*//*Label 348*/ 7239, // Rule ID 1954 //
    3753             :       GIM_CheckFeatures, GIFBS_HasMSA_IsBE,
    3754             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
    3755             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    3756             :       // (bitconvert:{ *:[v8f16] } v16i8:{ *:[v16i8] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v8f16] } (SHF_B:{ *:[v16i8] } (COPY_TO_REGCLASS:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$src, MSA128B:{ *:[i32] }), 177:{ *:[i32] }), MSA128H:{ *:[i32] })
    3757             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v16s8,
    3758             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v16s8,
    3759             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    3760             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    3761             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src
    3762             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    3763             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/Mips::SHF_B,
    3764             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    3765             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    3766             :       GIR_AddImm, /*InsnID*/1, /*Imm*/177,
    3767             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    3768             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3769             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3770             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    3771             :       GIR_EraseFromParent, /*InsnID*/0,
    3772             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128H*/76,
    3773             :       // GIR_Coverage, 1954,
    3774             :       GIR_Done,
    3775             :     // Label 348: @7239
    3776             :     GIM_Try, /*On fail goto*//*Label 349*/ 7304, // Rule ID 1970 //
    3777             :       GIM_CheckFeatures, GIFBS_HasMSA_IsBE,
    3778             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
    3779             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    3780             :       // (bitconvert:{ *:[v8i16] } v4i32:{ *:[v4i32] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v8i16] } (SHF_H:{ *:[v8i16] } (COPY_TO_REGCLASS:{ *:[v8i16] } v4i32:{ *:[v4i32] }:$src, MSA128H:{ *:[i32] }), 177:{ *:[i32] }), MSA128H:{ *:[i32] })
    3781             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v8s16,
    3782             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v8s16,
    3783             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    3784             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    3785             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src
    3786             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    3787             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/Mips::SHF_H,
    3788             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    3789             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    3790             :       GIR_AddImm, /*InsnID*/1, /*Imm*/177,
    3791             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    3792             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3793             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3794             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    3795             :       GIR_EraseFromParent, /*InsnID*/0,
    3796             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128H*/76,
    3797             :       // GIR_Coverage, 1970,
    3798             :       GIR_Done,
    3799             :     // Label 349: @7304
    3800             :     GIM_Try, /*On fail goto*//*Label 350*/ 7369, // Rule ID 1971 //
    3801             :       GIM_CheckFeatures, GIFBS_HasMSA_IsBE,
    3802             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
    3803             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    3804             :       // (bitconvert:{ *:[v8f16] } v4i32:{ *:[v4i32] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v8f16] } (SHF_H:{ *:[v8i16] } (COPY_TO_REGCLASS:{ *:[v8i16] } v4i32:{ *:[v4i32] }:$src, MSA128H:{ *:[i32] }), 177:{ *:[i32] }), MSA128H:{ *:[i32] })
    3805             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v8s16,
    3806             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v8s16,
    3807             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    3808             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    3809             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src
    3810             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    3811             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/Mips::SHF_H,
    3812             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    3813             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    3814             :       GIR_AddImm, /*InsnID*/1, /*Imm*/177,
    3815             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    3816             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3817             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3818             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    3819             :       GIR_EraseFromParent, /*InsnID*/0,
    3820             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128H*/76,
    3821             :       // GIR_Coverage, 1971,
    3822             :       GIR_Done,
    3823             :     // Label 350: @7369
    3824             :     GIM_Try, /*On fail goto*//*Label 351*/ 7434, // Rule ID 1975 //
    3825             :       GIM_CheckFeatures, GIFBS_HasMSA_IsBE,
    3826             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
    3827             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    3828             :       // (bitconvert:{ *:[v8i16] } v4f32:{ *:[v4f32] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v8i16] } (SHF_H:{ *:[v8i16] } (COPY_TO_REGCLASS:{ *:[v8i16] } v4f32:{ *:[v4f32] }:$src, MSA128H:{ *:[i32] }), 177:{ *:[i32] }), MSA128H:{ *:[i32] })
    3829             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v8s16,
    3830             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v8s16,
    3831             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    3832             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    3833             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src
    3834             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    3835             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/Mips::SHF_H,
    3836             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    3837             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    3838             :       GIR_AddImm, /*InsnID*/1, /*Imm*/177,
    3839             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    3840             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3841             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3842             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    3843             :       GIR_EraseFromParent, /*InsnID*/0,
    3844             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128H*/76,
    3845             :       // GIR_Coverage, 1975,
    3846             :       GIR_Done,
    3847             :     // Label 351: @7434
    3848             :     GIM_Try, /*On fail goto*//*Label 352*/ 7499, // Rule ID 1976 //
    3849             :       GIM_CheckFeatures, GIFBS_HasMSA_IsBE,
    3850             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
    3851             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    3852             :       // (bitconvert:{ *:[v8f16] } v4f32:{ *:[v4f32] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v8f16] } (SHF_H:{ *:[v8i16] } (COPY_TO_REGCLASS:{ *:[v8i16] } v4f32:{ *:[v4f32] }:$src, MSA128H:{ *:[i32] }), 177:{ *:[i32] }), MSA128H:{ *:[i32] })
    3853             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v8s16,
    3854             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v8s16,
    3855             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    3856             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    3857             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src
    3858             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    3859             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/Mips::SHF_H,
    3860             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    3861             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    3862             :       GIR_AddImm, /*InsnID*/1, /*Imm*/177,
    3863             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    3864             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3865             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3866             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    3867             :       GIR_EraseFromParent, /*InsnID*/0,
    3868             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128H*/76,
    3869             :       // GIR_Coverage, 1976,
    3870             :       GIR_Done,
    3871             :     // Label 352: @7499
    3872             :     GIM_Try, /*On fail goto*//*Label 353*/ 7564, // Rule ID 1980 //
    3873             :       GIM_CheckFeatures, GIFBS_HasMSA_IsBE,
    3874             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    3875             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    3876             :       // (bitconvert:{ *:[v8i16] } v2i64:{ *:[v2i64] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v8i16] } (SHF_H:{ *:[v8i16] } (COPY_TO_REGCLASS:{ *:[v8i16] } v2i64:{ *:[v2i64] }:$src, MSA128H:{ *:[i32] }), 27:{ *:[i32] }), MSA128H:{ *:[i32] })
    3877             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v8s16,
    3878             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v8s16,
    3879             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    3880             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    3881             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src
    3882             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    3883             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/Mips::SHF_H,
    3884             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    3885             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    3886             :       GIR_AddImm, /*InsnID*/1, /*Imm*/27,
    3887             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    3888             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3889             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3890             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    3891             :       GIR_EraseFromParent, /*InsnID*/0,
    3892             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128H*/76,
    3893             :       // GIR_Coverage, 1980,
    3894             :       GIR_Done,
    3895             :     // Label 353: @7564
    3896             :     GIM_Try, /*On fail goto*//*Label 354*/ 7629, // Rule ID 1981 //
    3897             :       GIM_CheckFeatures, GIFBS_HasMSA_IsBE,
    3898             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    3899             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    3900             :       // (bitconvert:{ *:[v8f16] } v2i64:{ *:[v2i64] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v8f16] } (SHF_H:{ *:[v8i16] } (COPY_TO_REGCLASS:{ *:[v8i16] } v2i64:{ *:[v2i64] }:$src, MSA128H:{ *:[i32] }), 27:{ *:[i32] }), MSA128H:{ *:[i32] })
    3901             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v8s16,
    3902             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v8s16,
    3903             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    3904             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    3905             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src
    3906             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    3907             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/Mips::SHF_H,
    3908             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    3909             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    3910             :       GIR_AddImm, /*InsnID*/1, /*Imm*/27,
    3911             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    3912             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3913             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3914             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    3915             :       GIR_EraseFromParent, /*InsnID*/0,
    3916             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128H*/76,
    3917             :       // GIR_Coverage, 1981,
    3918             :       GIR_Done,
    3919             :     // Label 354: @7629
    3920             :     GIM_Try, /*On fail goto*//*Label 355*/ 7694, // Rule ID 1985 //
    3921             :       GIM_CheckFeatures, GIFBS_HasMSA_IsBE,
    3922             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    3923             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    3924             :       // (bitconvert:{ *:[v8i16] } v2f64:{ *:[v2f64] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v8i16] } (SHF_H:{ *:[v8i16] } (COPY_TO_REGCLASS:{ *:[v8i16] } v2f64:{ *:[v2f64] }:$src, MSA128H:{ *:[i32] }), 27:{ *:[i32] }), MSA128H:{ *:[i32] })
    3925             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v8s16,
    3926             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v8s16,
    3927             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    3928             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    3929             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src
    3930             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    3931             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/Mips::SHF_H,
    3932             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    3933             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    3934             :       GIR_AddImm, /*InsnID*/1, /*Imm*/27,
    3935             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    3936             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3937             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3938             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    3939             :       GIR_EraseFromParent, /*InsnID*/0,
    3940             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128H*/76,
    3941             :       // GIR_Coverage, 1985,
    3942             :       GIR_Done,
    3943             :     // Label 355: @7694
    3944             :     GIM_Try, /*On fail goto*//*Label 356*/ 7759, // Rule ID 1986 //
    3945             :       GIM_CheckFeatures, GIFBS_HasMSA_IsBE,
    3946             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    3947             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    3948             :       // (bitconvert:{ *:[v8f16] } v2f64:{ *:[v2f64] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v8f16] } (SHF_H:{ *:[v8i16] } (COPY_TO_REGCLASS:{ *:[v8i16] } v2f64:{ *:[v2f64] }:$src, MSA128H:{ *:[i32] }), 27:{ *:[i32] }), MSA128H:{ *:[i32] })
    3949             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v8s16,
    3950             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v8s16,
    3951             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    3952             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    3953             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src
    3954             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    3955             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/Mips::SHF_H,
    3956             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    3957             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    3958             :       GIR_AddImm, /*InsnID*/1, /*Imm*/27,
    3959             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    3960             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3961             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3962             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    3963             :       GIR_EraseFromParent, /*InsnID*/0,
    3964             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128H*/76,
    3965             :       // GIR_Coverage, 1986,
    3966             :       GIR_Done,
    3967             :     // Label 356: @7759
    3968             :     GIM_Reject,
    3969             :     // Label 275: @7760
    3970             :     GIM_Try, /*On fail goto*//*Label 357*/ 7781, // Rule ID 1922 //
    3971             :       GIM_CheckFeatures, GIFBS_HasMSA_IsLE,
    3972             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
    3973             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    3974             :       // (bitconvert:{ *:[v16i8] } v8i16:{ *:[v8i16] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v16i8] } v8i16:{ *:[v8i16] }:$src, MSA128B:{ *:[i32] })
    3975             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3976             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128B*/74,
    3977             :       // GIR_Coverage, 1922,
    3978             :       GIR_Done,
    3979             :     // Label 357: @7781
    3980             :     GIM_Try, /*On fail goto*//*Label 358*/ 7802, // Rule ID 1923 //
    3981             :       GIM_CheckFeatures, GIFBS_HasMSA_IsLE,
    3982             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
    3983             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    3984             :       // (bitconvert:{ *:[v16i8] } v4i32:{ *:[v4i32] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v16i8] } v4i32:{ *:[v4i32] }:$src, MSA128B:{ *:[i32] })
    3985             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3986             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128B*/74,
    3987             :       // GIR_Coverage, 1923,
    3988             :       GIR_Done,
    3989             :     // Label 358: @7802
    3990             :     GIM_Try, /*On fail goto*//*Label 359*/ 7823, // Rule ID 1924 //
    3991             :       GIM_CheckFeatures, GIFBS_HasMSA_IsLE,
    3992             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    3993             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    3994             :       // (bitconvert:{ *:[v16i8] } v2i64:{ *:[v2i64] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v16i8] } v2i64:{ *:[v2i64] }:$src, MSA128B:{ *:[i32] })
    3995             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3996             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128B*/74,
    3997             :       // GIR_Coverage, 1924,
    3998             :       GIR_Done,
    3999             :     // Label 359: @7823
    4000             :     GIM_Try, /*On fail goto*//*Label 360*/ 7844, // Rule ID 1925 //
    4001             :       GIM_CheckFeatures, GIFBS_HasMSA_IsLE,
    4002             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
    4003             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    4004             :       // (bitconvert:{ *:[v16i8] } v8f16:{ *:[v8f16] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v16i8] } v8f16:{ *:[v8f16] }:$src, MSA128B:{ *:[i32] })
    4005             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    4006             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128B*/74,
    4007             :       // GIR_Coverage, 1925,
    4008             :       GIR_Done,
    4009             :     // Label 360: @7844
    4010             :     GIM_Try, /*On fail goto*//*Label 361*/ 7865, // Rule ID 1926 //
    4011             :       GIM_CheckFeatures, GIFBS_HasMSA_IsLE,
    4012             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
    4013             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    4014             :       // (bitconvert:{ *:[v16i8] } v4f32:{ *:[v4f32] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v16i8] } v4f32:{ *:[v4f32] }:$src, MSA128B:{ *:[i32] })
    4015             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    4016             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128B*/74,
    4017             :       // GIR_Coverage, 1926,
    4018             :       GIR_Done,
    4019             :     // Label 361: @7865
    4020             :     GIM_Try, /*On fail goto*//*Label 362*/ 7886, // Rule ID 1927 //
    4021             :       GIM_CheckFeatures, GIFBS_HasMSA_IsLE,
    4022             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    4023             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    4024             :       // (bitconvert:{ *:[v16i8] } v2f64:{ *:[v2f64] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v16i8] } v2f64:{ *:[v2f64] }:$src, MSA128B:{ *:[i32] })
    4025             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    4026             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128B*/74,
    4027             :       // GIR_Coverage, 1927,
    4028             :       GIR_Done,
    4029             :     // Label 362: @7886
    4030             :     GIM_Try, /*On fail goto*//*Label 363*/ 7951, // Rule ID 1959 //
    4031             :       GIM_CheckFeatures, GIFBS_HasMSA_IsBE,
    4032             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
    4033             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    4034             :       // (bitconvert:{ *:[v16i8] } v8i16:{ *:[v8i16] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v16i8] } (SHF_B:{ *:[v16i8] } (COPY_TO_REGCLASS:{ *:[v16i8] } v8i16:{ *:[v8i16] }:$src, MSA128B:{ *:[i32] }), 177:{ *:[i32] }), MSA128B:{ *:[i32] })
    4035             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v16s8,
    4036             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v16s8,
    4037             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    4038             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    4039             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src
    4040             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    4041             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/Mips::SHF_B,
    4042             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    4043             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    4044             :       GIR_AddImm, /*InsnID*/1, /*Imm*/177,
    4045             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    4046             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    4047             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    4048             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    4049             :       GIR_EraseFromParent, /*InsnID*/0,
    4050             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128B*/74,
    4051             :       // GIR_Coverage, 1959,
    4052             :       GIR_Done,
    4053             :     // Label 363: @7951
    4054             :     GIM_Try, /*On fail goto*//*Label 364*/ 8016, // Rule ID 1964 //
    4055             :       GIM_CheckFeatures, GIFBS_HasMSA_IsBE,
    4056             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
    4057             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    4058             :       // (bitconvert:{ *:[v16i8] } v8f16:{ *:[v8f16] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v16i8] } (SHF_B:{ *:[v16i8] } (COPY_TO_REGCLASS:{ *:[v16i8] } v8f16:{ *:[v8f16] }:$src, MSA128B:{ *:[i32] }), 177:{ *:[i32] }), MSA128B:{ *:[i32] })
    4059             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v16s8,
    4060             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v16s8,
    4061             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    4062             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    4063             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src
    4064             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    4065             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/Mips::SHF_B,
    4066             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    4067             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    4068             :       GIR_AddImm, /*InsnID*/1, /*Imm*/177,
    4069             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    4070             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    4071             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    4072             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    4073             :       GIR_EraseFromParent, /*InsnID*/0,
    4074             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128B*/74,
    4075             :       // GIR_Coverage, 1964,
    4076             :       GIR_Done,
    4077             :     // Label 364: @8016
    4078             :     GIM_Try, /*On fail goto*//*Label 365*/ 8081, // Rule ID 1969 //
    4079             :       GIM_CheckFeatures, GIFBS_HasMSA_IsBE,
    4080             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
    4081             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    4082             :       // (bitconvert:{ *:[v16i8] } v4i32:{ *:[v4i32] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v16i8] } (SHF_B:{ *:[v16i8] } (COPY_TO_REGCLASS:{ *:[v16i8] } v4i32:{ *:[v4i32] }:$src, MSA128B:{ *:[i32] }), 27:{ *:[i32] }), MSA128B:{ *:[i32] })
    4083             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v16s8,
    4084             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v16s8,
    4085             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    4086             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    4087             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src
    4088             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    4089             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/Mips::SHF_B,
    4090             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    4091             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    4092             :       GIR_AddImm, /*InsnID*/1, /*Imm*/27,
    4093             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    4094             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    4095             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    4096             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    4097             :       GIR_EraseFromParent, /*InsnID*/0,
    4098             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128B*/74,
    4099             :       // GIR_Coverage, 1969,
    4100             :       GIR_Done,
    4101             :     // Label 365: @8081
    4102             :     GIM_Try, /*On fail goto*//*Label 366*/ 8146, // Rule ID 1974 //
    4103             :       GIM_CheckFeatures, GIFBS_HasMSA_IsBE,
    4104             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
    4105             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    4106             :       // (bitconvert:{ *:[v16i8] } v4f32:{ *:[v4f32] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v16i8] } (SHF_B:{ *:[v16i8] } (COPY_TO_REGCLASS:{ *:[v16i8] } v4f32:{ *:[v4f32] }:$src, MSA128B:{ *:[i32] }), 27:{ *:[i32] }), MSA128B:{ *:[i32] })
    4107             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v16s8,
    4108             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v16s8,
    4109             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    4110             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    4111             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src
    4112             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    4113             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/Mips::SHF_B,
    4114             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    4115             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    4116             :       GIR_AddImm, /*InsnID*/1, /*Imm*/27,
    4117             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    4118             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    4119             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    4120             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    4121             :       GIR_EraseFromParent, /*InsnID*/0,
    4122             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128B*/74,
    4123             :       // GIR_Coverage, 1974,
    4124             :       GIR_Done,
    4125             :     // Label 366: @8146
    4126             :     GIM_Try, /*On fail goto*//*Label 367*/ 8246, // Rule ID 1979 //
    4127             :       GIM_CheckFeatures, GIFBS_HasMSA_IsBE,
    4128             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    4129             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    4130             :       // (bitconvert:{ *:[v16i8] } v2i64:{ *:[v2i64] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v16i8] } (SHF_W:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } (SHF_B:{ *:[v16i8] } (COPY_TO_REGCLASS:{ *:[v16i8] } v2i64:{ *:[v2i64] }:$src, MSA128B:{ *:[i32] }), 27:{ *:[i32] }), MSA128W:{ *:[i32] }), 177:{ *:[i32] }), MSA128B:{ *:[i32] })
    4131             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
    4132             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v4s32,
    4133             :       GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v16s8,
    4134             :       GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_v16s8,
    4135             :       GIR_BuildMI, /*InsnID*/4, /*Opcode*/TargetOpcode::COPY,
    4136             :       GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/3, /*TempRegFlags*/RegState::Define,
    4137             :       GIR_Copy, /*NewInsnID*/4, /*OldInsnID*/0, /*OpIdx*/1, // src
    4138             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/4,
    4139             :       GIR_BuildMI, /*InsnID*/3, /*Opcode*/Mips::SHF_B,
    4140             :       GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
    4141             :       GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/3, /*TempRegFlags*/0,
    4142             :       GIR_AddImm, /*InsnID*/3, /*Imm*/27,
    4143             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
    4144             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    4145             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    4146             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/2, /*TempRegFlags*/0,
    4147             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    4148             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/Mips::SHF_W,
    4149             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    4150             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    4151             :       GIR_AddImm, /*InsnID*/1, /*Imm*/177,
    4152             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    4153             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    4154             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    4155             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    4156             :       GIR_EraseFromParent, /*InsnID*/0,
    4157             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128B*/74,
    4158             :       // GIR_Coverage, 1979,
    4159             :       GIR_Done,
    4160             :     // Label 367: @8246
    4161             :     GIM_Try, /*On fail goto*//*Label 368*/ 8346, // Rule ID 1984 //
    4162             :       GIM_CheckFeatures, GIFBS_HasMSA_IsBE,
    4163             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    4164             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    4165             :       // (bitconvert:{ *:[v16i8] } v2f64:{ *:[v2f64] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v16i8] } (SHF_W:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } (SHF_B:{ *:[v16i8] } (COPY_TO_REGCLASS:{ *:[v16i8] } v2f64:{ *:[v2f64] }:$src, MSA128B:{ *:[i32] }), 27:{ *:[i32] }), MSA128W:{ *:[i32] }), 177:{ *:[i32] }), MSA128B:{ *:[i32] })
    4166             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
    4167             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v4s32,
    4168             :       GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v16s8,
    4169             :       GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_v16s8,
    4170             :       GIR_BuildMI, /*InsnID*/4, /*Opcode*/TargetOpcode::COPY,
    4171             :       GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/3, /*TempRegFlags*/RegState::Define,
    4172             :       GIR_Copy, /*NewInsnID*/4, /*OldInsnID*/0, /*OpIdx*/1, // src
    4173             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/4,
    4174             :       GIR_BuildMI, /*InsnID*/3, /*Opcode*/Mips::SHF_B,
    4175             :       GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
    4176             :       GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/3, /*TempRegFlags*/0,
    4177             :       GIR_AddImm, /*InsnID*/3, /*Imm*/27,
    4178             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
    4179             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    4180             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    4181             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/2, /*TempRegFlags*/0,
    4182             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    4183             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/Mips::SHF_W,
    4184             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    4185             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    4186             :       GIR_AddImm, /*InsnID*/1, /*Imm*/177,
    4187             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    4188             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    4189             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    4190             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    4191             :       GIR_EraseFromParent, /*InsnID*/0,
    4192             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC MSA128B*/74,
    4193             :       // GIR_Coverage, 1984,
    4194             :       GIR_Done,
    4195             :     // Label 368: @8346
    4196             :     GIM_Reject,
    4197             :     // Label 276: @8347
    4198             :     GIM_Reject,
    4199             :     // Label 11: @8348
    4200             :     GIM_Try, /*On fail goto*//*Label 369*/ 8413, // Rule ID 1907 //
    4201             :       GIM_CheckFeatures, GIFBS_HasDSP,
    4202             :       GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    4203             :       GIM_CheckMemorySizeEqualToLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
    4204             :       GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
    4205             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    4206             :       // MIs[0] Operand 1
    4207             :       GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
    4208             :       GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    4209             :       GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
    4210             :       GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
    4211             :       GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
    4212             :       GIM_CheckIsSafeToFold, /*InsnID*/1,
    4213             :       // (ld:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$base, i32:{ *:[i32] }:$index))<<P:Predicate_unindexedload>><<P:Predicate_load>>  =>  (LWX:{ *:[i32] } i32:{ *:[i32] }:$base, i32:{ *:[i32] }:$index)
    4214             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::LWX,
    4215             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    4216             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // base
    4217             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // index
    4218             :       GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
    4219             :       GIR_EraseFromParent, /*InsnID*/0,
    4220             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4221             :       // GIR_Coverage, 1907,
    4222             :       GIR_Done,
    4223             :     // Label 369: @8413
    4224             :     GIM_Reject,
    4225             :     // Label 12: @8414
    4226             :     GIM_Try, /*On fail goto*//*Label 370*/ 8479, // Rule ID 1906 //
    4227             :       GIM_CheckFeatures, GIFBS_HasDSP,
    4228             :       GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    4229             :       GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/2,
    4230             :       GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
    4231             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    4232             :       // MIs[0] Operand 1
    4233             :       GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
    4234             :       GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    4235             :       GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
    4236             :       GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
    4237             :       GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
    4238             :       GIM_CheckIsSafeToFold, /*InsnID*/1,
    4239             :       // (ld:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$base, i32:{ *:[i32] }:$index))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>>  =>  (LHX:{ *:[i32] } i32:{ *:[i32] }:$base, i32:{ *:[i32] }:$index)
    4240             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::LHX,
    4241             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    4242             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // base
    4243             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // index
    4244             :       GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
    4245             :       GIR_EraseFromParent, /*InsnID*/0,
    4246             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4247             :       // GIR_Coverage, 1906,
    4248             :       GIR_Done,
    4249             :     // Label 370: @8479
    4250             :     GIM_Reject,
    4251             :     // Label 13: @8480
    4252             :     GIM_Try, /*On fail goto*//*Label 371*/ 8545, // Rule ID 1905 //
    4253             :       GIM_CheckFeatures, GIFBS_HasDSP,
    4254             :       GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    4255             :       GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/1,
    4256             :       GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
    4257             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    4258             :       // MIs[0] Operand 1
    4259             :       GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
    4260             :       GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    4261             :       GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
    4262             :       GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
    4263             :       GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
    4264             :       GIM_CheckIsSafeToFold, /*InsnID*/1,
    4265             :       // (ld:{ *:[i32] } (add:{ *:[i32] } i32:{ *:[i32] }:$base, i32:{ *:[i32] }:$index))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>>  =>  (LBUX:{ *:[i32] } i32:{ *:[i32] }:$base, i32:{ *:[i32] }:$index)
    4266             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::LBUX,
    4267             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    4268             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // base
    4269             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // index
    4270             :       GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
    4271             :       GIR_EraseFromParent, /*InsnID*/0,
    4272             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4273             :       // GIR_Coverage, 1905,
    4274             :       GIR_Done,
    4275             :     // Label 371: @8545
    4276             :     GIM_Reject,
    4277             :     // Label 14: @8546
    4278             :     GIM_Try, /*On fail goto*//*Label 372*/ 10740,
    4279             :       GIM_CheckNumOperands, /*MI*/0, /*Expected*/3,
    4280             :       GIM_Try, /*On fail goto*//*Label 373*/ 8598, // Rule ID 400 //
    4281             :         GIM_CheckFeatures, GIFBS_HasDSP,
    4282             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_repl_qb,
    4283             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s8,
    4284             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    4285             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    4286             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    4287             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    4288             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt8,
    4289             :         // MIs[1] Operand 1
    4290             :         // No operand predicates
    4291             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    4292             :         // (intrinsic_wo_chain:{ *:[v4i8] } 3509:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_immZExt8>>:$imm)  =>  (REPL_QB:{ *:[v4i8] } (imm:{ *:[i32] }):$imm)
    4293             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::REPL_QB,
    4294             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    4295             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
    4296             :         GIR_EraseFromParent, /*InsnID*/0,
    4297             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4298             :         // GIR_Coverage, 400,
    4299             :         GIR_Done,
    4300             :       // Label 373: @8598
    4301             :       GIM_Try, /*On fail goto*//*Label 374*/ 8645, // Rule ID 401 //
    4302             :         GIM_CheckFeatures, GIFBS_HasDSP,
    4303             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_repl_ph,
    4304             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    4305             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    4306             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    4307             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    4308             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    4309             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immSExt10,
    4310             :         // MIs[1] Operand 1
    4311             :         // No operand predicates
    4312             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    4313             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3508:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_immSExt10>>:$imm)  =>  (REPL_PH:{ *:[v2i16] } (imm:{ *:[i32] }):$imm)
    4314             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::REPL_PH,
    4315             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    4316             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
    4317             :         GIR_EraseFromParent, /*InsnID*/0,
    4318             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4319             :         // GIR_Coverage, 401,
    4320             :         GIR_Done,
    4321             :       // Label 374: @8645
    4322             :       GIM_Try, /*On fail goto*//*Label 375*/ 8692, // Rule ID 1254 //
    4323             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
    4324             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_repl_ph,
    4325             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    4326             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    4327             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    4328             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    4329             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    4330             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immSExt10,
    4331             :         // MIs[1] Operand 1
    4332             :         // No operand predicates
    4333             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    4334             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3508:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_immSExt10>>:$imm)  =>  (REPL_PH_MM:{ *:[v2i16] } (imm:{ *:[i32] }):$imm)
    4335             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::REPL_PH_MM,
    4336             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    4337             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
    4338             :         GIR_EraseFromParent, /*InsnID*/0,
    4339             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4340             :         // GIR_Coverage, 1254,
    4341             :         GIR_Done,
    4342             :       // Label 375: @8692
    4343             :       GIM_Try, /*On fail goto*//*Label 376*/ 8739, // Rule ID 1255 //
    4344             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
    4345             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_repl_qb,
    4346             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s8,
    4347             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    4348             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    4349             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    4350             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    4351             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt8,
    4352             :         // MIs[1] Operand 1
    4353             :         // No operand predicates
    4354             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    4355             :         // (intrinsic_wo_chain:{ *:[v4i8] } 3509:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_immZExt8>>:$imm)  =>  (REPL_QB_MM:{ *:[v4i8] } (imm:{ *:[i32] }):$imm)
    4356             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::REPL_QB_MM,
    4357             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rt
    4358             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
    4359             :         GIR_EraseFromParent, /*InsnID*/0,
    4360             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4361             :         // GIR_Coverage, 1255,
    4362             :         GIR_Done,
    4363             :       // Label 376: @8739
    4364             :       GIM_Try, /*On fail goto*//*Label 377*/ 8779, // Rule ID 334 //
    4365             :         GIM_CheckFeatures, GIFBS_HasDSP,
    4366             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_raddu_w_qb,
    4367             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    4368             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
    4369             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    4370             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    4371             :         // (intrinsic_wo_chain:{ *:[i32] } 3506:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs)  =>  (RADDU_W_QB:{ *:[i32] } DSPROpnd:{ *:[v4i8] }:$rs)
    4372             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::RADDU_W_QB,
    4373             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    4374             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    4375             :         GIR_EraseFromParent, /*InsnID*/0,
    4376             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4377             :         // GIR_Coverage, 334,
    4378             :         GIR_Done,
    4379             :       // Label 377: @8779
    4380             :       GIM_Try, /*On fail goto*//*Label 378*/ 8819, // Rule ID 341 //
    4381             :         GIM_CheckFeatures, GIFBS_HasDSP,
    4382             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_preceq_w_phl,
    4383             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    4384             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
    4385             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    4386             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    4387             :         // (intrinsic_wo_chain:{ *:[i32] } 3488:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (PRECEQ_W_PHL:{ *:[i32] } DSPROpnd:{ *:[v2i16] }:$rt)
    4388             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::PRECEQ_W_PHL,
    4389             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    4390             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
    4391             :         GIR_EraseFromParent, /*InsnID*/0,
    4392             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4393             :         // GIR_Coverage, 341,
    4394             :         GIR_Done,
    4395             :       // Label 378: @8819
    4396             :       GIM_Try, /*On fail goto*//*Label 379*/ 8859, // Rule ID 342 //
    4397             :         GIM_CheckFeatures, GIFBS_HasDSP,
    4398             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_preceq_w_phr,
    4399             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    4400             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
    4401             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    4402             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    4403             :         // (intrinsic_wo_chain:{ *:[i32] } 3489:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (PRECEQ_W_PHR:{ *:[i32] } DSPROpnd:{ *:[v2i16] }:$rt)
    4404             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::PRECEQ_W_PHR,
    4405             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    4406             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
    4407             :         GIR_EraseFromParent, /*InsnID*/0,
    4408             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4409             :         // GIR_Coverage, 342,
    4410             :         GIR_Done,
    4411             :       // Label 379: @8859
    4412             :       GIM_Try, /*On fail goto*//*Label 380*/ 8899, // Rule ID 343 //
    4413             :         GIM_CheckFeatures, GIFBS_HasDSP,
    4414             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_precequ_ph_qbl,
    4415             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    4416             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
    4417             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    4418             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    4419             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3490:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rt)  =>  (PRECEQU_PH_QBL:{ *:[v2i16] } DSPROpnd:{ *:[v4i8] }:$rt)
    4420             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::PRECEQU_PH_QBL,
    4421             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    4422             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
    4423             :         GIR_EraseFromParent, /*InsnID*/0,
    4424             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4425             :         // GIR_Coverage, 343,
    4426             :         GIR_Done,
    4427             :       // Label 380: @8899
    4428             :       GIM_Try, /*On fail goto*//*Label 381*/ 8939, // Rule ID 344 //
    4429             :         GIM_CheckFeatures, GIFBS_HasDSP,
    4430             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_precequ_ph_qbr,
    4431             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    4432             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
    4433             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    4434             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    4435             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3492:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rt)  =>  (PRECEQU_PH_QBR:{ *:[v2i16] } DSPROpnd:{ *:[v4i8] }:$rt)
    4436             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::PRECEQU_PH_QBR,
    4437             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    4438             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
    4439             :         GIR_EraseFromParent, /*InsnID*/0,
    4440             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4441             :         // GIR_Coverage, 344,
    4442             :         GIR_Done,
    4443             :       // Label 381: @8939
    4444             :       GIM_Try, /*On fail goto*//*Label 382*/ 8979, // Rule ID 345 //
    4445             :         GIM_CheckFeatures, GIFBS_HasDSP,
    4446             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_precequ_ph_qbla,
    4447             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    4448             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
    4449             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    4450             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    4451             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3491:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rt)  =>  (PRECEQU_PH_QBLA:{ *:[v2i16] } DSPROpnd:{ *:[v4i8] }:$rt)
    4452             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::PRECEQU_PH_QBLA,
    4453             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    4454             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
    4455             :         GIR_EraseFromParent, /*InsnID*/0,
    4456             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4457             :         // GIR_Coverage, 345,
    4458             :         GIR_Done,
    4459             :       // Label 382: @8979
    4460             :       GIM_Try, /*On fail goto*//*Label 383*/ 9019, // Rule ID 346 //
    4461             :         GIM_CheckFeatures, GIFBS_HasDSP,
    4462             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_precequ_ph_qbra,
    4463             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    4464             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
    4465             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    4466             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    4467             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3493:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rt)  =>  (PRECEQU_PH_QBRA:{ *:[v2i16] } DSPROpnd:{ *:[v4i8] }:$rt)
    4468             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::PRECEQU_PH_QBRA,
    4469             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    4470             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
    4471             :         GIR_EraseFromParent, /*InsnID*/0,
    4472             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4473             :         // GIR_Coverage, 346,
    4474             :         GIR_Done,
    4475             :       // Label 383: @9019
    4476             :       GIM_Try, /*On fail goto*//*Label 384*/ 9059, // Rule ID 347 //
    4477             :         GIM_CheckFeatures, GIFBS_HasDSP,
    4478             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_preceu_ph_qbl,
    4479             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    4480             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
    4481             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    4482             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    4483             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3494:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rt)  =>  (PRECEU_PH_QBL:{ *:[v2i16] } DSPROpnd:{ *:[v4i8] }:$rt)
    4484             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::PRECEU_PH_QBL,
    4485             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    4486             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
    4487             :         GIR_EraseFromParent, /*InsnID*/0,
    4488             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4489             :         // GIR_Coverage, 347,
    4490             :         GIR_Done,
    4491             :       // Label 384: @9059
    4492             :       GIM_Try, /*On fail goto*//*Label 385*/ 9099, // Rule ID 348 //
    4493             :         GIM_CheckFeatures, GIFBS_HasDSP,
    4494             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_preceu_ph_qbr,
    4495             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    4496             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
    4497             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    4498             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    4499             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3496:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rt)  =>  (PRECEU_PH_QBR:{ *:[v2i16] } DSPROpnd:{ *:[v4i8] }:$rt)
    4500             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::PRECEU_PH_QBR,
    4501             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    4502             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
    4503             :         GIR_EraseFromParent, /*InsnID*/0,
    4504             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4505             :         // GIR_Coverage, 348,
    4506             :         GIR_Done,
    4507             :       // Label 385: @9099
    4508             :       GIM_Try, /*On fail goto*//*Label 386*/ 9139, // Rule ID 349 //
    4509             :         GIM_CheckFeatures, GIFBS_HasDSP,
    4510             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_preceu_ph_qbla,
    4511             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    4512             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
    4513             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    4514             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    4515             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3495:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rt)  =>  (PRECEU_PH_QBLA:{ *:[v2i16] } DSPROpnd:{ *:[v4i8] }:$rt)
    4516             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::PRECEU_PH_QBLA,
    4517             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    4518             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
    4519             :         GIR_EraseFromParent, /*InsnID*/0,
    4520             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4521             :         // GIR_Coverage, 349,
    4522             :         GIR_Done,
    4523             :       // Label 386: @9139
    4524             :       GIM_Try, /*On fail goto*//*Label 387*/ 9179, // Rule ID 350 //
    4525             :         GIM_CheckFeatures, GIFBS_HasDSP,
    4526             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_preceu_ph_qbra,
    4527             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    4528             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
    4529             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    4530             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    4531             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3497:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rt)  =>  (PRECEU_PH_QBRA:{ *:[v2i16] } DSPROpnd:{ *:[v4i8] }:$rt)
    4532             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::PRECEU_PH_QBRA,
    4533             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    4534             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
    4535             :         GIR_EraseFromParent, /*InsnID*/0,
    4536             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4537             :         // GIR_Coverage, 350,
    4538             :         GIR_Done,
    4539             :       // Label 387: @9179
    4540             :       GIM_Try, /*On fail goto*//*Label 388*/ 9219, // Rule ID 398 //
    4541             :         GIM_CheckFeatures, GIFBS_HasDSP,
    4542             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_bitrev,
    4543             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    4544             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    4545             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    4546             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    4547             :         // (intrinsic_wo_chain:{ *:[i32] } 3064:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rt)  =>  (BITREV:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rt)
    4548             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::BITREV,
    4549             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    4550             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
    4551             :         GIR_EraseFromParent, /*InsnID*/0,
    4552             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4553             :         // GIR_Coverage, 398,
    4554             :         GIR_Done,
    4555             :       // Label 388: @9219
    4556             :       GIM_Try, /*On fail goto*//*Label 389*/ 9259, // Rule ID 402 //
    4557             :         GIM_CheckFeatures, GIFBS_HasDSP,
    4558             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_repl_qb,
    4559             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s8,
    4560             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    4561             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    4562             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    4563             :         // (intrinsic_wo_chain:{ *:[v4i8] } 3509:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rt)  =>  (REPLV_QB:{ *:[v4i8] } GPR32Opnd:{ *:[i32] }:$rt)
    4564             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::REPLV_QB,
    4565             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    4566             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
    4567             :         GIR_EraseFromParent, /*InsnID*/0,
    4568             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4569             :         // GIR_Coverage, 402,
    4570             :         GIR_Done,
    4571             :       // Label 389: @9259
    4572             :       GIM_Try, /*On fail goto*//*Label 390*/ 9299, // Rule ID 403 //
    4573             :         GIM_CheckFeatures, GIFBS_HasDSP,
    4574             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_repl_ph,
    4575             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    4576             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    4577             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    4578             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    4579             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3508:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rt)  =>  (REPLV_PH:{ *:[v2i16] } GPR32Opnd:{ *:[i32] }:$rt)
    4580             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::REPLV_PH,
    4581             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    4582             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
    4583             :         GIR_EraseFromParent, /*InsnID*/0,
    4584             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4585             :         // GIR_Coverage, 403,
    4586             :         GIR_Done,
    4587             :       // Label 390: @9299
    4588             :       GIM_Try, /*On fail goto*//*Label 391*/ 9339, // Rule ID 648 //
    4589             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    4590             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_fclass_w,
    4591             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    4592             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    4593             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    4594             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    4595             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3216:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4f32] }:$ws)  =>  (FCLASS_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4f32] }:$ws)
    4596             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FCLASS_W,
    4597             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    4598             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    4599             :         GIR_EraseFromParent, /*InsnID*/0,
    4600             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4601             :         // GIR_Coverage, 648,
    4602             :         GIR_Done,
    4603             :       // Label 391: @9339
    4604             :       GIM_Try, /*On fail goto*//*Label 392*/ 9379, // Rule ID 649 //
    4605             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    4606             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_fclass_d,
    4607             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    4608             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    4609             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    4610             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    4611             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3215:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2f64] }:$ws)  =>  (FCLASS_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2f64] }:$ws)
    4612             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FCLASS_D,
    4613             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    4614             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    4615             :         GIR_EraseFromParent, /*InsnID*/0,
    4616             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4617             :         // GIR_Coverage, 649,
    4618             :         GIR_Done,
    4619             :       // Label 392: @9379
    4620             :       GIM_Try, /*On fail goto*//*Label 393*/ 9419, // Rule ID 672 //
    4621             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    4622             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_fexupl_w,
    4623             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    4624             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    4625             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    4626             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    4627             :         // (intrinsic_wo_chain:{ *:[v4f32] } 3242:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8f16] }:$ws)  =>  (FEXUPL_W:{ *:[v4f32] } MSA128HOpnd:{ *:[v8f16] }:$ws)
    4628             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FEXUPL_W,
    4629             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    4630             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    4631             :         GIR_EraseFromParent, /*InsnID*/0,
    4632             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4633             :         // GIR_Coverage, 672,
    4634             :         GIR_Done,
    4635             :       // Label 393: @9419
    4636             :       GIM_Try, /*On fail goto*//*Label 394*/ 9459, // Rule ID 673 //
    4637             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    4638             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_fexupl_d,
    4639             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    4640             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    4641             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    4642             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    4643             :         // (intrinsic_wo_chain:{ *:[v2f64] } 3241:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4f32] }:$ws)  =>  (FEXUPL_D:{ *:[v2f64] } MSA128WOpnd:{ *:[v4f32] }:$ws)
    4644             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FEXUPL_D,
    4645             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    4646             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    4647             :         GIR_EraseFromParent, /*InsnID*/0,
    4648             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4649             :         // GIR_Coverage, 673,
    4650             :         GIR_Done,
    4651             :       // Label 394: @9459
    4652             :       GIM_Try, /*On fail goto*//*Label 395*/ 9499, // Rule ID 674 //
    4653             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    4654             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_fexupr_w,
    4655             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    4656             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    4657             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    4658             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    4659             :         // (intrinsic_wo_chain:{ *:[v4f32] } 3244:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8f16] }:$ws)  =>  (FEXUPR_W:{ *:[v4f32] } MSA128HOpnd:{ *:[v8f16] }:$ws)
    4660             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FEXUPR_W,
    4661             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    4662             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    4663             :         GIR_EraseFromParent, /*InsnID*/0,
    4664             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4665             :         // GIR_Coverage, 674,
    4666             :         GIR_Done,
    4667             :       // Label 395: @9499
    4668             :       GIM_Try, /*On fail goto*//*Label 396*/ 9539, // Rule ID 675 //
    4669             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    4670             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_fexupr_d,
    4671             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    4672             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    4673             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    4674             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    4675             :         // (intrinsic_wo_chain:{ *:[v2f64] } 3243:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4f32] }:$ws)  =>  (FEXUPR_D:{ *:[v2f64] } MSA128WOpnd:{ *:[v4f32] }:$ws)
    4676             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FEXUPR_D,
    4677             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    4678             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    4679             :         GIR_EraseFromParent, /*InsnID*/0,
    4680             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4681             :         // GIR_Coverage, 675,
    4682             :         GIR_Done,
    4683             :       // Label 396: @9539
    4684             :       GIM_Try, /*On fail goto*//*Label 397*/ 9579, // Rule ID 680 //
    4685             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    4686             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_ffql_w,
    4687             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    4688             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    4689             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    4690             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    4691             :         // (intrinsic_wo_chain:{ *:[v4f32] } 3250:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$ws)  =>  (FFQL_W:{ *:[v4f32] } MSA128HOpnd:{ *:[v8i16] }:$ws)
    4692             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FFQL_W,
    4693             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    4694             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    4695             :         GIR_EraseFromParent, /*InsnID*/0,
    4696             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4697             :         // GIR_Coverage, 680,
    4698             :         GIR_Done,
    4699             :       // Label 397: @9579
    4700             :       GIM_Try, /*On fail goto*//*Label 398*/ 9619, // Rule ID 681 //
    4701             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    4702             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_ffql_d,
    4703             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    4704             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    4705             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    4706             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    4707             :         // (intrinsic_wo_chain:{ *:[v2f64] } 3249:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$ws)  =>  (FFQL_D:{ *:[v2f64] } MSA128WOpnd:{ *:[v4i32] }:$ws)
    4708             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FFQL_D,
    4709             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    4710             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    4711             :         GIR_EraseFromParent, /*InsnID*/0,
    4712             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4713             :         // GIR_Coverage, 681,
    4714             :         GIR_Done,
    4715             :       // Label 398: @9619
    4716             :       GIM_Try, /*On fail goto*//*Label 399*/ 9659, // Rule ID 682 //
    4717             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    4718             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_ffqr_w,
    4719             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    4720             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    4721             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    4722             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    4723             :         // (intrinsic_wo_chain:{ *:[v4f32] } 3252:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$ws)  =>  (FFQR_W:{ *:[v4f32] } MSA128HOpnd:{ *:[v8i16] }:$ws)
    4724             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FFQR_W,
    4725             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    4726             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    4727             :         GIR_EraseFromParent, /*InsnID*/0,
    4728             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4729             :         // GIR_Coverage, 682,
    4730             :         GIR_Done,
    4731             :       // Label 399: @9659
    4732             :       GIM_Try, /*On fail goto*//*Label 400*/ 9699, // Rule ID 683 //
    4733             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    4734             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_ffqr_d,
    4735             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    4736             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    4737             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    4738             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    4739             :         // (intrinsic_wo_chain:{ *:[v2f64] } 3251:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$ws)  =>  (FFQR_D:{ *:[v2f64] } MSA128WOpnd:{ *:[v4i32] }:$ws)
    4740             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FFQR_D,
    4741             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    4742             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    4743             :         GIR_EraseFromParent, /*InsnID*/0,
    4744             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4745             :         // GIR_Coverage, 683,
    4746             :         GIR_Done,
    4747             :       // Label 400: @9699
    4748             :       GIM_Try, /*On fail goto*//*Label 401*/ 9739, // Rule ID 708 //
    4749             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    4750             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_frcp_w,
    4751             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    4752             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    4753             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    4754             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    4755             :         // (intrinsic_wo_chain:{ *:[v4f32] } 3274:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4f32] }:$ws)  =>  (FRCP_W:{ *:[v4f32] } MSA128WOpnd:{ *:[v4f32] }:$ws)
    4756             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FRCP_W,
    4757             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    4758             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    4759             :         GIR_EraseFromParent, /*InsnID*/0,
    4760             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4761             :         // GIR_Coverage, 708,
    4762             :         GIR_Done,
    4763             :       // Label 401: @9739
    4764             :       GIM_Try, /*On fail goto*//*Label 402*/ 9779, // Rule ID 709 //
    4765             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    4766             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_frcp_d,
    4767             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    4768             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    4769             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    4770             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    4771             :         // (intrinsic_wo_chain:{ *:[v2f64] } 3273:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2f64] }:$ws)  =>  (FRCP_D:{ *:[v2f64] } MSA128DOpnd:{ *:[v2f64] }:$ws)
    4772             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FRCP_D,
    4773             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    4774             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    4775             :         GIR_EraseFromParent, /*InsnID*/0,
    4776             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4777             :         // GIR_Coverage, 709,
    4778             :         GIR_Done,
    4779             :       // Label 402: @9779
    4780             :       GIM_Try, /*On fail goto*//*Label 403*/ 9819, // Rule ID 710 //
    4781             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    4782             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_frsqrt_w,
    4783             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    4784             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    4785             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    4786             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    4787             :         // (intrinsic_wo_chain:{ *:[v4f32] } 3278:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4f32] }:$ws)  =>  (FRSQRT_W:{ *:[v4f32] } MSA128WOpnd:{ *:[v4f32] }:$ws)
    4788             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FRSQRT_W,
    4789             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    4790             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    4791             :         GIR_EraseFromParent, /*InsnID*/0,
    4792             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4793             :         // GIR_Coverage, 710,
    4794             :         GIR_Done,
    4795             :       // Label 403: @9819
    4796             :       GIM_Try, /*On fail goto*//*Label 404*/ 9859, // Rule ID 711 //
    4797             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    4798             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_frsqrt_d,
    4799             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    4800             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    4801             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    4802             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    4803             :         // (intrinsic_wo_chain:{ *:[v2f64] } 3277:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2f64] }:$ws)  =>  (FRSQRT_D:{ *:[v2f64] } MSA128DOpnd:{ *:[v2f64] }:$ws)
    4804             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FRSQRT_D,
    4805             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    4806             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    4807             :         GIR_EraseFromParent, /*InsnID*/0,
    4808             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4809             :         // GIR_Coverage, 711,
    4810             :         GIR_Done,
    4811             :       // Label 404: @9859
    4812             :       GIM_Try, /*On fail goto*//*Label 405*/ 9899, // Rule ID 738 //
    4813             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    4814             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_ftint_s_w,
    4815             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    4816             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    4817             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    4818             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    4819             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3306:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4f32] }:$ws)  =>  (FTINT_S_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4f32] }:$ws)
    4820             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FTINT_S_W,
    4821             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    4822             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    4823             :         GIR_EraseFromParent, /*InsnID*/0,
    4824             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4825             :         // GIR_Coverage, 738,
    4826             :         GIR_Done,
    4827             :       // Label 405: @9899
    4828             :       GIM_Try, /*On fail goto*//*Label 406*/ 9939, // Rule ID 739 //
    4829             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    4830             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_ftint_s_d,
    4831             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    4832             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    4833             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    4834             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    4835             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3305:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2f64] }:$ws)  =>  (FTINT_S_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2f64] }:$ws)
    4836             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FTINT_S_D,
    4837             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    4838             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    4839             :         GIR_EraseFromParent, /*InsnID*/0,
    4840             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4841             :         // GIR_Coverage, 739,
    4842             :         GIR_Done,
    4843             :       // Label 406: @9939
    4844             :       GIM_Try, /*On fail goto*//*Label 407*/ 9979, // Rule ID 740 //
    4845             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    4846             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_ftint_u_w,
    4847             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    4848             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    4849             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    4850             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    4851             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3308:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4f32] }:$ws)  =>  (FTINT_U_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4f32] }:$ws)
    4852             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FTINT_U_W,
    4853             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    4854             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    4855             :         GIR_EraseFromParent, /*InsnID*/0,
    4856             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4857             :         // GIR_Coverage, 740,
    4858             :         GIR_Done,
    4859             :       // Label 407: @9979
    4860             :       GIM_Try, /*On fail goto*//*Label 408*/ 10019, // Rule ID 741 //
    4861             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    4862             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_ftint_u_d,
    4863             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    4864             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    4865             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    4866             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    4867             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3307:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2f64] }:$ws)  =>  (FTINT_U_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2f64] }:$ws)
    4868             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FTINT_U_D,
    4869             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    4870             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    4871             :         GIR_EraseFromParent, /*InsnID*/0,
    4872             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4873             :         // GIR_Coverage, 741,
    4874             :         GIR_Done,
    4875             :       // Label 408: @10019
    4876             :       GIM_Try, /*On fail goto*//*Label 409*/ 10059, // Rule ID 876 //
    4877             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    4878             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_nloc_b,
    4879             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
    4880             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    4881             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    4882             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    4883             :         // (intrinsic_wo_chain:{ *:[v16i8] } 3461:{ *:[iPTR] }, MSA128BOpnd:{ *:[v16i8] }:$ws)  =>  (NLOC_B:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws)
    4884             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::NLOC_B,
    4885             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    4886             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    4887             :         GIR_EraseFromParent, /*InsnID*/0,
    4888             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4889             :         // GIR_Coverage, 876,
    4890             :         GIR_Done,
    4891             :       // Label 409: @10059
    4892             :       GIM_Try, /*On fail goto*//*Label 410*/ 10099, // Rule ID 877 //
    4893             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    4894             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_nloc_h,
    4895             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    4896             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    4897             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    4898             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    4899             :         // (intrinsic_wo_chain:{ *:[v8i16] } 3463:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$ws)  =>  (NLOC_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws)
    4900             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::NLOC_H,
    4901             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    4902             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    4903             :         GIR_EraseFromParent, /*InsnID*/0,
    4904             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4905             :         // GIR_Coverage, 877,
    4906             :         GIR_Done,
    4907             :       // Label 410: @10099
    4908             :       GIM_Try, /*On fail goto*//*Label 411*/ 10139, // Rule ID 878 //
    4909             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    4910             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_nloc_w,
    4911             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    4912             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    4913             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    4914             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    4915             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3464:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$ws)  =>  (NLOC_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws)
    4916             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::NLOC_W,
    4917             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    4918             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    4919             :         GIR_EraseFromParent, /*InsnID*/0,
    4920             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4921             :         // GIR_Coverage, 878,
    4922             :         GIR_Done,
    4923             :       // Label 411: @10139
    4924             :       GIM_Try, /*On fail goto*//*Label 412*/ 10179, // Rule ID 879 //
    4925             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    4926             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_nloc_d,
    4927             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    4928             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    4929             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    4930             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    4931             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3462:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2i64] }:$ws)  =>  (NLOC_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws)
    4932             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::NLOC_D,
    4933             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    4934             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    4935             :         GIR_EraseFromParent, /*InsnID*/0,
    4936             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4937             :         // GIR_Coverage, 879,
    4938             :         GIR_Done,
    4939             :       // Label 412: @10179
    4940             :       GIM_Try, /*On fail goto*//*Label 413*/ 10219, // Rule ID 1217 //
    4941             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
    4942             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_preceq_w_phl,
    4943             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    4944             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
    4945             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    4946             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    4947             :         // (intrinsic_wo_chain:{ *:[i32] } 3488:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs)  =>  (PRECEQ_W_PHL_MM:{ *:[i32] } DSPROpnd:{ *:[v2i16] }:$rs)
    4948             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::PRECEQ_W_PHL_MM,
    4949             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rt
    4950             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    4951             :         GIR_EraseFromParent, /*InsnID*/0,
    4952             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4953             :         // GIR_Coverage, 1217,
    4954             :         GIR_Done,
    4955             :       // Label 413: @10219
    4956             :       GIM_Try, /*On fail goto*//*Label 414*/ 10259, // Rule ID 1218 //
    4957             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
    4958             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_preceq_w_phr,
    4959             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    4960             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
    4961             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    4962             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    4963             :         // (intrinsic_wo_chain:{ *:[i32] } 3489:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs)  =>  (PRECEQ_W_PHR_MM:{ *:[i32] } DSPROpnd:{ *:[v2i16] }:$rs)
    4964             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::PRECEQ_W_PHR_MM,
    4965             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rt
    4966             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    4967             :         GIR_EraseFromParent, /*InsnID*/0,
    4968             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4969             :         // GIR_Coverage, 1218,
    4970             :         GIR_Done,
    4971             :       // Label 414: @10259
    4972             :       GIM_Try, /*On fail goto*//*Label 415*/ 10299, // Rule ID 1219 //
    4973             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
    4974             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_precequ_ph_qbl,
    4975             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    4976             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
    4977             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    4978             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    4979             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3490:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs)  =>  (PRECEQU_PH_QBL_MM:{ *:[v2i16] } DSPROpnd:{ *:[v4i8] }:$rs)
    4980             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::PRECEQU_PH_QBL_MM,
    4981             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rt
    4982             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    4983             :         GIR_EraseFromParent, /*InsnID*/0,
    4984             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4985             :         // GIR_Coverage, 1219,
    4986             :         GIR_Done,
    4987             :       // Label 415: @10299
    4988             :       GIM_Try, /*On fail goto*//*Label 416*/ 10339, // Rule ID 1220 //
    4989             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
    4990             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_precequ_ph_qbla,
    4991             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    4992             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
    4993             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    4994             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    4995             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3491:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs)  =>  (PRECEQU_PH_QBLA_MM:{ *:[v2i16] } DSPROpnd:{ *:[v4i8] }:$rs)
    4996             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::PRECEQU_PH_QBLA_MM,
    4997             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rt
    4998             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    4999             :         GIR_EraseFromParent, /*InsnID*/0,
    5000             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5001             :         // GIR_Coverage, 1220,
    5002             :         GIR_Done,
    5003             :       // Label 416: @10339
    5004             :       GIM_Try, /*On fail goto*//*Label 417*/ 10379, // Rule ID 1221 //
    5005             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
    5006             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_precequ_ph_qbr,
    5007             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    5008             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
    5009             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    5010             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    5011             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3492:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs)  =>  (PRECEQU_PH_QBR_MM:{ *:[v2i16] } DSPROpnd:{ *:[v4i8] }:$rs)
    5012             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::PRECEQU_PH_QBR_MM,
    5013             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rt
    5014             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    5015             :         GIR_EraseFromParent, /*InsnID*/0,
    5016             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5017             :         // GIR_Coverage, 1221,
    5018             :         GIR_Done,
    5019             :       // Label 417: @10379
    5020             :       GIM_Try, /*On fail goto*//*Label 418*/ 10419, // Rule ID 1222 //
    5021             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
    5022             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_precequ_ph_qbra,
    5023             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    5024             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
    5025             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    5026             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    5027             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3493:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs)  =>  (PRECEQU_PH_QBRA_MM:{ *:[v2i16] } DSPROpnd:{ *:[v4i8] }:$rs)
    5028             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::PRECEQU_PH_QBRA_MM,
    5029             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rt
    5030             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    5031             :         GIR_EraseFromParent, /*InsnID*/0,
    5032             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5033             :         // GIR_Coverage, 1222,
    5034             :         GIR_Done,
    5035             :       // Label 418: @10419
    5036             :       GIM_Try, /*On fail goto*//*Label 419*/ 10459, // Rule ID 1223 //
    5037             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
    5038             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_preceu_ph_qbl,
    5039             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    5040             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
    5041             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    5042             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    5043             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3494:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs)  =>  (PRECEU_PH_QBL_MM:{ *:[v2i16] } DSPROpnd:{ *:[v4i8] }:$rs)
    5044             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::PRECEU_PH_QBL_MM,
    5045             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rt
    5046             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    5047             :         GIR_EraseFromParent, /*InsnID*/0,
    5048             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5049             :         // GIR_Coverage, 1223,
    5050             :         GIR_Done,
    5051             :       // Label 419: @10459
    5052             :       GIM_Try, /*On fail goto*//*Label 420*/ 10499, // Rule ID 1224 //
    5053             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
    5054             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_preceu_ph_qbla,
    5055             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    5056             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
    5057             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    5058             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    5059             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3495:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs)  =>  (PRECEU_PH_QBLA_MM:{ *:[v2i16] } DSPROpnd:{ *:[v4i8] }:$rs)
    5060             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::PRECEU_PH_QBLA_MM,
    5061             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rt
    5062             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    5063             :         GIR_EraseFromParent, /*InsnID*/0,
    5064             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5065             :         // GIR_Coverage, 1224,
    5066             :         GIR_Done,
    5067             :       // Label 420: @10499
    5068             :       GIM_Try, /*On fail goto*//*Label 421*/ 10539, // Rule ID 1225 //
    5069             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
    5070             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_preceu_ph_qbr,
    5071             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    5072             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
    5073             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    5074             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    5075             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3496:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs)  =>  (PRECEU_PH_QBR_MM:{ *:[v2i16] } DSPROpnd:{ *:[v4i8] }:$rs)
    5076             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::PRECEU_PH_QBR_MM,
    5077             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rt
    5078             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    5079             :         GIR_EraseFromParent, /*InsnID*/0,
    5080             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5081             :         // GIR_Coverage, 1225,
    5082             :         GIR_Done,
    5083             :       // Label 421: @10539
    5084             :       GIM_Try, /*On fail goto*//*Label 422*/ 10579, // Rule ID 1226 //
    5085             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
    5086             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_preceu_ph_qbra,
    5087             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    5088             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
    5089             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    5090             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    5091             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3497:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs)  =>  (PRECEU_PH_QBRA_MM:{ *:[v2i16] } DSPROpnd:{ *:[v4i8] }:$rs)
    5092             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::PRECEU_PH_QBRA_MM,
    5093             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rt
    5094             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    5095             :         GIR_EraseFromParent, /*InsnID*/0,
    5096             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5097             :         // GIR_Coverage, 1226,
    5098             :         GIR_Done,
    5099             :       // Label 422: @10579
    5100             :       GIM_Try, /*On fail goto*//*Label 423*/ 10619, // Rule ID 1252 //
    5101             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
    5102             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_raddu_w_qb,
    5103             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    5104             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
    5105             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    5106             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    5107             :         // (intrinsic_wo_chain:{ *:[i32] } 3506:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs)  =>  (RADDU_W_QB_MM:{ *:[i32] } DSPROpnd:{ *:[v4i8] }:$rs)
    5108             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::RADDU_W_QB_MM,
    5109             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rt
    5110             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    5111             :         GIR_EraseFromParent, /*InsnID*/0,
    5112             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5113             :         // GIR_Coverage, 1252,
    5114             :         GIR_Done,
    5115             :       // Label 423: @10619
    5116             :       GIM_Try, /*On fail goto*//*Label 424*/ 10659, // Rule ID 1256 //
    5117             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
    5118             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_repl_ph,
    5119             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    5120             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    5121             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    5122             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    5123             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3508:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rs)  =>  (REPLV_PH_MM:{ *:[v2i16] } GPR32Opnd:{ *:[i32] }:$rs)
    5124             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::REPLV_PH_MM,
    5125             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rt
    5126             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    5127             :         GIR_EraseFromParent, /*InsnID*/0,
    5128             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5129             :         // GIR_Coverage, 1256,
    5130             :         GIR_Done,
    5131             :       // Label 424: @10659
    5132             :       GIM_Try, /*On fail goto*//*Label 425*/ 10699, // Rule ID 1257 //
    5133             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
    5134             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_repl_qb,
    5135             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s8,
    5136             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    5137             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    5138             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    5139             :         // (intrinsic_wo_chain:{ *:[v4i8] } 3509:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rs)  =>  (REPLV_QB_MM:{ *:[v4i8] } GPR32Opnd:{ *:[i32] }:$rs)
    5140             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::REPLV_QB_MM,
    5141             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rt
    5142             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    5143             :         GIR_EraseFromParent, /*InsnID*/0,
    5144             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5145             :         // GIR_Coverage, 1257,
    5146             :         GIR_Done,
    5147             :       // Label 425: @10699
    5148             :       GIM_Try, /*On fail goto*//*Label 426*/ 10739, // Rule ID 1267 //
    5149             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
    5150             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_bitrev,
    5151             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    5152             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    5153             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    5154             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    5155             :         // (intrinsic_wo_chain:{ *:[i32] } 3064:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rs)  =>  (BITREV_MM:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs)
    5156             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::BITREV_MM,
    5157             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rt
    5158             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    5159             :         GIR_EraseFromParent, /*InsnID*/0,
    5160             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5161             :         // GIR_Coverage, 1267,
    5162             :         GIR_Done,
    5163             :       // Label 426: @10739
    5164             :       GIM_Reject,
    5165             :     // Label 372: @10740
    5166             :     GIM_Try, /*On fail goto*//*Label 427*/ 22008,
    5167             :       GIM_CheckNumOperands, /*MI*/0, /*Expected*/4,
    5168             :       GIM_Try, /*On fail goto*//*Label 428*/ 10804, // Rule ID 357 //
    5169             :         GIM_CheckFeatures, GIFBS_HasDSP,
    5170             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_shra_r_ph,
    5171             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    5172             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
    5173             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    5174             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    5175             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    5176             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
    5177             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    5178             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt4,
    5179             :         // MIs[1] Operand 1
    5180             :         // No operand predicates
    5181             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    5182             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3528:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rt, (imm:{ *:[i32] })<<P:Predicate_immZExt4>>:$rs_sa)  =>  (SHRA_R_PH:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rt, (imm:{ *:[i32] }):$rs_sa)
    5183             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SHRA_R_PH,
    5184             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    5185             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
    5186             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // rs_sa
    5187             :         GIR_EraseFromParent, /*InsnID*/0,
    5188             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5189             :         // GIR_Coverage, 357,
    5190             :         GIR_Done,
    5191             :       // Label 428: @10804
    5192             :       GIM_Try, /*On fail goto*//*Label 429*/ 10863, // Rule ID 361 //
    5193             :         GIM_CheckFeatures, GIFBS_HasDSP,
    5194             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_shra_r_w,
    5195             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    5196             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    5197             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    5198             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    5199             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    5200             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
    5201             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    5202             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt5,
    5203             :         // MIs[1] Operand 1
    5204             :         // No operand predicates
    5205             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    5206             :         // (intrinsic_wo_chain:{ *:[i32] } 3530:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rt, (imm:{ *:[i32] })<<P:Predicate_immZExt5>>:$rs_sa)  =>  (SHRA_R_W:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rt, (imm:{ *:[i32] }):$rs_sa)
    5207             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SHRA_R_W,
    5208             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    5209             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
    5210             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // rs_sa
    5211             :         GIR_EraseFromParent, /*InsnID*/0,
    5212             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5213             :         // GIR_Coverage, 361,
    5214             :         GIR_Done,
    5215             :       // Label 429: @10863
    5216             :       GIM_Try, /*On fail goto*//*Label 430*/ 10922, // Rule ID 452 //
    5217             :         GIM_CheckFeatures, GIFBS_HasDSPR2,
    5218             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_shra_r_qb,
    5219             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s8,
    5220             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
    5221             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    5222             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    5223             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    5224             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
    5225             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    5226             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt3,
    5227             :         // MIs[1] Operand 1
    5228             :         // No operand predicates
    5229             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    5230             :         // (intrinsic_wo_chain:{ *:[v4i8] } 3529:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rt, (imm:{ *:[i32] })<<P:Predicate_immZExt3>>:$rs_sa)  =>  (SHRA_R_QB:{ *:[v4i8] } DSPROpnd:{ *:[v4i8] }:$rt, (imm:{ *:[i32] }):$rs_sa)
    5231             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SHRA_R_QB,
    5232             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    5233             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
    5234             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // rs_sa
    5235             :         GIR_EraseFromParent, /*InsnID*/0,
    5236             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5237             :         // GIR_Coverage, 452,
    5238             :         GIR_Done,
    5239             :       // Label 430: @10922
    5240             :       GIM_Try, /*On fail goto*//*Label 431*/ 10981, // Rule ID 906 //
    5241             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    5242             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_sat_s_b,
    5243             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
    5244             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    5245             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    5246             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    5247             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    5248             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
    5249             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    5250             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt3,
    5251             :         // MIs[1] Operand 1
    5252             :         // No operand predicates
    5253             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    5254             :         // (intrinsic_wo_chain:{ *:[v16i8] } 3510:{ *:[iPTR] }, MSA128BOpnd:{ *:[v16i8] }:$ws, (imm:{ *:[i32] })<<P:Predicate_immZExt3>>:$m)  =>  (SAT_S_B:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, (imm:{ *:[i32] }):$m)
    5255             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SAT_S_B,
    5256             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    5257             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    5258             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // m
    5259             :         GIR_EraseFromParent, /*InsnID*/0,
    5260             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5261             :         // GIR_Coverage, 906,
    5262             :         GIR_Done,
    5263             :       // Label 431: @10981
    5264             :       GIM_Try, /*On fail goto*//*Label 432*/ 11040, // Rule ID 907 //
    5265             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    5266             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_sat_s_h,
    5267             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    5268             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    5269             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    5270             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    5271             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    5272             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
    5273             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    5274             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt4,
    5275             :         // MIs[1] Operand 1
    5276             :         // No operand predicates
    5277             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    5278             :         // (intrinsic_wo_chain:{ *:[v8i16] } 3512:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$ws, (imm:{ *:[i32] })<<P:Predicate_immZExt4>>:$m)  =>  (SAT_S_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, (imm:{ *:[i32] }):$m)
    5279             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SAT_S_H,
    5280             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    5281             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    5282             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // m
    5283             :         GIR_EraseFromParent, /*InsnID*/0,
    5284             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5285             :         // GIR_Coverage, 907,
    5286             :         GIR_Done,
    5287             :       // Label 432: @11040
    5288             :       GIM_Try, /*On fail goto*//*Label 433*/ 11099, // Rule ID 908 //
    5289             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    5290             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_sat_s_w,
    5291             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    5292             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    5293             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    5294             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    5295             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    5296             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
    5297             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    5298             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt5,
    5299             :         // MIs[1] Operand 1
    5300             :         // No operand predicates
    5301             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    5302             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3513:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$ws, (imm:{ *:[i32] })<<P:Predicate_immZExt5>>:$m)  =>  (SAT_S_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, (imm:{ *:[i32] }):$m)
    5303             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SAT_S_W,
    5304             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    5305             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    5306             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // m
    5307             :         GIR_EraseFromParent, /*InsnID*/0,
    5308             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5309             :         // GIR_Coverage, 908,
    5310             :         GIR_Done,
    5311             :       // Label 433: @11099
    5312             :       GIM_Try, /*On fail goto*//*Label 434*/ 11158, // Rule ID 909 //
    5313             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    5314             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_sat_s_d,
    5315             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    5316             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    5317             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    5318             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    5319             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    5320             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
    5321             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    5322             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt6,
    5323             :         // MIs[1] Operand 1
    5324             :         // No operand predicates
    5325             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    5326             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3511:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2i64] }:$ws, (imm:{ *:[i32] })<<P:Predicate_immZExt6>>:$m)  =>  (SAT_S_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, (imm:{ *:[i32] }):$m)
    5327             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SAT_S_D,
    5328             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    5329             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    5330             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // m
    5331             :         GIR_EraseFromParent, /*InsnID*/0,
    5332             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5333             :         // GIR_Coverage, 909,
    5334             :         GIR_Done,
    5335             :       // Label 434: @11158
    5336             :       GIM_Try, /*On fail goto*//*Label 435*/ 11217, // Rule ID 910 //
    5337             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    5338             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_sat_u_b,
    5339             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
    5340             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    5341             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    5342             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    5343             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    5344             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
    5345             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    5346             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt3,
    5347             :         // MIs[1] Operand 1
    5348             :         // No operand predicates
    5349             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    5350             :         // (intrinsic_wo_chain:{ *:[v16i8] } 3514:{ *:[iPTR] }, MSA128BOpnd:{ *:[v16i8] }:$ws, (imm:{ *:[i32] })<<P:Predicate_immZExt3>>:$m)  =>  (SAT_U_B:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, (imm:{ *:[i32] }):$m)
    5351             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SAT_U_B,
    5352             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    5353             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    5354             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // m
    5355             :         GIR_EraseFromParent, /*InsnID*/0,
    5356             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5357             :         // GIR_Coverage, 910,
    5358             :         GIR_Done,
    5359             :       // Label 435: @11217
    5360             :       GIM_Try, /*On fail goto*//*Label 436*/ 11276, // Rule ID 911 //
    5361             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    5362             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_sat_u_h,
    5363             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    5364             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    5365             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    5366             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    5367             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    5368             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
    5369             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    5370             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt4,
    5371             :         // MIs[1] Operand 1
    5372             :         // No operand predicates
    5373             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    5374             :         // (intrinsic_wo_chain:{ *:[v8i16] } 3516:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$ws, (imm:{ *:[i32] })<<P:Predicate_immZExt4>>:$m)  =>  (SAT_U_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, (imm:{ *:[i32] }):$m)
    5375             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SAT_U_H,
    5376             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    5377             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    5378             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // m
    5379             :         GIR_EraseFromParent, /*InsnID*/0,
    5380             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5381             :         // GIR_Coverage, 911,
    5382             :         GIR_Done,
    5383             :       // Label 436: @11276
    5384             :       GIM_Try, /*On fail goto*//*Label 437*/ 11335, // Rule ID 912 //
    5385             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    5386             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_sat_u_w,
    5387             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    5388             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    5389             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    5390             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    5391             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    5392             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
    5393             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    5394             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt5,
    5395             :         // MIs[1] Operand 1
    5396             :         // No operand predicates
    5397             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    5398             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3517:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$ws, (imm:{ *:[i32] })<<P:Predicate_immZExt5>>:$m)  =>  (SAT_U_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, (imm:{ *:[i32] }):$m)
    5399             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SAT_U_W,
    5400             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    5401             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    5402             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // m
    5403             :         GIR_EraseFromParent, /*InsnID*/0,
    5404             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5405             :         // GIR_Coverage, 912,
    5406             :         GIR_Done,
    5407             :       // Label 437: @11335
    5408             :       GIM_Try, /*On fail goto*//*Label 438*/ 11394, // Rule ID 913 //
    5409             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    5410             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_sat_u_d,
    5411             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    5412             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    5413             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    5414             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    5415             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    5416             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
    5417             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    5418             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt6,
    5419             :         // MIs[1] Operand 1
    5420             :         // No operand predicates
    5421             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    5422             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3515:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2i64] }:$ws, (imm:{ *:[i32] })<<P:Predicate_immZExt6>>:$m)  =>  (SAT_U_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, (imm:{ *:[i32] }):$m)
    5423             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SAT_U_D,
    5424             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    5425             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    5426             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // m
    5427             :         GIR_EraseFromParent, /*InsnID*/0,
    5428             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5429             :         // GIR_Coverage, 913,
    5430             :         GIR_Done,
    5431             :       // Label 438: @11394
    5432             :       GIM_Try, /*On fail goto*//*Label 439*/ 11453, // Rule ID 953 //
    5433             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    5434             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_srari_b,
    5435             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
    5436             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    5437             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    5438             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    5439             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    5440             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
    5441             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    5442             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt3,
    5443             :         // MIs[1] Operand 1
    5444             :         // No operand predicates
    5445             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    5446             :         // (intrinsic_wo_chain:{ *:[v16i8] } 3569:{ *:[iPTR] }, MSA128BOpnd:{ *:[v16i8] }:$ws, (imm:{ *:[i32] })<<P:Predicate_immZExt3>>:$m)  =>  (SRARI_B:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, (imm:{ *:[i32] }):$m)
    5447             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SRARI_B,
    5448             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    5449             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    5450             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // m
    5451             :         GIR_EraseFromParent, /*InsnID*/0,
    5452             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5453             :         // GIR_Coverage, 953,
    5454             :         GIR_Done,
    5455             :       // Label 439: @11453
    5456             :       GIM_Try, /*On fail goto*//*Label 440*/ 11512, // Rule ID 954 //
    5457             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    5458             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_srari_h,
    5459             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    5460             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    5461             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    5462             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    5463             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    5464             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
    5465             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    5466             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt4,
    5467             :         // MIs[1] Operand 1
    5468             :         // No operand predicates
    5469             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    5470             :         // (intrinsic_wo_chain:{ *:[v8i16] } 3571:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$ws, (imm:{ *:[i32] })<<P:Predicate_immZExt4>>:$m)  =>  (SRARI_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, (imm:{ *:[i32] }):$m)
    5471             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SRARI_H,
    5472             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    5473             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    5474             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // m
    5475             :         GIR_EraseFromParent, /*InsnID*/0,
    5476             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5477             :         // GIR_Coverage, 954,
    5478             :         GIR_Done,
    5479             :       // Label 440: @11512
    5480             :       GIM_Try, /*On fail goto*//*Label 441*/ 11571, // Rule ID 955 //
    5481             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    5482             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_srari_w,
    5483             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    5484             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    5485             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    5486             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    5487             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    5488             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
    5489             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    5490             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt5,
    5491             :         // MIs[1] Operand 1
    5492             :         // No operand predicates
    5493             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    5494             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3572:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$ws, (imm:{ *:[i32] })<<P:Predicate_immZExt5>>:$m)  =>  (SRARI_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, (imm:{ *:[i32] }):$m)
    5495             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SRARI_W,
    5496             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    5497             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    5498             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // m
    5499             :         GIR_EraseFromParent, /*InsnID*/0,
    5500             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5501             :         // GIR_Coverage, 955,
    5502             :         GIR_Done,
    5503             :       // Label 441: @11571
    5504             :       GIM_Try, /*On fail goto*//*Label 442*/ 11630, // Rule ID 956 //
    5505             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    5506             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_srari_d,
    5507             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    5508             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    5509             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    5510             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    5511             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    5512             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
    5513             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    5514             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt6,
    5515             :         // MIs[1] Operand 1
    5516             :         // No operand predicates
    5517             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    5518             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3570:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2i64] }:$ws, (imm:{ *:[i32] })<<P:Predicate_immZExt6>>:$m)  =>  (SRARI_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, (imm:{ *:[i32] }):$m)
    5519             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SRARI_D,
    5520             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    5521             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    5522             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // m
    5523             :         GIR_EraseFromParent, /*InsnID*/0,
    5524             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5525             :         // GIR_Coverage, 956,
    5526             :         GIR_Done,
    5527             :       // Label 442: @11630
    5528             :       GIM_Try, /*On fail goto*//*Label 443*/ 11689, // Rule ID 969 //
    5529             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    5530             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_srlri_b,
    5531             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
    5532             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    5533             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    5534             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    5535             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    5536             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
    5537             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    5538             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt3,
    5539             :         // MIs[1] Operand 1
    5540             :         // No operand predicates
    5541             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    5542             :         // (intrinsic_wo_chain:{ *:[v16i8] } 3585:{ *:[iPTR] }, MSA128BOpnd:{ *:[v16i8] }:$ws, (imm:{ *:[i32] })<<P:Predicate_immZExt3>>:$m)  =>  (SRLRI_B:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, (imm:{ *:[i32] }):$m)
    5543             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SRLRI_B,
    5544             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    5545             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    5546             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // m
    5547             :         GIR_EraseFromParent, /*InsnID*/0,
    5548             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5549             :         // GIR_Coverage, 969,
    5550             :         GIR_Done,
    5551             :       // Label 443: @11689
    5552             :       GIM_Try, /*On fail goto*//*Label 444*/ 11748, // Rule ID 970 //
    5553             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    5554             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_srlri_h,
    5555             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    5556             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    5557             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    5558             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    5559             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    5560             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
    5561             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    5562             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt4,
    5563             :         // MIs[1] Operand 1
    5564             :         // No operand predicates
    5565             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    5566             :         // (intrinsic_wo_chain:{ *:[v8i16] } 3587:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$ws, (imm:{ *:[i32] })<<P:Predicate_immZExt4>>:$m)  =>  (SRLRI_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, (imm:{ *:[i32] }):$m)
    5567             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SRLRI_H,
    5568             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    5569             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    5570             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // m
    5571             :         GIR_EraseFromParent, /*InsnID*/0,
    5572             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5573             :         // GIR_Coverage, 970,
    5574             :         GIR_Done,
    5575             :       // Label 444: @11748
    5576             :       GIM_Try, /*On fail goto*//*Label 445*/ 11807, // Rule ID 971 //
    5577             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    5578             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_srlri_w,
    5579             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    5580             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    5581             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    5582             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    5583             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    5584             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
    5585             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    5586             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt5,
    5587             :         // MIs[1] Operand 1
    5588             :         // No operand predicates
    5589             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    5590             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3588:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$ws, (imm:{ *:[i32] })<<P:Predicate_immZExt5>>:$m)  =>  (SRLRI_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, (imm:{ *:[i32] }):$m)
    5591             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SRLRI_W,
    5592             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    5593             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    5594             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // m
    5595             :         GIR_EraseFromParent, /*InsnID*/0,
    5596             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5597             :         // GIR_Coverage, 971,
    5598             :         GIR_Done,
    5599             :       // Label 445: @11807
    5600             :       GIM_Try, /*On fail goto*//*Label 446*/ 11866, // Rule ID 972 //
    5601             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    5602             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_srlri_d,
    5603             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    5604             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    5605             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    5606             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    5607             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    5608             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
    5609             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    5610             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt6,
    5611             :         // MIs[1] Operand 1
    5612             :         // No operand predicates
    5613             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    5614             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3586:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2i64] }:$ws, (imm:{ *:[i32] })<<P:Predicate_immZExt6>>:$m)  =>  (SRLRI_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, (imm:{ *:[i32] }):$m)
    5615             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SRLRI_D,
    5616             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    5617             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    5618             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // m
    5619             :         GIR_EraseFromParent, /*InsnID*/0,
    5620             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5621             :         // GIR_Coverage, 972,
    5622             :         GIR_Done,
    5623             :       // Label 446: @11866
    5624             :       GIM_Try, /*On fail goto*//*Label 447*/ 11925, // Rule ID 1211 //
    5625             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
    5626             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_shra_r_ph,
    5627             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    5628             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
    5629             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    5630             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    5631             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    5632             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
    5633             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    5634             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt4,
    5635             :         // MIs[1] Operand 1
    5636             :         // No operand predicates
    5637             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    5638             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3528:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, (imm:{ *:[i32] })<<P:Predicate_immZExt4>>:$sa)  =>  (SHRA_R_PH_MM:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rs, (imm:{ *:[i32] }):$sa)
    5639             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SHRA_R_PH_MM,
    5640             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rt
    5641             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    5642             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // sa
    5643             :         GIR_EraseFromParent, /*InsnID*/0,
    5644             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5645             :         // GIR_Coverage, 1211,
    5646             :         GIR_Done,
    5647             :       // Label 447: @11925
    5648             :       GIM_Try, /*On fail goto*//*Label 448*/ 11984, // Rule ID 1215 //
    5649             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
    5650             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_shra_r_w,
    5651             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    5652             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    5653             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    5654             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    5655             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    5656             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
    5657             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    5658             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt5,
    5659             :         // MIs[1] Operand 1
    5660             :         // No operand predicates
    5661             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    5662             :         // (intrinsic_wo_chain:{ *:[i32] } 3530:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rs, (imm:{ *:[i32] })<<P:Predicate_immZExt5>>:$sa)  =>  (SHRA_R_W_MM:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, (imm:{ *:[i32] }):$sa)
    5663             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SHRA_R_W_MM,
    5664             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rt
    5665             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    5666             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // sa
    5667             :         GIR_EraseFromParent, /*InsnID*/0,
    5668             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5669             :         // GIR_Coverage, 1215,
    5670             :         GIR_Done,
    5671             :       // Label 448: @11984
    5672             :       GIM_Try, /*On fail goto*//*Label 449*/ 12043, // Rule ID 1290 //
    5673             :         GIM_CheckFeatures, GIFBS_HasDSPR2_InMicroMips,
    5674             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_shra_r_qb,
    5675             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s8,
    5676             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
    5677             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    5678             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    5679             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    5680             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
    5681             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    5682             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt3,
    5683             :         // MIs[1] Operand 1
    5684             :         // No operand predicates
    5685             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    5686             :         // (intrinsic_wo_chain:{ *:[v4i8] } 3529:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs, (imm:{ *:[i32] })<<P:Predicate_immZExt3>>:$sa)  =>  (SHRA_R_QB_MMR2:{ *:[v4i8] } DSPROpnd:{ *:[v4i8] }:$rs, (imm:{ *:[i32] }):$sa)
    5687             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SHRA_R_QB_MMR2,
    5688             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rt
    5689             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    5690             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // sa
    5691             :         GIR_EraseFromParent, /*InsnID*/0,
    5692             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5693             :         // GIR_Coverage, 1290,
    5694             :         GIR_Done,
    5695             :       // Label 449: @12043
    5696             :       GIM_Try, /*On fail goto*//*Label 450*/ 12098, // Rule ID 1861 //
    5697             :         GIM_CheckFeatures, GIFBS_HasDSP,
    5698             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_shra_ph,
    5699             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    5700             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
    5701             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    5702             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    5703             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
    5704             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    5705             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt4,
    5706             :         // MIs[1] Operand 1
    5707             :         // No operand predicates
    5708             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    5709             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3526:{ *:[iPTR] }, v2i16:{ *:[v2i16] }:$a, (imm:{ *:[i32] })<<P:Predicate_immZExt4>>:$shamt)  =>  (SHRA_PH:{ *:[v2i16] } v2i16:{ *:[v2i16] }:$a, (imm:{ *:[i32] })<<P:Predicate_immZExt4>>:$shamt)
    5710             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SHRA_PH,
    5711             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    5712             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
    5713             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // shamt
    5714             :         GIR_EraseFromParent, /*InsnID*/0,
    5715             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5716             :         // GIR_Coverage, 1861,
    5717             :         GIR_Done,
    5718             :       // Label 450: @12098
    5719             :       GIM_Try, /*On fail goto*//*Label 451*/ 12153, // Rule ID 1862 //
    5720             :         GIM_CheckFeatures, GIFBS_HasDSPR2,
    5721             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_shrl_ph,
    5722             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    5723             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
    5724             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    5725             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    5726             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
    5727             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    5728             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt4,
    5729             :         // MIs[1] Operand 1
    5730             :         // No operand predicates
    5731             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    5732             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3531:{ *:[iPTR] }, v2i16:{ *:[v2i16] }:$a, (imm:{ *:[i32] })<<P:Predicate_immZExt4>>:$shamt)  =>  (SHRL_PH:{ *:[v2i16] } v2i16:{ *:[v2i16] }:$a, (imm:{ *:[i32] })<<P:Predicate_immZExt4>>:$shamt)
    5733             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SHRL_PH,
    5734             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    5735             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
    5736             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // shamt
    5737             :         GIR_EraseFromParent, /*InsnID*/0,
    5738             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5739             :         // GIR_Coverage, 1862,
    5740             :         GIR_Done,
    5741             :       // Label 451: @12153
    5742             :       GIM_Try, /*On fail goto*//*Label 452*/ 12208, // Rule ID 1867 //
    5743             :         GIM_CheckFeatures, GIFBS_HasDSPR2,
    5744             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_shra_qb,
    5745             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s8,
    5746             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
    5747             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    5748             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    5749             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
    5750             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    5751             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt3,
    5752             :         // MIs[1] Operand 1
    5753             :         // No operand predicates
    5754             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    5755             :         // (intrinsic_wo_chain:{ *:[v4i8] } 3527:{ *:[iPTR] }, v4i8:{ *:[v4i8] }:$a, (imm:{ *:[i32] })<<P:Predicate_immZExt3>>:$shamt)  =>  (SHRA_QB:{ *:[v4i8] } v4i8:{ *:[v4i8] }:$a, (imm:{ *:[i32] })<<P:Predicate_immZExt3>>:$shamt)
    5756             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SHRA_QB,
    5757             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    5758             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
    5759             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // shamt
    5760             :         GIR_EraseFromParent, /*InsnID*/0,
    5761             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5762             :         // GIR_Coverage, 1867,
    5763             :         GIR_Done,
    5764             :       // Label 452: @12208
    5765             :       GIM_Try, /*On fail goto*//*Label 453*/ 12263, // Rule ID 1868 //
    5766             :         GIM_CheckFeatures, GIFBS_HasDSP,
    5767             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_shrl_qb,
    5768             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s8,
    5769             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
    5770             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    5771             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    5772             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
    5773             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    5774             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt3,
    5775             :         // MIs[1] Operand 1
    5776             :         // No operand predicates
    5777             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    5778             :         // (intrinsic_wo_chain:{ *:[v4i8] } 3532:{ *:[iPTR] }, v4i8:{ *:[v4i8] }:$a, (imm:{ *:[i32] })<<P:Predicate_immZExt3>>:$shamt)  =>  (SHRL_QB:{ *:[v4i8] } v4i8:{ *:[v4i8] }:$a, (imm:{ *:[i32] })<<P:Predicate_immZExt3>>:$shamt)
    5779             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SHRL_QB,
    5780             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    5781             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
    5782             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // shamt
    5783             :         GIR_EraseFromParent, /*InsnID*/0,
    5784             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5785             :         // GIR_Coverage, 1868,
    5786             :         GIR_Done,
    5787             :       // Label 453: @12263
    5788             :       GIM_Try, /*On fail goto*//*Label 454*/ 12315, // Rule ID 327 //
    5789             :         GIM_CheckFeatures, GIFBS_HasDSP,
    5790             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_addu_s_qb,
    5791             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s8,
    5792             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
    5793             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s8,
    5794             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    5795             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    5796             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
    5797             :         // (intrinsic_wo_chain:{ *:[v4i8] } 3000:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)  =>  (ADDU_S_QB:{ *:[v4i8] } DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)
    5798             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ADDU_S_QB,
    5799             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    5800             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    5801             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
    5802             :         GIR_EraseFromParent, /*InsnID*/0,
    5803             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5804             :         // GIR_Coverage, 327,
    5805             :         GIR_Done,
    5806             :       // Label 454: @12315
    5807             :       GIM_Try, /*On fail goto*//*Label 455*/ 12367, // Rule ID 328 //
    5808             :         GIM_CheckFeatures, GIFBS_HasDSP,
    5809             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_subu_s_qb,
    5810             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s8,
    5811             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
    5812             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s8,
    5813             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    5814             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    5815             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
    5816             :         // (intrinsic_wo_chain:{ *:[v4i8] } 3619:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)  =>  (SUBU_S_QB:{ *:[v4i8] } DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)
    5817             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SUBU_S_QB,
    5818             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    5819             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    5820             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
    5821             :         GIR_EraseFromParent, /*InsnID*/0,
    5822             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5823             :         // GIR_Coverage, 328,
    5824             :         GIR_Done,
    5825             :       // Label 455: @12367
    5826             :       GIM_Try, /*On fail goto*//*Label 456*/ 12419, // Rule ID 329 //
    5827             :         GIM_CheckFeatures, GIFBS_HasDSP,
    5828             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_addq_s_ph,
    5829             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    5830             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
    5831             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
    5832             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    5833             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    5834             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
    5835             :         // (intrinsic_wo_chain:{ *:[v2i16] } 2978:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (ADDQ_S_PH:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
    5836             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ADDQ_S_PH,
    5837             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    5838             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    5839             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
    5840             :         GIR_EraseFromParent, /*InsnID*/0,
    5841             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5842             :         // GIR_Coverage, 329,
    5843             :         GIR_Done,
    5844             :       // Label 456: @12419
    5845             :       GIM_Try, /*On fail goto*//*Label 457*/ 12471, // Rule ID 330 //
    5846             :         GIM_CheckFeatures, GIFBS_HasDSP,
    5847             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_subq_s_ph,
    5848             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    5849             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
    5850             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
    5851             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    5852             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    5853             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
    5854             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3594:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (SUBQ_S_PH:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
    5855             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SUBQ_S_PH,
    5856             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    5857             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    5858             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
    5859             :         GIR_EraseFromParent, /*InsnID*/0,
    5860             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5861             :         // GIR_Coverage, 330,
    5862             :         GIR_Done,
    5863             :       // Label 457: @12471
    5864             :       GIM_Try, /*On fail goto*//*Label 458*/ 12523, // Rule ID 333 //
    5865             :         GIM_CheckFeatures, GIFBS_HasDSP,
    5866             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_modsub,
    5867             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    5868             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    5869             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    5870             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    5871             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    5872             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
    5873             :         // (intrinsic_wo_chain:{ *:[i32] } 3426:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (MODSUB:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
    5874             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MODSUB,
    5875             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    5876             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    5877             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
    5878             :         GIR_EraseFromParent, /*InsnID*/0,
    5879             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5880             :         // GIR_Coverage, 333,
    5881             :         GIR_Done,
    5882             :       // Label 458: @12523
    5883             :       GIM_Try, /*On fail goto*//*Label 459*/ 12575, // Rule ID 337 //
    5884             :         GIM_CheckFeatures, GIFBS_HasDSP,
    5885             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_precrq_qb_ph,
    5886             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s8,
    5887             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
    5888             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
    5889             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    5890             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    5891             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
    5892             :         // (intrinsic_wo_chain:{ *:[v4i8] } 3502:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (PRECRQ_QB_PH:{ *:[v4i8] } DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
    5893             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::PRECRQ_QB_PH,
    5894             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    5895             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    5896             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
    5897             :         GIR_EraseFromParent, /*InsnID*/0,
    5898             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5899             :         // GIR_Coverage, 337,
    5900             :         GIR_Done,
    5901             :       // Label 459: @12575
    5902             :       GIM_Try, /*On fail goto*//*Label 460*/ 12627, // Rule ID 338 //
    5903             :         GIM_CheckFeatures, GIFBS_HasDSP,
    5904             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_precrq_ph_w,
    5905             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    5906             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    5907             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    5908             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    5909             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    5910             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
    5911             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3501:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (PRECRQ_PH_W:{ *:[v2i16] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
    5912             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::PRECRQ_PH_W,
    5913             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    5914             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    5915             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
    5916             :         GIR_EraseFromParent, /*InsnID*/0,
    5917             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5918             :         // GIR_Coverage, 338,
    5919             :         GIR_Done,
    5920             :       // Label 460: @12627
    5921             :       GIM_Try, /*On fail goto*//*Label 461*/ 12679, // Rule ID 352 //
    5922             :         GIM_CheckFeatures, GIFBS_HasDSP,
    5923             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_shrl_qb,
    5924             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s8,
    5925             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
    5926             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    5927             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    5928             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    5929             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
    5930             :         // (intrinsic_wo_chain:{ *:[v4i8] } 3532:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rt, GPR32Opnd:{ *:[i32] }:$rs_sa)  =>  (SHRLV_QB:{ *:[v4i8] } DSPROpnd:{ *:[v4i8] }:$rt, GPR32Opnd:{ *:[i32] }:$rs_sa)
    5931             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SHRLV_QB,
    5932             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    5933             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
    5934             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs_sa
    5935             :         GIR_EraseFromParent, /*InsnID*/0,
    5936             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5937             :         // GIR_Coverage, 352,
    5938             :         GIR_Done,
    5939             :       // Label 461: @12679
    5940             :       GIM_Try, /*On fail goto*//*Label 462*/ 12731, // Rule ID 356 //
    5941             :         GIM_CheckFeatures, GIFBS_HasDSP,
    5942             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_shra_ph,
    5943             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    5944             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
    5945             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    5946             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    5947             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    5948             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
    5949             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3526:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rt, GPR32Opnd:{ *:[i32] }:$rs_sa)  =>  (SHRAV_PH:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rt, GPR32Opnd:{ *:[i32] }:$rs_sa)
    5950             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SHRAV_PH,
    5951             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    5952             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
    5953             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs_sa
    5954             :         GIR_EraseFromParent, /*InsnID*/0,
    5955             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5956             :         // GIR_Coverage, 356,
    5957             :         GIR_Done,
    5958             :       // Label 462: @12731
    5959             :       GIM_Try, /*On fail goto*//*Label 463*/ 12783, // Rule ID 358 //
    5960             :         GIM_CheckFeatures, GIFBS_HasDSP,
    5961             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_shra_r_ph,
    5962             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    5963             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
    5964             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    5965             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    5966             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    5967             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
    5968             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3528:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rt, GPR32Opnd:{ *:[i32] }:$rs_sa)  =>  (SHRAV_R_PH:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rt, GPR32Opnd:{ *:[i32] }:$rs_sa)
    5969             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SHRAV_R_PH,
    5970             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    5971             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
    5972             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs_sa
    5973             :         GIR_EraseFromParent, /*InsnID*/0,
    5974             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5975             :         // GIR_Coverage, 358,
    5976             :         GIR_Done,
    5977             :       // Label 463: @12783
    5978             :       GIM_Try, /*On fail goto*//*Label 464*/ 12835, // Rule ID 362 //
    5979             :         GIM_CheckFeatures, GIFBS_HasDSP,
    5980             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_shra_r_w,
    5981             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    5982             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    5983             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    5984             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    5985             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    5986             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
    5987             :         // (intrinsic_wo_chain:{ *:[i32] } 3530:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rt, GPR32Opnd:{ *:[i32] }:$rs_sa)  =>  (SHRAV_R_W:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rt, GPR32Opnd:{ *:[i32] }:$rs_sa)
    5988             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SHRAV_R_W,
    5989             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    5990             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
    5991             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs_sa
    5992             :         GIR_EraseFromParent, /*InsnID*/0,
    5993             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5994             :         // GIR_Coverage, 362,
    5995             :         GIR_Done,
    5996             :       // Label 464: @12835
    5997             :       GIM_Try, /*On fail goto*//*Label 465*/ 12887, // Rule ID 399 //
    5998             :         GIM_CheckFeatures, GIFBS_HasDSP,
    5999             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_packrl_ph,
    6000             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    6001             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
    6002             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
    6003             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    6004             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    6005             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
    6006             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3473:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (PACKRL_PH:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
    6007             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::PACKRL_PH,
    6008             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    6009             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    6010             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
    6011             :         GIR_EraseFromParent, /*InsnID*/0,
    6012             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6013             :         // GIR_Coverage, 399,
    6014             :         GIR_Done,
    6015             :       // Label 465: @12887
    6016             :       GIM_Try, /*On fail goto*//*Label 466*/ 12939, // Rule ID 423 //
    6017             :         GIM_CheckFeatures, GIFBS_HasDSPR2,
    6018             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_adduh_qb,
    6019             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s8,
    6020             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
    6021             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s8,
    6022             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    6023             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    6024             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
    6025             :         // (intrinsic_wo_chain:{ *:[v4i8] } 3001:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)  =>  (ADDUH_QB:{ *:[v4i8] } DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)
    6026             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ADDUH_QB,
    6027             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    6028             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    6029             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
    6030             :         GIR_EraseFromParent, /*InsnID*/0,
    6031             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6032             :         // GIR_Coverage, 423,
    6033             :         GIR_Done,
    6034             :       // Label 466: @12939
    6035             :       GIM_Try, /*On fail goto*//*Label 467*/ 12991, // Rule ID 424 //
    6036             :         GIM_CheckFeatures, GIFBS_HasDSPR2,
    6037             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_adduh_r_qb,
    6038             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s8,
    6039             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
    6040             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s8,
    6041             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    6042             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    6043             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
    6044             :         // (intrinsic_wo_chain:{ *:[v4i8] } 3002:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)  =>  (ADDUH_R_QB:{ *:[v4i8] } DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)
    6045             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ADDUH_R_QB,
    6046             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    6047             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    6048             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
    6049             :         GIR_EraseFromParent, /*InsnID*/0,
    6050             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6051             :         // GIR_Coverage, 424,
    6052             :         GIR_Done,
    6053             :       // Label 467: @12991
    6054             :       GIM_Try, /*On fail goto*//*Label 468*/ 13043, // Rule ID 425 //
    6055             :         GIM_CheckFeatures, GIFBS_HasDSPR2,
    6056             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_subuh_qb,
    6057             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s8,
    6058             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
    6059             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s8,
    6060             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    6061             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    6062             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
    6063             :         // (intrinsic_wo_chain:{ *:[v4i8] } 3620:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)  =>  (SUBUH_QB:{ *:[v4i8] } DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)
    6064             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SUBUH_QB,
    6065             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    6066             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    6067             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
    6068             :         GIR_EraseFromParent, /*InsnID*/0,
    6069             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6070             :         // GIR_Coverage, 425,
    6071             :         GIR_Done,
    6072             :       // Label 468: @13043
    6073             :       GIM_Try, /*On fail goto*//*Label 469*/ 13095, // Rule ID 426 //
    6074             :         GIM_CheckFeatures, GIFBS_HasDSPR2,
    6075             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_subuh_r_qb,
    6076             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s8,
    6077             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
    6078             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s8,
    6079             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    6080             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    6081             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
    6082             :         // (intrinsic_wo_chain:{ *:[v4i8] } 3621:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)  =>  (SUBUH_R_QB:{ *:[v4i8] } DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)
    6083             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SUBUH_R_QB,
    6084             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    6085             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    6086             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
    6087             :         GIR_EraseFromParent, /*InsnID*/0,
    6088             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6089             :         // GIR_Coverage, 426,
    6090             :         GIR_Done,
    6091             :       // Label 469: @13095
    6092             :       GIM_Try, /*On fail goto*//*Label 470*/ 13147, // Rule ID 427 //
    6093             :         GIM_CheckFeatures, GIFBS_HasDSPR2,
    6094             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_addqh_ph,
    6095             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    6096             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
    6097             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
    6098             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    6099             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    6100             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
    6101             :         // (intrinsic_wo_chain:{ *:[v2i16] } 2980:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (ADDQH_PH:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
    6102             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ADDQH_PH,
    6103             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    6104             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    6105             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
    6106             :         GIR_EraseFromParent, /*InsnID*/0,
    6107             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6108             :         // GIR_Coverage, 427,
    6109             :         GIR_Done,
    6110             :       // Label 470: @13147
    6111             :       GIM_Try, /*On fail goto*//*Label 471*/ 13199, // Rule ID 428 //
    6112             :         GIM_CheckFeatures, GIFBS_HasDSPR2,
    6113             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_addqh_r_ph,
    6114             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    6115             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
    6116             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
    6117             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    6118             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    6119             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
    6120             :         // (intrinsic_wo_chain:{ *:[v2i16] } 2981:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (ADDQH_R_PH:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
    6121             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ADDQH_R_PH,
    6122             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    6123             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    6124             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
    6125             :         GIR_EraseFromParent, /*InsnID*/0,
    6126             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6127             :         // GIR_Coverage, 428,
    6128             :         GIR_Done,
    6129             :       // Label 471: @13199
    6130             :       GIM_Try, /*On fail goto*//*Label 472*/ 13251, // Rule ID 429 //
    6131             :         GIM_CheckFeatures, GIFBS_HasDSPR2,
    6132             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_subqh_ph,
    6133             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    6134             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
    6135             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
    6136             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    6137             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    6138             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
    6139             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3596:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (SUBQH_PH:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
    6140             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SUBQH_PH,
    6141             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    6142             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    6143             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
    6144             :         GIR_EraseFromParent, /*InsnID*/0,
    6145             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6146             :         // GIR_Coverage, 429,
    6147             :         GIR_Done,
    6148             :       // Label 472: @13251
    6149             :       GIM_Try, /*On fail goto*//*Label 473*/ 13303, // Rule ID 430 //
    6150             :         GIM_CheckFeatures, GIFBS_HasDSPR2,
    6151             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_subqh_r_ph,
    6152             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    6153             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
    6154             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
    6155             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    6156             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    6157             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
    6158             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3597:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (SUBQH_R_PH:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
    6159             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SUBQH_R_PH,
    6160             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    6161             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    6162             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
    6163             :         GIR_EraseFromParent, /*InsnID*/0,
    6164             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6165             :         // GIR_Coverage, 430,
    6166             :         GIR_Done,
    6167             :       // Label 473: @13303
    6168             :       GIM_Try, /*On fail goto*//*Label 474*/ 13355, // Rule ID 431 //
    6169             :         GIM_CheckFeatures, GIFBS_HasDSPR2,
    6170             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_addqh_w,
    6171             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    6172             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    6173             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    6174             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    6175             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    6176             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
    6177             :         // (intrinsic_wo_chain:{ *:[i32] } 2983:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (ADDQH_W:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
    6178             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ADDQH_W,
    6179             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    6180             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    6181             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
    6182             :         GIR_EraseFromParent, /*InsnID*/0,
    6183             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6184             :         // GIR_Coverage, 431,
    6185             :         GIR_Done,
    6186             :       // Label 474: @13355
    6187             :       GIM_Try, /*On fail goto*//*Label 475*/ 13407, // Rule ID 432 //
    6188             :         GIM_CheckFeatures, GIFBS_HasDSPR2,
    6189             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_addqh_r_w,
    6190             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    6191             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    6192             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    6193             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    6194             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    6195             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
    6196             :         // (intrinsic_wo_chain:{ *:[i32] } 2982:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (ADDQH_R_W:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
    6197             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ADDQH_R_W,
    6198             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    6199             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    6200             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
    6201             :         GIR_EraseFromParent, /*InsnID*/0,
    6202             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6203             :         // GIR_Coverage, 432,
    6204             :         GIR_Done,
    6205             :       // Label 475: @13407
    6206             :       GIM_Try, /*On fail goto*//*Label 476*/ 13459, // Rule ID 433 //
    6207             :         GIM_CheckFeatures, GIFBS_HasDSPR2,
    6208             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_subqh_w,
    6209             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    6210             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    6211             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    6212             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    6213             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    6214             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
    6215             :         // (intrinsic_wo_chain:{ *:[i32] } 3599:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (SUBQH_W:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
    6216             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SUBQH_W,
    6217             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    6218             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    6219             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
    6220             :         GIR_EraseFromParent, /*InsnID*/0,
    6221             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6222             :         // GIR_Coverage, 433,
    6223             :         GIR_Done,
    6224             :       // Label 476: @13459
    6225             :       GIM_Try, /*On fail goto*//*Label 477*/ 13511, // Rule ID 434 //
    6226             :         GIM_CheckFeatures, GIFBS_HasDSPR2,
    6227             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_subqh_r_w,
    6228             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    6229             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    6230             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    6231             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    6232             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    6233             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
    6234             :         // (intrinsic_wo_chain:{ *:[i32] } 3598:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (SUBQH_R_W:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
    6235             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SUBQH_R_W,
    6236             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    6237             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    6238             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
    6239             :         GIR_EraseFromParent, /*InsnID*/0,
    6240             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6241             :         // GIR_Coverage, 434,
    6242             :         GIR_Done,
    6243             :       // Label 477: @13511
    6244             :       GIM_Try, /*On fail goto*//*Label 478*/ 13563, // Rule ID 451 //
    6245             :         GIM_CheckFeatures, GIFBS_HasDSPR2,
    6246             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_shra_qb,
    6247             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s8,
    6248             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
    6249             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    6250             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    6251             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    6252             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
    6253             :         // (intrinsic_wo_chain:{ *:[v4i8] } 3527:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rt, GPR32Opnd:{ *:[i32] }:$rs_sa)  =>  (SHRAV_QB:{ *:[v4i8] } DSPROpnd:{ *:[v4i8] }:$rt, GPR32Opnd:{ *:[i32] }:$rs_sa)
    6254             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SHRAV_QB,
    6255             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    6256             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
    6257             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs_sa
    6258             :         GIR_EraseFromParent, /*InsnID*/0,
    6259             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6260             :         // GIR_Coverage, 451,
    6261             :         GIR_Done,
    6262             :       // Label 478: @13563
    6263             :       GIM_Try, /*On fail goto*//*Label 479*/ 13615, // Rule ID 453 //
    6264             :         GIM_CheckFeatures, GIFBS_HasDSPR2,
    6265             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_shra_r_qb,
    6266             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s8,
    6267             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
    6268             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    6269             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    6270             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    6271             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
    6272             :         // (intrinsic_wo_chain:{ *:[v4i8] } 3529:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rt, GPR32Opnd:{ *:[i32] }:$rs_sa)  =>  (SHRAV_R_QB:{ *:[v4i8] } DSPROpnd:{ *:[v4i8] }:$rt, GPR32Opnd:{ *:[i32] }:$rs_sa)
    6273             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SHRAV_R_QB,
    6274             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    6275             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
    6276             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs_sa
    6277             :         GIR_EraseFromParent, /*InsnID*/0,
    6278             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6279             :         // GIR_Coverage, 453,
    6280             :         GIR_Done,
    6281             :       // Label 479: @13615
    6282             :       GIM_Try, /*On fail goto*//*Label 480*/ 13667, // Rule ID 454 //
    6283             :         GIM_CheckFeatures, GIFBS_HasDSPR2,
    6284             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_shrl_ph,
    6285             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    6286             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
    6287             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    6288             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    6289             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    6290             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
    6291             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3531:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rt, GPR32Opnd:{ *:[i32] }:$rs_sa)  =>  (SHRLV_PH:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rt, GPR32Opnd:{ *:[i32] }:$rs_sa)
    6292             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SHRLV_PH,
    6293             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    6294             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
    6295             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs_sa
    6296             :         GIR_EraseFromParent, /*InsnID*/0,
    6297             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6298             :         // GIR_Coverage, 454,
    6299             :         GIR_Done,
    6300             :       // Label 480: @13667
    6301             :       GIM_Try, /*On fail goto*//*Label 481*/ 13719, // Rule ID 459 //
    6302             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    6303             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_add_a_b,
    6304             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
    6305             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    6306             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
    6307             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    6308             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    6309             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128BRegClassID,
    6310             :         // (intrinsic_wo_chain:{ *:[v16i8] } 2973:{ *:[iPTR] }, MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)  =>  (ADD_A_B:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
    6311             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ADD_A_B,
    6312             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    6313             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    6314             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    6315             :         GIR_EraseFromParent, /*InsnID*/0,
    6316             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6317             :         // GIR_Coverage, 459,
    6318             :         GIR_Done,
    6319             :       // Label 481: @13719
    6320             :       GIM_Try, /*On fail goto*//*Label 482*/ 13771, // Rule ID 460 //
    6321             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    6322             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_add_a_h,
    6323             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    6324             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    6325             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
    6326             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    6327             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    6328             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128HRegClassID,
    6329             :         // (intrinsic_wo_chain:{ *:[v8i16] } 2975:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (ADD_A_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
    6330             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ADD_A_H,
    6331             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    6332             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    6333             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    6334             :         GIR_EraseFromParent, /*InsnID*/0,
    6335             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6336             :         // GIR_Coverage, 460,
    6337             :         GIR_Done,
    6338             :       // Label 482: @13771
    6339             :       GIM_Try, /*On fail goto*//*Label 483*/ 13823, // Rule ID 461 //
    6340             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    6341             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_add_a_w,
    6342             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    6343             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    6344             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    6345             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    6346             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    6347             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    6348             :         // (intrinsic_wo_chain:{ *:[v4i32] } 2976:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (ADD_A_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
    6349             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ADD_A_W,
    6350             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    6351             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    6352             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    6353             :         GIR_EraseFromParent, /*InsnID*/0,
    6354             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6355             :         // GIR_Coverage, 461,
    6356             :         GIR_Done,
    6357             :       // Label 483: @13823
    6358             :       GIM_Try, /*On fail goto*//*Label 484*/ 13875, // Rule ID 462 //
    6359             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    6360             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_add_a_d,
    6361             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    6362             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    6363             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    6364             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    6365             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    6366             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128DRegClassID,
    6367             :         // (intrinsic_wo_chain:{ *:[v2i64] } 2974:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)  =>  (ADD_A_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)
    6368             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ADD_A_D,
    6369             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    6370             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    6371             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    6372             :         GIR_EraseFromParent, /*InsnID*/0,
    6373             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6374             :         // GIR_Coverage, 462,
    6375             :         GIR_Done,
    6376             :       // Label 484: @13875
    6377             :       GIM_Try, /*On fail goto*//*Label 485*/ 13927, // Rule ID 463 //
    6378             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    6379             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_adds_a_b,
    6380             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
    6381             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    6382             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
    6383             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    6384             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    6385             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128BRegClassID,
    6386             :         // (intrinsic_wo_chain:{ *:[v16i8] } 2984:{ *:[iPTR] }, MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)  =>  (ADDS_A_B:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
    6387             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ADDS_A_B,
    6388             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    6389             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    6390             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    6391             :         GIR_EraseFromParent, /*InsnID*/0,
    6392             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6393             :         // GIR_Coverage, 463,
    6394             :         GIR_Done,
    6395             :       // Label 485: @13927
    6396             :       GIM_Try, /*On fail goto*//*Label 486*/ 13979, // Rule ID 464 //
    6397             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    6398             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_adds_a_h,
    6399             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    6400             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    6401             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
    6402             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    6403             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    6404             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128HRegClassID,
    6405             :         // (intrinsic_wo_chain:{ *:[v8i16] } 2986:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (ADDS_A_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
    6406             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ADDS_A_H,
    6407             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    6408             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    6409             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    6410             :         GIR_EraseFromParent, /*InsnID*/0,
    6411             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6412             :         // GIR_Coverage, 464,
    6413             :         GIR_Done,
    6414             :       // Label 486: @13979
    6415             :       GIM_Try, /*On fail goto*//*Label 487*/ 14031, // Rule ID 465 //
    6416             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    6417             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_adds_a_w,
    6418             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    6419             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    6420             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    6421             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    6422             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    6423             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    6424             :         // (intrinsic_wo_chain:{ *:[v4i32] } 2987:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (ADDS_A_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
    6425             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ADDS_A_W,
    6426             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    6427             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    6428             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    6429             :         GIR_EraseFromParent, /*InsnID*/0,
    6430             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6431             :         // GIR_Coverage, 465,
    6432             :         GIR_Done,
    6433             :       // Label 487: @14031
    6434             :       GIM_Try, /*On fail goto*//*Label 488*/ 14083, // Rule ID 466 //
    6435             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    6436             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_adds_a_d,
    6437             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    6438             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    6439             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    6440             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    6441             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    6442             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128DRegClassID,
    6443             :         // (intrinsic_wo_chain:{ *:[v2i64] } 2985:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)  =>  (ADDS_A_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)
    6444             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ADDS_A_D,
    6445             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    6446             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    6447             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    6448             :         GIR_EraseFromParent, /*InsnID*/0,
    6449             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6450             :         // GIR_Coverage, 466,
    6451             :         GIR_Done,
    6452             :       // Label 488: @14083
    6453             :       GIM_Try, /*On fail goto*//*Label 489*/ 14135, // Rule ID 467 //
    6454             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    6455             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_adds_s_b,
    6456             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
    6457             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    6458             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
    6459             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    6460             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    6461             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128BRegClassID,
    6462             :         // (intrinsic_wo_chain:{ *:[v16i8] } 2988:{ *:[iPTR] }, MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)  =>  (ADDS_S_B:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
    6463             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ADDS_S_B,
    6464             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    6465             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    6466             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    6467             :         GIR_EraseFromParent, /*InsnID*/0,
    6468             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6469             :         // GIR_Coverage, 467,
    6470             :         GIR_Done,
    6471             :       // Label 489: @14135
    6472             :       GIM_Try, /*On fail goto*//*Label 490*/ 14187, // Rule ID 468 //
    6473             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    6474             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_adds_s_h,
    6475             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    6476             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    6477             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
    6478             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    6479             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    6480             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128HRegClassID,
    6481             :         // (intrinsic_wo_chain:{ *:[v8i16] } 2990:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (ADDS_S_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
    6482             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ADDS_S_H,
    6483             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    6484             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    6485             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    6486             :         GIR_EraseFromParent, /*InsnID*/0,
    6487             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6488             :         // GIR_Coverage, 468,
    6489             :         GIR_Done,
    6490             :       // Label 490: @14187
    6491             :       GIM_Try, /*On fail goto*//*Label 491*/ 14239, // Rule ID 469 //
    6492             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    6493             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_adds_s_w,
    6494             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    6495             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    6496             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    6497             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    6498             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    6499             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    6500             :         // (intrinsic_wo_chain:{ *:[v4i32] } 2991:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (ADDS_S_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
    6501             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ADDS_S_W,
    6502             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    6503             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    6504             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    6505             :         GIR_EraseFromParent, /*InsnID*/0,
    6506             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6507             :         // GIR_Coverage, 469,
    6508             :         GIR_Done,
    6509             :       // Label 491: @14239
    6510             :       GIM_Try, /*On fail goto*//*Label 492*/ 14291, // Rule ID 470 //
    6511             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    6512             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_adds_s_d,
    6513             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    6514             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    6515             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    6516             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    6517             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    6518             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128DRegClassID,
    6519             :         // (intrinsic_wo_chain:{ *:[v2i64] } 2989:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)  =>  (ADDS_S_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)
    6520             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ADDS_S_D,
    6521             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    6522             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    6523             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    6524             :         GIR_EraseFromParent, /*InsnID*/0,
    6525             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6526             :         // GIR_Coverage, 470,
    6527             :         GIR_Done,
    6528             :       // Label 492: @14291
    6529             :       GIM_Try, /*On fail goto*//*Label 493*/ 14343, // Rule ID 471 //
    6530             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    6531             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_adds_u_b,
    6532             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
    6533             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    6534             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
    6535             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    6536             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    6537             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128BRegClassID,
    6538             :         // (intrinsic_wo_chain:{ *:[v16i8] } 2992:{ *:[iPTR] }, MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)  =>  (ADDS_U_B:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
    6539             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ADDS_U_B,
    6540             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    6541             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    6542             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    6543             :         GIR_EraseFromParent, /*InsnID*/0,
    6544             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6545             :         // GIR_Coverage, 471,
    6546             :         GIR_Done,
    6547             :       // Label 493: @14343
    6548             :       GIM_Try, /*On fail goto*//*Label 494*/ 14395, // Rule ID 472 //
    6549             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    6550             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_adds_u_h,
    6551             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    6552             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    6553             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
    6554             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    6555             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    6556             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128HRegClassID,
    6557             :         // (intrinsic_wo_chain:{ *:[v8i16] } 2994:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (ADDS_U_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
    6558             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ADDS_U_H,
    6559             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    6560             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    6561             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    6562             :         GIR_EraseFromParent, /*InsnID*/0,
    6563             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6564             :         // GIR_Coverage, 472,
    6565             :         GIR_Done,
    6566             :       // Label 494: @14395
    6567             :       GIM_Try, /*On fail goto*//*Label 495*/ 14447, // Rule ID 473 //
    6568             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    6569             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_adds_u_w,
    6570             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    6571             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    6572             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    6573             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    6574             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    6575             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    6576             :         // (intrinsic_wo_chain:{ *:[v4i32] } 2995:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (ADDS_U_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
    6577             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ADDS_U_W,
    6578             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    6579             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    6580             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    6581             :         GIR_EraseFromParent, /*InsnID*/0,
    6582             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6583             :         // GIR_Coverage, 473,
    6584             :         GIR_Done,
    6585             :       // Label 495: @14447
    6586             :       GIM_Try, /*On fail goto*//*Label 496*/ 14499, // Rule ID 474 //
    6587             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    6588             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_adds_u_d,
    6589             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    6590             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    6591             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    6592             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    6593             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    6594             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128DRegClassID,
    6595             :         // (intrinsic_wo_chain:{ *:[v2i64] } 2993:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)  =>  (ADDS_U_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)
    6596             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ADDS_U_D,
    6597             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    6598             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    6599             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    6600             :         GIR_EraseFromParent, /*InsnID*/0,
    6601             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6602             :         // GIR_Coverage, 474,
    6603             :         GIR_Done,
    6604             :       // Label 496: @14499
    6605             :       GIM_Try, /*On fail goto*//*Label 497*/ 14551, // Rule ID 488 //
    6606             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    6607             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_asub_s_b,
    6608             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
    6609             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    6610             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
    6611             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    6612             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    6613             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128BRegClassID,
    6614             :         // (intrinsic_wo_chain:{ *:[v16i8] } 3015:{ *:[iPTR] }, MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)  =>  (ASUB_S_B:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
    6615             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ASUB_S_B,
    6616             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    6617             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    6618             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    6619             :         GIR_EraseFromParent, /*InsnID*/0,
    6620             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6621             :         // GIR_Coverage, 488,
    6622             :         GIR_Done,
    6623             :       // Label 497: @14551
    6624             :       GIM_Try, /*On fail goto*//*Label 498*/ 14603, // Rule ID 489 //
    6625             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    6626             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_asub_s_h,
    6627             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    6628             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    6629             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
    6630             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    6631             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    6632             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128HRegClassID,
    6633             :         // (intrinsic_wo_chain:{ *:[v8i16] } 3017:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (ASUB_S_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
    6634             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ASUB_S_H,
    6635             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    6636             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    6637             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    6638             :         GIR_EraseFromParent, /*InsnID*/0,
    6639             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6640             :         // GIR_Coverage, 489,
    6641             :         GIR_Done,
    6642             :       // Label 498: @14603
    6643             :       GIM_Try, /*On fail goto*//*Label 499*/ 14655, // Rule ID 490 //
    6644             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    6645             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_asub_s_w,
    6646             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    6647             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    6648             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    6649             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    6650             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    6651             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    6652             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3018:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (ASUB_S_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
    6653             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ASUB_S_W,
    6654             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    6655             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    6656             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    6657             :         GIR_EraseFromParent, /*InsnID*/0,
    6658             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6659             :         // GIR_Coverage, 490,
    6660             :         GIR_Done,
    6661             :       // Label 499: @14655
    6662             :       GIM_Try, /*On fail goto*//*Label 500*/ 14707, // Rule ID 491 //
    6663             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    6664             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_asub_s_d,
    6665             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    6666             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    6667             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    6668             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    6669             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    6670             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128DRegClassID,
    6671             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3016:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)  =>  (ASUB_S_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)
    6672             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ASUB_S_D,
    6673             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    6674             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    6675             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    6676             :         GIR_EraseFromParent, /*InsnID*/0,
    6677             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6678             :         // GIR_Coverage, 491,
    6679             :         GIR_Done,
    6680             :       // Label 500: @14707
    6681             :       GIM_Try, /*On fail goto*//*Label 501*/ 14759, // Rule ID 492 //
    6682             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    6683             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_asub_u_b,
    6684             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
    6685             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    6686             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
    6687             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    6688             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    6689             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128BRegClassID,
    6690             :         // (intrinsic_wo_chain:{ *:[v16i8] } 3019:{ *:[iPTR] }, MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)  =>  (ASUB_U_B:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
    6691             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ASUB_U_B,
    6692             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    6693             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    6694             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    6695             :         GIR_EraseFromParent, /*InsnID*/0,
    6696             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6697             :         // GIR_Coverage, 492,
    6698             :         GIR_Done,
    6699             :       // Label 501: @14759
    6700             :       GIM_Try, /*On fail goto*//*Label 502*/ 14811, // Rule ID 493 //
    6701             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    6702             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_asub_u_h,
    6703             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    6704             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    6705             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
    6706             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    6707             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    6708             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128HRegClassID,
    6709             :         // (intrinsic_wo_chain:{ *:[v8i16] } 3021:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (ASUB_U_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
    6710             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ASUB_U_H,
    6711             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    6712             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    6713             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    6714             :         GIR_EraseFromParent, /*InsnID*/0,
    6715             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6716             :         // GIR_Coverage, 493,
    6717             :         GIR_Done,
    6718             :       // Label 502: @14811
    6719             :       GIM_Try, /*On fail goto*//*Label 503*/ 14863, // Rule ID 494 //
    6720             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    6721             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_asub_u_w,
    6722             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    6723             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    6724             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    6725             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    6726             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    6727             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    6728             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3022:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (ASUB_U_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
    6729             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ASUB_U_W,
    6730             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    6731             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    6732             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    6733             :         GIR_EraseFromParent, /*InsnID*/0,
    6734             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6735             :         // GIR_Coverage, 494,
    6736             :         GIR_Done,
    6737             :       // Label 503: @14863
    6738             :       GIM_Try, /*On fail goto*//*Label 504*/ 14915, // Rule ID 495 //
    6739             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    6740             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_asub_u_d,
    6741             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    6742             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    6743             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    6744             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    6745             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    6746             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128DRegClassID,
    6747             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3020:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)  =>  (ASUB_U_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)
    6748             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ASUB_U_D,
    6749             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    6750             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    6751             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    6752             :         GIR_EraseFromParent, /*InsnID*/0,
    6753             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6754             :         // GIR_Coverage, 495,
    6755             :         GIR_Done,
    6756             :       // Label 504: @14915
    6757             :       GIM_Try, /*On fail goto*//*Label 505*/ 14967, // Rule ID 496 //
    6758             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    6759             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_ave_s_b,
    6760             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
    6761             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    6762             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
    6763             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    6764             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    6765             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128BRegClassID,
    6766             :         // (intrinsic_wo_chain:{ *:[v16i8] } 3023:{ *:[iPTR] }, MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)  =>  (AVE_S_B:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
    6767             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::AVE_S_B,
    6768             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    6769             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    6770             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    6771             :         GIR_EraseFromParent, /*InsnID*/0,
    6772             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6773             :         // GIR_Coverage, 496,
    6774             :         GIR_Done,
    6775             :       // Label 505: @14967
    6776             :       GIM_Try, /*On fail goto*//*Label 506*/ 15019, // Rule ID 497 //
    6777             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    6778             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_ave_s_h,
    6779             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    6780             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    6781             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
    6782             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    6783             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    6784             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128HRegClassID,
    6785             :         // (intrinsic_wo_chain:{ *:[v8i16] } 3025:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (AVE_S_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
    6786             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::AVE_S_H,
    6787             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    6788             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    6789             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    6790             :         GIR_EraseFromParent, /*InsnID*/0,
    6791             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6792             :         // GIR_Coverage, 497,
    6793             :         GIR_Done,
    6794             :       // Label 506: @15019
    6795             :       GIM_Try, /*On fail goto*//*Label 507*/ 15071, // Rule ID 498 //
    6796             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    6797             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_ave_s_w,
    6798             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    6799             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    6800             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    6801             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    6802             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    6803             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    6804             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3026:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (AVE_S_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
    6805             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::AVE_S_W,
    6806             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    6807             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    6808             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    6809             :         GIR_EraseFromParent, /*InsnID*/0,
    6810             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6811             :         // GIR_Coverage, 498,
    6812             :         GIR_Done,
    6813             :       // Label 507: @15071
    6814             :       GIM_Try, /*On fail goto*//*Label 508*/ 15123, // Rule ID 499 //
    6815             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    6816             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_ave_s_d,
    6817             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    6818             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    6819             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    6820             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    6821             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    6822             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128DRegClassID,
    6823             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3024:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)  =>  (AVE_S_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)
    6824             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::AVE_S_D,
    6825             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    6826             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    6827             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    6828             :         GIR_EraseFromParent, /*InsnID*/0,
    6829             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6830             :         // GIR_Coverage, 499,
    6831             :         GIR_Done,
    6832             :       // Label 508: @15123
    6833             :       GIM_Try, /*On fail goto*//*Label 509*/ 15175, // Rule ID 500 //
    6834             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    6835             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_ave_u_b,
    6836             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
    6837             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    6838             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
    6839             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    6840             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    6841             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128BRegClassID,
    6842             :         // (intrinsic_wo_chain:{ *:[v16i8] } 3027:{ *:[iPTR] }, MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)  =>  (AVE_U_B:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
    6843             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::AVE_U_B,
    6844             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    6845             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    6846             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    6847             :         GIR_EraseFromParent, /*InsnID*/0,
    6848             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6849             :         // GIR_Coverage, 500,
    6850             :         GIR_Done,
    6851             :       // Label 509: @15175
    6852             :       GIM_Try, /*On fail goto*//*Label 510*/ 15227, // Rule ID 501 //
    6853             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    6854             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_ave_u_h,
    6855             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    6856             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    6857             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
    6858             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    6859             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    6860             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128HRegClassID,
    6861             :         // (intrinsic_wo_chain:{ *:[v8i16] } 3029:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (AVE_U_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
    6862             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::AVE_U_H,
    6863             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    6864             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    6865             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    6866             :         GIR_EraseFromParent, /*InsnID*/0,
    6867             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6868             :         // GIR_Coverage, 501,
    6869             :         GIR_Done,
    6870             :       // Label 510: @15227
    6871             :       GIM_Try, /*On fail goto*//*Label 511*/ 15279, // Rule ID 502 //
    6872             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    6873             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_ave_u_w,
    6874             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    6875             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    6876             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    6877             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    6878             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    6879             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    6880             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3030:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (AVE_U_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
    6881             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::AVE_U_W,
    6882             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    6883             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    6884             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    6885             :         GIR_EraseFromParent, /*InsnID*/0,
    6886             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6887             :         // GIR_Coverage, 502,
    6888             :         GIR_Done,
    6889             :       // Label 511: @15279
    6890             :       GIM_Try, /*On fail goto*//*Label 512*/ 15331, // Rule ID 503 //
    6891             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    6892             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_ave_u_d,
    6893             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    6894             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    6895             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    6896             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    6897             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    6898             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128DRegClassID,
    6899             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3028:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)  =>  (AVE_U_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)
    6900             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::AVE_U_D,
    6901             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    6902             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    6903             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    6904             :         GIR_EraseFromParent, /*InsnID*/0,
    6905             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6906             :         // GIR_Coverage, 503,
    6907             :         GIR_Done,
    6908             :       // Label 512: @15331
    6909             :       GIM_Try, /*On fail goto*//*Label 513*/ 15383, // Rule ID 504 //
    6910             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    6911             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_aver_s_b,
    6912             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
    6913             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    6914             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
    6915             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    6916             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    6917             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128BRegClassID,
    6918             :         // (intrinsic_wo_chain:{ *:[v16i8] } 3031:{ *:[iPTR] }, MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)  =>  (AVER_S_B:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
    6919             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::AVER_S_B,
    6920             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    6921             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    6922             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    6923             :         GIR_EraseFromParent, /*InsnID*/0,
    6924             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6925             :         // GIR_Coverage, 504,
    6926             :         GIR_Done,
    6927             :       // Label 513: @15383
    6928             :       GIM_Try, /*On fail goto*//*Label 514*/ 15435, // Rule ID 505 //
    6929             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    6930             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_aver_s_h,
    6931             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    6932             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    6933             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
    6934             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    6935             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    6936             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128HRegClassID,
    6937             :         // (intrinsic_wo_chain:{ *:[v8i16] } 3033:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (AVER_S_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
    6938             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::AVER_S_H,
    6939             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    6940             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    6941             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    6942             :         GIR_EraseFromParent, /*InsnID*/0,
    6943             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6944             :         // GIR_Coverage, 505,
    6945             :         GIR_Done,
    6946             :       // Label 514: @15435
    6947             :       GIM_Try, /*On fail goto*//*Label 515*/ 15487, // Rule ID 506 //
    6948             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    6949             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_aver_s_w,
    6950             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    6951             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    6952             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    6953             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    6954             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    6955             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    6956             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3034:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (AVER_S_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
    6957             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::AVER_S_W,
    6958             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    6959             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    6960             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    6961             :         GIR_EraseFromParent, /*InsnID*/0,
    6962             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6963             :         // GIR_Coverage, 506,
    6964             :         GIR_Done,
    6965             :       // Label 515: @15487
    6966             :       GIM_Try, /*On fail goto*//*Label 516*/ 15539, // Rule ID 507 //
    6967             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    6968             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_aver_s_d,
    6969             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    6970             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    6971             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    6972             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    6973             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    6974             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128DRegClassID,
    6975             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3032:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)  =>  (AVER_S_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)
    6976             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::AVER_S_D,
    6977             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    6978             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    6979             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    6980             :         GIR_EraseFromParent, /*InsnID*/0,
    6981             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    6982             :         // GIR_Coverage, 507,
    6983             :         GIR_Done,
    6984             :       // Label 516: @15539
    6985             :       GIM_Try, /*On fail goto*//*Label 517*/ 15591, // Rule ID 508 //
    6986             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    6987             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_aver_u_b,
    6988             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
    6989             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    6990             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
    6991             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    6992             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    6993             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128BRegClassID,
    6994             :         // (intrinsic_wo_chain:{ *:[v16i8] } 3035:{ *:[iPTR] }, MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)  =>  (AVER_U_B:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
    6995             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::AVER_U_B,
    6996             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    6997             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    6998             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    6999             :         GIR_EraseFromParent, /*InsnID*/0,
    7000             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7001             :         // GIR_Coverage, 508,
    7002             :         GIR_Done,
    7003             :       // Label 517: @15591
    7004             :       GIM_Try, /*On fail goto*//*Label 518*/ 15643, // Rule ID 509 //
    7005             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7006             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_aver_u_h,
    7007             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    7008             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    7009             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
    7010             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    7011             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    7012             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128HRegClassID,
    7013             :         // (intrinsic_wo_chain:{ *:[v8i16] } 3037:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (AVER_U_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
    7014             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::AVER_U_H,
    7015             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7016             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7017             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7018             :         GIR_EraseFromParent, /*InsnID*/0,
    7019             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7020             :         // GIR_Coverage, 509,
    7021             :         GIR_Done,
    7022             :       // Label 518: @15643
    7023             :       GIM_Try, /*On fail goto*//*Label 519*/ 15695, // Rule ID 510 //
    7024             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7025             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_aver_u_w,
    7026             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    7027             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    7028             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    7029             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    7030             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    7031             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    7032             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3038:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (AVER_U_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
    7033             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::AVER_U_W,
    7034             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7035             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7036             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7037             :         GIR_EraseFromParent, /*InsnID*/0,
    7038             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7039             :         // GIR_Coverage, 510,
    7040             :         GIR_Done,
    7041             :       // Label 519: @15695
    7042             :       GIM_Try, /*On fail goto*//*Label 520*/ 15747, // Rule ID 511 //
    7043             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7044             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_aver_u_d,
    7045             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    7046             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    7047             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    7048             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    7049             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    7050             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128DRegClassID,
    7051             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3036:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)  =>  (AVER_U_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)
    7052             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::AVER_U_D,
    7053             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7054             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7055             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7056             :         GIR_EraseFromParent, /*InsnID*/0,
    7057             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7058             :         // GIR_Coverage, 511,
    7059             :         GIR_Done,
    7060             :       // Label 520: @15747
    7061             :       GIM_Try, /*On fail goto*//*Label 521*/ 15799, // Rule ID 620 //
    7062             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7063             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_dotp_s_h,
    7064             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    7065             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    7066             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
    7067             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    7068             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    7069             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128BRegClassID,
    7070             :         // (intrinsic_wo_chain:{ *:[v8i16] } 3170:{ *:[iPTR] }, MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)  =>  (DOTP_S_H:{ *:[v8i16] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
    7071             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::DOTP_S_H,
    7072             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7073             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7074             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7075             :         GIR_EraseFromParent, /*InsnID*/0,
    7076             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7077             :         // GIR_Coverage, 620,
    7078             :         GIR_Done,
    7079             :       // Label 521: @15799
    7080             :       GIM_Try, /*On fail goto*//*Label 522*/ 15851, // Rule ID 621 //
    7081             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7082             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_dotp_s_w,
    7083             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    7084             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    7085             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
    7086             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    7087             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    7088             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128HRegClassID,
    7089             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3171:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (DOTP_S_W:{ *:[v4i32] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
    7090             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::DOTP_S_W,
    7091             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7092             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7093             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7094             :         GIR_EraseFromParent, /*InsnID*/0,
    7095             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7096             :         // GIR_Coverage, 621,
    7097             :         GIR_Done,
    7098             :       // Label 522: @15851
    7099             :       GIM_Try, /*On fail goto*//*Label 523*/ 15903, // Rule ID 622 //
    7100             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7101             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_dotp_s_d,
    7102             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    7103             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    7104             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    7105             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    7106             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    7107             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    7108             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3169:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (DOTP_S_D:{ *:[v2i64] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
    7109             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::DOTP_S_D,
    7110             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7111             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7112             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7113             :         GIR_EraseFromParent, /*InsnID*/0,
    7114             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7115             :         // GIR_Coverage, 622,
    7116             :         GIR_Done,
    7117             :       // Label 523: @15903
    7118             :       GIM_Try, /*On fail goto*//*Label 524*/ 15955, // Rule ID 623 //
    7119             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7120             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_dotp_u_h,
    7121             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    7122             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    7123             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
    7124             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    7125             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    7126             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128BRegClassID,
    7127             :         // (intrinsic_wo_chain:{ *:[v8i16] } 3173:{ *:[iPTR] }, MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)  =>  (DOTP_U_H:{ *:[v8i16] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
    7128             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::DOTP_U_H,
    7129             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7130             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7131             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7132             :         GIR_EraseFromParent, /*InsnID*/0,
    7133             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7134             :         // GIR_Coverage, 623,
    7135             :         GIR_Done,
    7136             :       // Label 524: @15955
    7137             :       GIM_Try, /*On fail goto*//*Label 525*/ 16007, // Rule ID 624 //
    7138             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7139             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_dotp_u_w,
    7140             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    7141             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    7142             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
    7143             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    7144             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    7145             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128HRegClassID,
    7146             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3174:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (DOTP_U_W:{ *:[v4i32] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
    7147             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::DOTP_U_W,
    7148             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7149             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7150             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7151             :         GIR_EraseFromParent, /*InsnID*/0,
    7152             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7153             :         // GIR_Coverage, 624,
    7154             :         GIR_Done,
    7155             :       // Label 525: @16007
    7156             :       GIM_Try, /*On fail goto*//*Label 526*/ 16059, // Rule ID 625 //
    7157             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7158             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_dotp_u_d,
    7159             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    7160             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    7161             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    7162             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    7163             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    7164             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    7165             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3172:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (DOTP_U_D:{ *:[v2i64] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
    7166             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::DOTP_U_D,
    7167             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7168             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7169             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7170             :         GIR_EraseFromParent, /*InsnID*/0,
    7171             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7172             :         // GIR_Coverage, 625,
    7173             :         GIR_Done,
    7174             :       // Label 526: @16059
    7175             :       GIM_Try, /*On fail goto*//*Label 527*/ 16111, // Rule ID 640 //
    7176             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7177             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_fcaf_w,
    7178             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    7179             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    7180             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    7181             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    7182             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    7183             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    7184             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3212:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)  =>  (FCAF_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)
    7185             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FCAF_W,
    7186             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7187             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7188             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7189             :         GIR_EraseFromParent, /*InsnID*/0,
    7190             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7191             :         // GIR_Coverage, 640,
    7192             :         GIR_Done,
    7193             :       // Label 527: @16111
    7194             :       GIM_Try, /*On fail goto*//*Label 528*/ 16163, // Rule ID 641 //
    7195             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7196             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_fcaf_d,
    7197             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    7198             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    7199             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    7200             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    7201             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    7202             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128DRegClassID,
    7203             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3211:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)  =>  (FCAF_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)
    7204             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FCAF_D,
    7205             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7206             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7207             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7208             :         GIR_EraseFromParent, /*InsnID*/0,
    7209             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7210             :         // GIR_Coverage, 641,
    7211             :         GIR_Done,
    7212             :       // Label 528: @16163
    7213             :       GIM_Try, /*On fail goto*//*Label 529*/ 16215, // Rule ID 666 //
    7214             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7215             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_fexdo_h,
    7216             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    7217             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    7218             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    7219             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    7220             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    7221             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    7222             :         // (intrinsic_wo_chain:{ *:[v8f16] } 3237:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)  =>  (FEXDO_H:{ *:[v8f16] } MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)
    7223             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FEXDO_H,
    7224             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7225             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7226             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7227             :         GIR_EraseFromParent, /*InsnID*/0,
    7228             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7229             :         // GIR_Coverage, 666,
    7230             :         GIR_Done,
    7231             :       // Label 529: @16215
    7232             :       GIM_Try, /*On fail goto*//*Label 530*/ 16267, // Rule ID 667 //
    7233             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7234             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_fexdo_w,
    7235             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    7236             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    7237             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    7238             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    7239             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    7240             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128DRegClassID,
    7241             :         // (intrinsic_wo_chain:{ *:[v4f32] } 3238:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)  =>  (FEXDO_W:{ *:[v4f32] } MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)
    7242             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FEXDO_W,
    7243             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7244             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7245             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7246             :         GIR_EraseFromParent, /*InsnID*/0,
    7247             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7248             :         // GIR_Coverage, 667,
    7249             :         GIR_Done,
    7250             :       // Label 530: @16267
    7251             :       GIM_Try, /*On fail goto*//*Label 531*/ 16319, // Rule ID 694 //
    7252             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7253             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_fmax_w,
    7254             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    7255             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    7256             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    7257             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    7258             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    7259             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    7260             :         // (intrinsic_wo_chain:{ *:[v4f32] } 3264:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)  =>  (FMAX_W:{ *:[v4f32] } MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)
    7261             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FMAX_W,
    7262             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7263             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7264             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7265             :         GIR_EraseFromParent, /*InsnID*/0,
    7266             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7267             :         // GIR_Coverage, 694,
    7268             :         GIR_Done,
    7269             :       // Label 531: @16319
    7270             :       GIM_Try, /*On fail goto*//*Label 532*/ 16371, // Rule ID 695 //
    7271             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7272             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_fmax_d,
    7273             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    7274             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    7275             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    7276             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    7277             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    7278             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128DRegClassID,
    7279             :         // (intrinsic_wo_chain:{ *:[v2f64] } 3263:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)  =>  (FMAX_D:{ *:[v2f64] } MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)
    7280             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FMAX_D,
    7281             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7282             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7283             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7284             :         GIR_EraseFromParent, /*InsnID*/0,
    7285             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7286             :         // GIR_Coverage, 695,
    7287             :         GIR_Done,
    7288             :       // Label 532: @16371
    7289             :       GIM_Try, /*On fail goto*//*Label 533*/ 16423, // Rule ID 696 //
    7290             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7291             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_fmax_a_w,
    7292             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    7293             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    7294             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    7295             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    7296             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    7297             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    7298             :         // (intrinsic_wo_chain:{ *:[v4f32] } 3262:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)  =>  (FMAX_A_W:{ *:[v4f32] } MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)
    7299             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FMAX_A_W,
    7300             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7301             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7302             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7303             :         GIR_EraseFromParent, /*InsnID*/0,
    7304             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7305             :         // GIR_Coverage, 696,
    7306             :         GIR_Done,
    7307             :       // Label 533: @16423
    7308             :       GIM_Try, /*On fail goto*//*Label 534*/ 16475, // Rule ID 697 //
    7309             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7310             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_fmax_a_d,
    7311             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    7312             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    7313             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    7314             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    7315             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    7316             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128DRegClassID,
    7317             :         // (intrinsic_wo_chain:{ *:[v2f64] } 3261:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)  =>  (FMAX_A_D:{ *:[v2f64] } MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)
    7318             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FMAX_A_D,
    7319             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7320             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7321             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7322             :         GIR_EraseFromParent, /*InsnID*/0,
    7323             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7324             :         // GIR_Coverage, 697,
    7325             :         GIR_Done,
    7326             :       // Label 534: @16475
    7327             :       GIM_Try, /*On fail goto*//*Label 535*/ 16527, // Rule ID 698 //
    7328             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7329             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_fmin_w,
    7330             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    7331             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    7332             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    7333             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    7334             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    7335             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    7336             :         // (intrinsic_wo_chain:{ *:[v4f32] } 3268:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)  =>  (FMIN_W:{ *:[v4f32] } MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)
    7337             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FMIN_W,
    7338             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7339             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7340             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7341             :         GIR_EraseFromParent, /*InsnID*/0,
    7342             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7343             :         // GIR_Coverage, 698,
    7344             :         GIR_Done,
    7345             :       // Label 535: @16527
    7346             :       GIM_Try, /*On fail goto*//*Label 536*/ 16579, // Rule ID 699 //
    7347             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7348             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_fmin_d,
    7349             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    7350             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    7351             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    7352             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    7353             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    7354             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128DRegClassID,
    7355             :         // (intrinsic_wo_chain:{ *:[v2f64] } 3267:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)  =>  (FMIN_D:{ *:[v2f64] } MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)
    7356             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FMIN_D,
    7357             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7358             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7359             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7360             :         GIR_EraseFromParent, /*InsnID*/0,
    7361             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7362             :         // GIR_Coverage, 699,
    7363             :         GIR_Done,
    7364             :       // Label 536: @16579
    7365             :       GIM_Try, /*On fail goto*//*Label 537*/ 16631, // Rule ID 700 //
    7366             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7367             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_fmin_a_w,
    7368             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    7369             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    7370             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    7371             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    7372             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    7373             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    7374             :         // (intrinsic_wo_chain:{ *:[v4f32] } 3266:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)  =>  (FMIN_A_W:{ *:[v4f32] } MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)
    7375             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FMIN_A_W,
    7376             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7377             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7378             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7379             :         GIR_EraseFromParent, /*InsnID*/0,
    7380             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7381             :         // GIR_Coverage, 700,
    7382             :         GIR_Done,
    7383             :       // Label 537: @16631
    7384             :       GIM_Try, /*On fail goto*//*Label 538*/ 16683, // Rule ID 701 //
    7385             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7386             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_fmin_a_d,
    7387             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    7388             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    7389             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    7390             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    7391             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    7392             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128DRegClassID,
    7393             :         // (intrinsic_wo_chain:{ *:[v2f64] } 3265:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)  =>  (FMIN_A_D:{ *:[v2f64] } MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)
    7394             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FMIN_A_D,
    7395             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7396             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7397             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7398             :         GIR_EraseFromParent, /*InsnID*/0,
    7399             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7400             :         // GIR_Coverage, 701,
    7401             :         GIR_Done,
    7402             :       // Label 538: @16683
    7403             :       GIM_Try, /*On fail goto*//*Label 539*/ 16735, // Rule ID 712 //
    7404             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7405             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_fsaf_w,
    7406             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    7407             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    7408             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    7409             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    7410             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    7411             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    7412             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3280:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)  =>  (FSAF_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)
    7413             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FSAF_W,
    7414             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7415             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7416             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7417             :         GIR_EraseFromParent, /*InsnID*/0,
    7418             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7419             :         // GIR_Coverage, 712,
    7420             :         GIR_Done,
    7421             :       // Label 539: @16735
    7422             :       GIM_Try, /*On fail goto*//*Label 540*/ 16787, // Rule ID 713 //
    7423             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7424             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_fsaf_d,
    7425             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    7426             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    7427             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    7428             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    7429             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    7430             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128DRegClassID,
    7431             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3279:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)  =>  (FSAF_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)
    7432             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FSAF_D,
    7433             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7434             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7435             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7436             :         GIR_EraseFromParent, /*InsnID*/0,
    7437             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7438             :         // GIR_Coverage, 713,
    7439             :         GIR_Done,
    7440             :       // Label 540: @16787
    7441             :       GIM_Try, /*On fail goto*//*Label 541*/ 16839, // Rule ID 714 //
    7442             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7443             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_fseq_w,
    7444             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    7445             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    7446             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    7447             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    7448             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    7449             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    7450             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3282:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)  =>  (FSEQ_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)
    7451             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FSEQ_W,
    7452             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7453             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7454             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7455             :         GIR_EraseFromParent, /*InsnID*/0,
    7456             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7457             :         // GIR_Coverage, 714,
    7458             :         GIR_Done,
    7459             :       // Label 541: @16839
    7460             :       GIM_Try, /*On fail goto*//*Label 542*/ 16891, // Rule ID 715 //
    7461             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7462             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_fseq_d,
    7463             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    7464             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    7465             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    7466             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    7467             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    7468             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128DRegClassID,
    7469             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3281:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)  =>  (FSEQ_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)
    7470             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FSEQ_D,
    7471             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7472             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7473             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7474             :         GIR_EraseFromParent, /*InsnID*/0,
    7475             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7476             :         // GIR_Coverage, 715,
    7477             :         GIR_Done,
    7478             :       // Label 542: @16891
    7479             :       GIM_Try, /*On fail goto*//*Label 543*/ 16943, // Rule ID 716 //
    7480             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7481             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_fsle_w,
    7482             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    7483             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    7484             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    7485             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    7486             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    7487             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    7488             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3284:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)  =>  (FSLE_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)
    7489             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FSLE_W,
    7490             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7491             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7492             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7493             :         GIR_EraseFromParent, /*InsnID*/0,
    7494             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7495             :         // GIR_Coverage, 716,
    7496             :         GIR_Done,
    7497             :       // Label 543: @16943
    7498             :       GIM_Try, /*On fail goto*//*Label 544*/ 16995, // Rule ID 717 //
    7499             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7500             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_fsle_d,
    7501             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    7502             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    7503             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    7504             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    7505             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    7506             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128DRegClassID,
    7507             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3283:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)  =>  (FSLE_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)
    7508             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FSLE_D,
    7509             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7510             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7511             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7512             :         GIR_EraseFromParent, /*InsnID*/0,
    7513             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7514             :         // GIR_Coverage, 717,
    7515             :         GIR_Done,
    7516             :       // Label 544: @16995
    7517             :       GIM_Try, /*On fail goto*//*Label 545*/ 17047, // Rule ID 718 //
    7518             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7519             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_fslt_w,
    7520             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    7521             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    7522             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    7523             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    7524             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    7525             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    7526             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3286:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)  =>  (FSLT_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)
    7527             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FSLT_W,
    7528             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7529             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7530             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7531             :         GIR_EraseFromParent, /*InsnID*/0,
    7532             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7533             :         // GIR_Coverage, 718,
    7534             :         GIR_Done,
    7535             :       // Label 545: @17047
    7536             :       GIM_Try, /*On fail goto*//*Label 546*/ 17099, // Rule ID 719 //
    7537             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7538             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_fslt_d,
    7539             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    7540             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    7541             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    7542             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    7543             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    7544             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128DRegClassID,
    7545             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3285:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)  =>  (FSLT_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)
    7546             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FSLT_D,
    7547             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7548             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7549             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7550             :         GIR_EraseFromParent, /*InsnID*/0,
    7551             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7552             :         // GIR_Coverage, 719,
    7553             :         GIR_Done,
    7554             :       // Label 546: @17099
    7555             :       GIM_Try, /*On fail goto*//*Label 547*/ 17151, // Rule ID 720 //
    7556             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7557             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_fsne_w,
    7558             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    7559             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    7560             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    7561             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    7562             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    7563             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    7564             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3288:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)  =>  (FSNE_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)
    7565             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FSNE_W,
    7566             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7567             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7568             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7569             :         GIR_EraseFromParent, /*InsnID*/0,
    7570             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7571             :         // GIR_Coverage, 720,
    7572             :         GIR_Done,
    7573             :       // Label 547: @17151
    7574             :       GIM_Try, /*On fail goto*//*Label 548*/ 17203, // Rule ID 721 //
    7575             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7576             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_fsne_d,
    7577             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    7578             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    7579             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    7580             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    7581             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    7582             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128DRegClassID,
    7583             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3287:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)  =>  (FSNE_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)
    7584             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FSNE_D,
    7585             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7586             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7587             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7588             :         GIR_EraseFromParent, /*InsnID*/0,
    7589             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7590             :         // GIR_Coverage, 721,
    7591             :         GIR_Done,
    7592             :       // Label 548: @17203
    7593             :       GIM_Try, /*On fail goto*//*Label 549*/ 17255, // Rule ID 722 //
    7594             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7595             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_fsor_w,
    7596             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    7597             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    7598             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    7599             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    7600             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    7601             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    7602             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3290:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)  =>  (FSOR_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)
    7603             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FSOR_W,
    7604             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7605             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7606             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7607             :         GIR_EraseFromParent, /*InsnID*/0,
    7608             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7609             :         // GIR_Coverage, 722,
    7610             :         GIR_Done,
    7611             :       // Label 549: @17255
    7612             :       GIM_Try, /*On fail goto*//*Label 550*/ 17307, // Rule ID 723 //
    7613             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7614             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_fsor_d,
    7615             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    7616             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    7617             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    7618             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    7619             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    7620             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128DRegClassID,
    7621             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3289:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)  =>  (FSOR_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)
    7622             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FSOR_D,
    7623             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7624             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7625             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7626             :         GIR_EraseFromParent, /*InsnID*/0,
    7627             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7628             :         // GIR_Coverage, 723,
    7629             :         GIR_Done,
    7630             :       // Label 550: @17307
    7631             :       GIM_Try, /*On fail goto*//*Label 551*/ 17359, // Rule ID 728 //
    7632             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7633             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_fsueq_w,
    7634             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    7635             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    7636             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    7637             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    7638             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    7639             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    7640             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3296:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)  =>  (FSUEQ_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)
    7641             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FSUEQ_W,
    7642             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7643             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7644             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7645             :         GIR_EraseFromParent, /*InsnID*/0,
    7646             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7647             :         // GIR_Coverage, 728,
    7648             :         GIR_Done,
    7649             :       // Label 551: @17359
    7650             :       GIM_Try, /*On fail goto*//*Label 552*/ 17411, // Rule ID 729 //
    7651             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7652             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_fsueq_d,
    7653             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    7654             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    7655             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    7656             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    7657             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    7658             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128DRegClassID,
    7659             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3295:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)  =>  (FSUEQ_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)
    7660             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FSUEQ_D,
    7661             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7662             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7663             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7664             :         GIR_EraseFromParent, /*InsnID*/0,
    7665             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7666             :         // GIR_Coverage, 729,
    7667             :         GIR_Done,
    7668             :       // Label 552: @17411
    7669             :       GIM_Try, /*On fail goto*//*Label 553*/ 17463, // Rule ID 730 //
    7670             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7671             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_fsule_w,
    7672             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    7673             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    7674             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    7675             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    7676             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    7677             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    7678             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3298:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)  =>  (FSULE_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)
    7679             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FSULE_W,
    7680             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7681             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7682             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7683             :         GIR_EraseFromParent, /*InsnID*/0,
    7684             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7685             :         // GIR_Coverage, 730,
    7686             :         GIR_Done,
    7687             :       // Label 553: @17463
    7688             :       GIM_Try, /*On fail goto*//*Label 554*/ 17515, // Rule ID 731 //
    7689             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7690             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_fsule_d,
    7691             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    7692             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    7693             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    7694             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    7695             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    7696             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128DRegClassID,
    7697             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3297:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)  =>  (FSULE_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)
    7698             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FSULE_D,
    7699             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7700             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7701             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7702             :         GIR_EraseFromParent, /*InsnID*/0,
    7703             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7704             :         // GIR_Coverage, 731,
    7705             :         GIR_Done,
    7706             :       // Label 554: @17515
    7707             :       GIM_Try, /*On fail goto*//*Label 555*/ 17567, // Rule ID 732 //
    7708             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7709             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_fsult_w,
    7710             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    7711             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    7712             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    7713             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    7714             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    7715             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    7716             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3300:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)  =>  (FSULT_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)
    7717             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FSULT_W,
    7718             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7719             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7720             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7721             :         GIR_EraseFromParent, /*InsnID*/0,
    7722             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7723             :         // GIR_Coverage, 732,
    7724             :         GIR_Done,
    7725             :       // Label 555: @17567
    7726             :       GIM_Try, /*On fail goto*//*Label 556*/ 17619, // Rule ID 733 //
    7727             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7728             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_fsult_d,
    7729             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    7730             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    7731             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    7732             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    7733             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    7734             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128DRegClassID,
    7735             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3299:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)  =>  (FSULT_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)
    7736             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FSULT_D,
    7737             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7738             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7739             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7740             :         GIR_EraseFromParent, /*InsnID*/0,
    7741             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7742             :         // GIR_Coverage, 733,
    7743             :         GIR_Done,
    7744             :       // Label 556: @17619
    7745             :       GIM_Try, /*On fail goto*//*Label 557*/ 17671, // Rule ID 734 //
    7746             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7747             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_fsun_w,
    7748             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    7749             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    7750             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    7751             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    7752             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    7753             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    7754             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3302:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)  =>  (FSUN_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)
    7755             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FSUN_W,
    7756             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7757             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7758             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7759             :         GIR_EraseFromParent, /*InsnID*/0,
    7760             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7761             :         // GIR_Coverage, 734,
    7762             :         GIR_Done,
    7763             :       // Label 557: @17671
    7764             :       GIM_Try, /*On fail goto*//*Label 558*/ 17723, // Rule ID 735 //
    7765             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7766             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_fsun_d,
    7767             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    7768             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    7769             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    7770             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    7771             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    7772             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128DRegClassID,
    7773             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3301:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)  =>  (FSUN_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)
    7774             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FSUN_D,
    7775             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7776             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7777             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7778             :         GIR_EraseFromParent, /*InsnID*/0,
    7779             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7780             :         // GIR_Coverage, 735,
    7781             :         GIR_Done,
    7782             :       // Label 558: @17723
    7783             :       GIM_Try, /*On fail goto*//*Label 559*/ 17775, // Rule ID 736 //
    7784             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7785             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_fsune_w,
    7786             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    7787             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    7788             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    7789             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    7790             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    7791             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    7792             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3304:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)  =>  (FSUNE_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)
    7793             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FSUNE_W,
    7794             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7795             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7796             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7797             :         GIR_EraseFromParent, /*InsnID*/0,
    7798             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7799             :         // GIR_Coverage, 736,
    7800             :         GIR_Done,
    7801             :       // Label 559: @17775
    7802             :       GIM_Try, /*On fail goto*//*Label 560*/ 17827, // Rule ID 737 //
    7803             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7804             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_fsune_d,
    7805             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    7806             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    7807             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    7808             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    7809             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    7810             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128DRegClassID,
    7811             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3303:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)  =>  (FSUNE_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)
    7812             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FSUNE_D,
    7813             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7814             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7815             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7816             :         GIR_EraseFromParent, /*InsnID*/0,
    7817             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7818             :         // GIR_Coverage, 737,
    7819             :         GIR_Done,
    7820             :       // Label 560: @17827
    7821             :       GIM_Try, /*On fail goto*//*Label 561*/ 17879, // Rule ID 742 //
    7822             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7823             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_ftq_h,
    7824             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    7825             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    7826             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    7827             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    7828             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    7829             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    7830             :         // (intrinsic_wo_chain:{ *:[v8i16] } 3309:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)  =>  (FTQ_H:{ *:[v8i16] } MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)
    7831             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FTQ_H,
    7832             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7833             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7834             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7835             :         GIR_EraseFromParent, /*InsnID*/0,
    7836             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7837             :         // GIR_Coverage, 742,
    7838             :         GIR_Done,
    7839             :       // Label 561: @17879
    7840             :       GIM_Try, /*On fail goto*//*Label 562*/ 17931, // Rule ID 743 //
    7841             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7842             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_ftq_w,
    7843             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    7844             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    7845             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    7846             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    7847             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    7848             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128DRegClassID,
    7849             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3310:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)  =>  (FTQ_W:{ *:[v4i32] } MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)
    7850             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FTQ_W,
    7851             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7852             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7853             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7854             :         GIR_EraseFromParent, /*InsnID*/0,
    7855             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7856             :         // GIR_Coverage, 743,
    7857             :         GIR_Done,
    7858             :       // Label 562: @17931
    7859             :       GIM_Try, /*On fail goto*//*Label 563*/ 17983, // Rule ID 748 //
    7860             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7861             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_hadd_s_h,
    7862             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    7863             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    7864             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
    7865             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    7866             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    7867             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128BRegClassID,
    7868             :         // (intrinsic_wo_chain:{ *:[v8i16] } 3316:{ *:[iPTR] }, MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)  =>  (HADD_S_H:{ *:[v8i16] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
    7869             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::HADD_S_H,
    7870             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7871             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7872             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7873             :         GIR_EraseFromParent, /*InsnID*/0,
    7874             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7875             :         // GIR_Coverage, 748,
    7876             :         GIR_Done,
    7877             :       // Label 563: @17983
    7878             :       GIM_Try, /*On fail goto*//*Label 564*/ 18035, // Rule ID 749 //
    7879             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7880             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_hadd_s_w,
    7881             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    7882             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    7883             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
    7884             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    7885             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    7886             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128HRegClassID,
    7887             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3317:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (HADD_S_W:{ *:[v4i32] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
    7888             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::HADD_S_W,
    7889             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7890             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7891             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7892             :         GIR_EraseFromParent, /*InsnID*/0,
    7893             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7894             :         // GIR_Coverage, 749,
    7895             :         GIR_Done,
    7896             :       // Label 564: @18035
    7897             :       GIM_Try, /*On fail goto*//*Label 565*/ 18087, // Rule ID 750 //
    7898             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7899             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_hadd_s_d,
    7900             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    7901             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    7902             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    7903             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    7904             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    7905             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    7906             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3315:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (HADD_S_D:{ *:[v2i64] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
    7907             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::HADD_S_D,
    7908             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7909             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7910             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7911             :         GIR_EraseFromParent, /*InsnID*/0,
    7912             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7913             :         // GIR_Coverage, 750,
    7914             :         GIR_Done,
    7915             :       // Label 565: @18087
    7916             :       GIM_Try, /*On fail goto*//*Label 566*/ 18139, // Rule ID 751 //
    7917             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7918             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_hadd_u_h,
    7919             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    7920             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    7921             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
    7922             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    7923             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    7924             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128BRegClassID,
    7925             :         // (intrinsic_wo_chain:{ *:[v8i16] } 3319:{ *:[iPTR] }, MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)  =>  (HADD_U_H:{ *:[v8i16] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
    7926             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::HADD_U_H,
    7927             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7928             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7929             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7930             :         GIR_EraseFromParent, /*InsnID*/0,
    7931             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7932             :         // GIR_Coverage, 751,
    7933             :         GIR_Done,
    7934             :       // Label 566: @18139
    7935             :       GIM_Try, /*On fail goto*//*Label 567*/ 18191, // Rule ID 752 //
    7936             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7937             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_hadd_u_w,
    7938             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    7939             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    7940             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
    7941             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    7942             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    7943             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128HRegClassID,
    7944             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3320:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (HADD_U_W:{ *:[v4i32] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
    7945             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::HADD_U_W,
    7946             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7947             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7948             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7949             :         GIR_EraseFromParent, /*InsnID*/0,
    7950             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7951             :         // GIR_Coverage, 752,
    7952             :         GIR_Done,
    7953             :       // Label 567: @18191
    7954             :       GIM_Try, /*On fail goto*//*Label 568*/ 18243, // Rule ID 753 //
    7955             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7956             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_hadd_u_d,
    7957             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    7958             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    7959             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    7960             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    7961             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    7962             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    7963             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3318:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (HADD_U_D:{ *:[v2i64] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
    7964             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::HADD_U_D,
    7965             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7966             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7967             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7968             :         GIR_EraseFromParent, /*InsnID*/0,
    7969             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7970             :         // GIR_Coverage, 753,
    7971             :         GIR_Done,
    7972             :       // Label 568: @18243
    7973             :       GIM_Try, /*On fail goto*//*Label 569*/ 18295, // Rule ID 754 //
    7974             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7975             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_hsub_s_h,
    7976             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    7977             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    7978             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
    7979             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    7980             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    7981             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128BRegClassID,
    7982             :         // (intrinsic_wo_chain:{ *:[v8i16] } 3322:{ *:[iPTR] }, MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)  =>  (HSUB_S_H:{ *:[v8i16] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
    7983             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::HSUB_S_H,
    7984             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    7985             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    7986             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    7987             :         GIR_EraseFromParent, /*InsnID*/0,
    7988             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7989             :         // GIR_Coverage, 754,
    7990             :         GIR_Done,
    7991             :       // Label 569: @18295
    7992             :       GIM_Try, /*On fail goto*//*Label 570*/ 18347, // Rule ID 755 //
    7993             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    7994             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_hsub_s_w,
    7995             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    7996             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    7997             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
    7998             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    7999             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    8000             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128HRegClassID,
    8001             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3323:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (HSUB_S_W:{ *:[v4i32] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
    8002             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::HSUB_S_W,
    8003             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    8004             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    8005             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    8006             :         GIR_EraseFromParent, /*InsnID*/0,
    8007             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8008             :         // GIR_Coverage, 755,
    8009             :         GIR_Done,
    8010             :       // Label 570: @18347
    8011             :       GIM_Try, /*On fail goto*//*Label 571*/ 18399, // Rule ID 756 //
    8012             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    8013             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_hsub_s_d,
    8014             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    8015             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    8016             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    8017             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    8018             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    8019             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    8020             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3321:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (HSUB_S_D:{ *:[v2i64] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
    8021             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::HSUB_S_D,
    8022             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    8023             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    8024             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    8025             :         GIR_EraseFromParent, /*InsnID*/0,
    8026             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8027             :         // GIR_Coverage, 756,
    8028             :         GIR_Done,
    8029             :       // Label 571: @18399
    8030             :       GIM_Try, /*On fail goto*//*Label 572*/ 18451, // Rule ID 757 //
    8031             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    8032             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_hsub_u_h,
    8033             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    8034             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    8035             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
    8036             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    8037             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    8038             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128BRegClassID,
    8039             :         // (intrinsic_wo_chain:{ *:[v8i16] } 3325:{ *:[iPTR] }, MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)  =>  (HSUB_U_H:{ *:[v8i16] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
    8040             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::HSUB_U_H,
    8041             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    8042             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    8043             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    8044             :         GIR_EraseFromParent, /*InsnID*/0,
    8045             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8046             :         // GIR_Coverage, 757,
    8047             :         GIR_Done,
    8048             :       // Label 572: @18451
    8049             :       GIM_Try, /*On fail goto*//*Label 573*/ 18503, // Rule ID 758 //
    8050             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    8051             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_hsub_u_w,
    8052             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    8053             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    8054             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
    8055             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    8056             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    8057             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128HRegClassID,
    8058             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3326:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (HSUB_U_W:{ *:[v4i32] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
    8059             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::HSUB_U_W,
    8060             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    8061             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    8062             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    8063             :         GIR_EraseFromParent, /*InsnID*/0,
    8064             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8065             :         // GIR_Coverage, 758,
    8066             :         GIR_Done,
    8067             :       // Label 573: @18503
    8068             :       GIM_Try, /*On fail goto*//*Label 574*/ 18555, // Rule ID 759 //
    8069             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    8070             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_hsub_u_d,
    8071             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    8072             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    8073             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    8074             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    8075             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    8076             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    8077             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3324:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (HSUB_U_D:{ *:[v2i64] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
    8078             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::HSUB_U_D,
    8079             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    8080             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    8081             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    8082             :         GIR_EraseFromParent, /*InsnID*/0,
    8083             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8084             :         // GIR_Coverage, 759,
    8085             :         GIR_Done,
    8086             :       // Label 574: @18555
    8087             :       GIM_Try, /*On fail goto*//*Label 575*/ 18607, // Rule ID 812 //
    8088             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    8089             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_max_a_b,
    8090             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
    8091             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    8092             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
    8093             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    8094             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    8095             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128BRegClassID,
    8096             :         // (intrinsic_wo_chain:{ *:[v16i8] } 3378:{ *:[iPTR] }, MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)  =>  (MAX_A_B:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
    8097             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MAX_A_B,
    8098             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    8099             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    8100             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    8101             :         GIR_EraseFromParent, /*InsnID*/0,
    8102             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8103             :         // GIR_Coverage, 812,
    8104             :         GIR_Done,
    8105             :       // Label 575: @18607
    8106             :       GIM_Try, /*On fail goto*//*Label 576*/ 18659, // Rule ID 813 //
    8107             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    8108             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_max_a_h,
    8109             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    8110             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    8111             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
    8112             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    8113             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    8114             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128HRegClassID,
    8115             :         // (intrinsic_wo_chain:{ *:[v8i16] } 3380:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (MAX_A_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
    8116             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MAX_A_H,
    8117             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    8118             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    8119             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    8120             :         GIR_EraseFromParent, /*InsnID*/0,
    8121             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8122             :         // GIR_Coverage, 813,
    8123             :         GIR_Done,
    8124             :       // Label 576: @18659
    8125             :       GIM_Try, /*On fail goto*//*Label 577*/ 18711, // Rule ID 814 //
    8126             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    8127             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_max_a_w,
    8128             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    8129             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    8130             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    8131             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    8132             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    8133             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    8134             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3381:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (MAX_A_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
    8135             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MAX_A_W,
    8136             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    8137             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    8138             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    8139             :         GIR_EraseFromParent, /*InsnID*/0,
    8140             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8141             :         // GIR_Coverage, 814,
    8142             :         GIR_Done,
    8143             :       // Label 577: @18711
    8144             :       GIM_Try, /*On fail goto*//*Label 578*/ 18763, // Rule ID 815 //
    8145             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    8146             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_max_a_d,
    8147             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    8148             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    8149             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    8150             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    8151             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    8152             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128DRegClassID,
    8153             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3379:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)  =>  (MAX_A_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)
    8154             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MAX_A_D,
    8155             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    8156             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    8157             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    8158             :         GIR_EraseFromParent, /*InsnID*/0,
    8159             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8160             :         // GIR_Coverage, 815,
    8161             :         GIR_Done,
    8162             :       // Label 578: @18763
    8163             :       GIM_Try, /*On fail goto*//*Label 579*/ 18815, // Rule ID 832 //
    8164             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    8165             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_min_a_b,
    8166             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
    8167             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    8168             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
    8169             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    8170             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    8171             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128BRegClassID,
    8172             :         // (intrinsic_wo_chain:{ *:[v16i8] } 3398:{ *:[iPTR] }, MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)  =>  (MIN_A_B:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
    8173             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MIN_A_B,
    8174             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    8175             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    8176             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    8177             :         GIR_EraseFromParent, /*InsnID*/0,
    8178             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8179             :         // GIR_Coverage, 832,
    8180             :         GIR_Done,
    8181             :       // Label 579: @18815
    8182             :       GIM_Try, /*On fail goto*//*Label 580*/ 18867, // Rule ID 833 //
    8183             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    8184             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_min_a_h,
    8185             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    8186             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    8187             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
    8188             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    8189             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    8190             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128HRegClassID,
    8191             :         // (intrinsic_wo_chain:{ *:[v8i16] } 3400:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (MIN_A_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
    8192             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MIN_A_H,
    8193             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    8194             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    8195             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    8196             :         GIR_EraseFromParent, /*InsnID*/0,
    8197             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8198             :         // GIR_Coverage, 833,
    8199             :         GIR_Done,
    8200             :       // Label 580: @18867
    8201             :       GIM_Try, /*On fail goto*//*Label 581*/ 18919, // Rule ID 834 //
    8202             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    8203             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_min_a_w,
    8204             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    8205             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    8206             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    8207             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    8208             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    8209             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    8210             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3401:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (MIN_A_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
    8211             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MIN_A_W,
    8212             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    8213             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    8214             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    8215             :         GIR_EraseFromParent, /*InsnID*/0,
    8216             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8217             :         // GIR_Coverage, 834,
    8218             :         GIR_Done,
    8219             :       // Label 581: @18919
    8220             :       GIM_Try, /*On fail goto*//*Label 582*/ 18971, // Rule ID 835 //
    8221             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    8222             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_min_a_d,
    8223             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    8224             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    8225             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    8226             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    8227             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    8228             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128DRegClassID,
    8229             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3399:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)  =>  (MIN_A_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)
    8230             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MIN_A_D,
    8231             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    8232             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    8233             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    8234             :         GIR_EraseFromParent, /*InsnID*/0,
    8235             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8236             :         // GIR_Coverage, 835,
    8237             :         GIR_Done,
    8238             :       // Label 582: @18971
    8239             :       GIM_Try, /*On fail goto*//*Label 583*/ 19023, // Rule ID 868 //
    8240             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    8241             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_mul_q_h,
    8242             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    8243             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    8244             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
    8245             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    8246             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    8247             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128HRegClassID,
    8248             :         // (intrinsic_wo_chain:{ *:[v8i16] } 3440:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (MUL_Q_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
    8249             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MUL_Q_H,
    8250             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    8251             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    8252             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    8253             :         GIR_EraseFromParent, /*InsnID*/0,
    8254             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8255             :         // GIR_Coverage, 868,
    8256             :         GIR_Done,
    8257             :       // Label 583: @19023
    8258             :       GIM_Try, /*On fail goto*//*Label 584*/ 19075, // Rule ID 869 //
    8259             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    8260             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_mul_q_w,
    8261             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    8262             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    8263             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    8264             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    8265             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    8266             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    8267             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3441:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (MUL_Q_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
    8268             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MUL_Q_W,
    8269             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    8270             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    8271             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    8272             :         GIR_EraseFromParent, /*InsnID*/0,
    8273             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8274             :         // GIR_Coverage, 869,
    8275             :         GIR_Done,
    8276             :       // Label 584: @19075
    8277             :       GIM_Try, /*On fail goto*//*Label 585*/ 19127, // Rule ID 870 //
    8278             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    8279             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_mulr_q_h,
    8280             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    8281             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    8282             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
    8283             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    8284             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    8285             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128HRegClassID,
    8286             :         // (intrinsic_wo_chain:{ *:[v8i16] } 3451:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (MULR_Q_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
    8287             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MULR_Q_H,
    8288             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    8289             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    8290             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    8291             :         GIR_EraseFromParent, /*InsnID*/0,
    8292             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8293             :         // GIR_Coverage, 870,
    8294             :         GIR_Done,
    8295             :       // Label 585: @19127
    8296             :       GIM_Try, /*On fail goto*//*Label 586*/ 19179, // Rule ID 871 //
    8297             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    8298             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_mulr_q_w,
    8299             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    8300             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    8301             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    8302             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    8303             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    8304             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    8305             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3452:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (MULR_Q_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
    8306             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MULR_Q_W,
    8307             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    8308             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    8309             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    8310             :         GIR_EraseFromParent, /*InsnID*/0,
    8311             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8312             :         // GIR_Coverage, 871,
    8313             :         GIR_Done,
    8314             :       // Label 586: @19179
    8315             :       GIM_Try, /*On fail goto*//*Label 587*/ 19231, // Rule ID 949 //
    8316             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    8317             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_srar_b,
    8318             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
    8319             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    8320             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
    8321             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    8322             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    8323             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128BRegClassID,
    8324             :         // (intrinsic_wo_chain:{ *:[v16i8] } 3565:{ *:[iPTR] }, MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)  =>  (SRAR_B:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
    8325             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SRAR_B,
    8326             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    8327             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    8328             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    8329             :         GIR_EraseFromParent, /*InsnID*/0,
    8330             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8331             :         // GIR_Coverage, 949,
    8332             :         GIR_Done,
    8333             :       // Label 587: @19231
    8334             :       GIM_Try, /*On fail goto*//*Label 588*/ 19283, // Rule ID 950 //
    8335             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    8336             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_srar_h,
    8337             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    8338             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    8339             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
    8340             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    8341             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    8342             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128HRegClassID,
    8343             :         // (intrinsic_wo_chain:{ *:[v8i16] } 3567:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (SRAR_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
    8344             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SRAR_H,
    8345             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    8346             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    8347             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    8348             :         GIR_EraseFromParent, /*InsnID*/0,
    8349             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8350             :         // GIR_Coverage, 950,
    8351             :         GIR_Done,
    8352             :       // Label 588: @19283
    8353             :       GIM_Try, /*On fail goto*//*Label 589*/ 19335, // Rule ID 951 //
    8354             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    8355             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_srar_w,
    8356             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    8357             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    8358             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    8359             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    8360             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    8361             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    8362             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3568:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (SRAR_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
    8363             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SRAR_W,
    8364             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    8365             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    8366             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    8367             :         GIR_EraseFromParent, /*InsnID*/0,
    8368             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8369             :         // GIR_Coverage, 951,
    8370             :         GIR_Done,
    8371             :       // Label 589: @19335
    8372             :       GIM_Try, /*On fail goto*//*Label 590*/ 19387, // Rule ID 952 //
    8373             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    8374             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_srar_d,
    8375             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    8376             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    8377             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    8378             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    8379             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    8380             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128DRegClassID,
    8381             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3566:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)  =>  (SRAR_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)
    8382             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SRAR_D,
    8383             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    8384             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    8385             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    8386             :         GIR_EraseFromParent, /*InsnID*/0,
    8387             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8388             :         // GIR_Coverage, 952,
    8389             :         GIR_Done,
    8390             :       // Label 590: @19387
    8391             :       GIM_Try, /*On fail goto*//*Label 591*/ 19439, // Rule ID 965 //
    8392             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    8393             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_srlr_b,
    8394             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
    8395             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    8396             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
    8397             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    8398             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    8399             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128BRegClassID,
    8400             :         // (intrinsic_wo_chain:{ *:[v16i8] } 3581:{ *:[iPTR] }, MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)  =>  (SRLR_B:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
    8401             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SRLR_B,
    8402             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    8403             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    8404             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    8405             :         GIR_EraseFromParent, /*InsnID*/0,
    8406             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8407             :         // GIR_Coverage, 965,
    8408             :         GIR_Done,
    8409             :       // Label 591: @19439
    8410             :       GIM_Try, /*On fail goto*//*Label 592*/ 19491, // Rule ID 966 //
    8411             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    8412             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_srlr_h,
    8413             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    8414             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    8415             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
    8416             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    8417             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    8418             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128HRegClassID,
    8419             :         // (intrinsic_wo_chain:{ *:[v8i16] } 3583:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (SRLR_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
    8420             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SRLR_H,
    8421             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    8422             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    8423             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    8424             :         GIR_EraseFromParent, /*InsnID*/0,
    8425             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8426             :         // GIR_Coverage, 966,
    8427             :         GIR_Done,
    8428             :       // Label 592: @19491
    8429             :       GIM_Try, /*On fail goto*//*Label 593*/ 19543, // Rule ID 967 //
    8430             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    8431             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_srlr_w,
    8432             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    8433             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    8434             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    8435             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    8436             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    8437             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    8438             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3584:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (SRLR_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
    8439             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SRLR_W,
    8440             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    8441             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    8442             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    8443             :         GIR_EraseFromParent, /*InsnID*/0,
    8444             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8445             :         // GIR_Coverage, 967,
    8446             :         GIR_Done,
    8447             :       // Label 593: @19543
    8448             :       GIM_Try, /*On fail goto*//*Label 594*/ 19595, // Rule ID 968 //
    8449             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    8450             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_srlr_d,
    8451             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    8452             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    8453             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    8454             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    8455             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    8456             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128DRegClassID,
    8457             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3582:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)  =>  (SRLR_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)
    8458             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SRLR_D,
    8459             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    8460             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    8461             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    8462             :         GIR_EraseFromParent, /*InsnID*/0,
    8463             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8464             :         // GIR_Coverage, 968,
    8465             :         GIR_Done,
    8466             :       // Label 594: @19595
    8467             :       GIM_Try, /*On fail goto*//*Label 595*/ 19647, // Rule ID 977 //
    8468             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    8469             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_subs_s_b,
    8470             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
    8471             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    8472             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
    8473             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    8474             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    8475             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128BRegClassID,
    8476             :         // (intrinsic_wo_chain:{ *:[v16i8] } 3600:{ *:[iPTR] }, MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)  =>  (SUBS_S_B:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
    8477             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SUBS_S_B,
    8478             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    8479             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    8480             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    8481             :         GIR_EraseFromParent, /*InsnID*/0,
    8482             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8483             :         // GIR_Coverage, 977,
    8484             :         GIR_Done,
    8485             :       // Label 595: @19647
    8486             :       GIM_Try, /*On fail goto*//*Label 596*/ 19699, // Rule ID 978 //
    8487             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    8488             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_subs_s_h,
    8489             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    8490             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    8491             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
    8492             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    8493             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    8494             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128HRegClassID,
    8495             :         // (intrinsic_wo_chain:{ *:[v8i16] } 3602:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (SUBS_S_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
    8496             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SUBS_S_H,
    8497             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    8498             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    8499             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    8500             :         GIR_EraseFromParent, /*InsnID*/0,
    8501             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8502             :         // GIR_Coverage, 978,
    8503             :         GIR_Done,
    8504             :       // Label 596: @19699
    8505             :       GIM_Try, /*On fail goto*//*Label 597*/ 19751, // Rule ID 979 //
    8506             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    8507             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_subs_s_w,
    8508             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    8509             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    8510             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    8511             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    8512             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    8513             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    8514             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3603:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (SUBS_S_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
    8515             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SUBS_S_W,
    8516             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    8517             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    8518             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    8519             :         GIR_EraseFromParent, /*InsnID*/0,
    8520             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8521             :         // GIR_Coverage, 979,
    8522             :         GIR_Done,
    8523             :       // Label 597: @19751
    8524             :       GIM_Try, /*On fail goto*//*Label 598*/ 19803, // Rule ID 980 //
    8525             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    8526             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_subs_s_d,
    8527             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    8528             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    8529             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    8530             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    8531             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    8532             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128DRegClassID,
    8533             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3601:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)  =>  (SUBS_S_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)
    8534             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SUBS_S_D,
    8535             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    8536             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    8537             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    8538             :         GIR_EraseFromParent, /*InsnID*/0,
    8539             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8540             :         // GIR_Coverage, 980,
    8541             :         GIR_Done,
    8542             :       // Label 598: @19803
    8543             :       GIM_Try, /*On fail goto*//*Label 599*/ 19855, // Rule ID 981 //
    8544             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    8545             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_subs_u_b,
    8546             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
    8547             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    8548             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
    8549             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    8550             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    8551             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128BRegClassID,
    8552             :         // (intrinsic_wo_chain:{ *:[v16i8] } 3604:{ *:[iPTR] }, MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)  =>  (SUBS_U_B:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
    8553             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SUBS_U_B,
    8554             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    8555             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    8556             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    8557             :         GIR_EraseFromParent, /*InsnID*/0,
    8558             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8559             :         // GIR_Coverage, 981,
    8560             :         GIR_Done,
    8561             :       // Label 599: @19855
    8562             :       GIM_Try, /*On fail goto*//*Label 600*/ 19907, // Rule ID 982 //
    8563             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    8564             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_subs_u_h,
    8565             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    8566             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    8567             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
    8568             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    8569             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    8570             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128HRegClassID,
    8571             :         // (intrinsic_wo_chain:{ *:[v8i16] } 3606:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (SUBS_U_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
    8572             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SUBS_U_H,
    8573             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    8574             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    8575             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    8576             :         GIR_EraseFromParent, /*InsnID*/0,
    8577             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8578             :         // GIR_Coverage, 982,
    8579             :         GIR_Done,
    8580             :       // Label 600: @19907
    8581             :       GIM_Try, /*On fail goto*//*Label 601*/ 19959, // Rule ID 983 //
    8582             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    8583             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_subs_u_w,
    8584             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    8585             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    8586             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    8587             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    8588             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    8589             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    8590             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3607:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (SUBS_U_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
    8591             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SUBS_U_W,
    8592             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    8593             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    8594             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    8595             :         GIR_EraseFromParent, /*InsnID*/0,
    8596             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8597             :         // GIR_Coverage, 983,
    8598             :         GIR_Done,
    8599             :       // Label 601: @19959
    8600             :       GIM_Try, /*On fail goto*//*Label 602*/ 20011, // Rule ID 984 //
    8601             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    8602             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_subs_u_d,
    8603             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    8604             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    8605             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    8606             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    8607             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    8608             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128DRegClassID,
    8609             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3605:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)  =>  (SUBS_U_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)
    8610             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SUBS_U_D,
    8611             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    8612             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    8613             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    8614             :         GIR_EraseFromParent, /*InsnID*/0,
    8615             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8616             :         // GIR_Coverage, 984,
    8617             :         GIR_Done,
    8618             :       // Label 602: @20011
    8619             :       GIM_Try, /*On fail goto*//*Label 603*/ 20063, // Rule ID 985 //
    8620             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    8621             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_subsus_u_b,
    8622             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
    8623             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    8624             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
    8625             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    8626             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    8627             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128BRegClassID,
    8628             :         // (intrinsic_wo_chain:{ *:[v16i8] } 3608:{ *:[iPTR] }, MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)  =>  (SUBSUS_U_B:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
    8629             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SUBSUS_U_B,
    8630             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    8631             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    8632             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    8633             :         GIR_EraseFromParent, /*InsnID*/0,
    8634             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8635             :         // GIR_Coverage, 985,
    8636             :         GIR_Done,
    8637             :       // Label 603: @20063
    8638             :       GIM_Try, /*On fail goto*//*Label 604*/ 20115, // Rule ID 986 //
    8639             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    8640             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_subsus_u_h,
    8641             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    8642             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    8643             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
    8644             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    8645             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    8646             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128HRegClassID,
    8647             :         // (intrinsic_wo_chain:{ *:[v8i16] } 3610:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (SUBSUS_U_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
    8648             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SUBSUS_U_H,
    8649             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    8650             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    8651             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    8652             :         GIR_EraseFromParent, /*InsnID*/0,
    8653             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8654             :         // GIR_Coverage, 986,
    8655             :         GIR_Done,
    8656             :       // Label 604: @20115
    8657             :       GIM_Try, /*On fail goto*//*Label 605*/ 20167, // Rule ID 987 //
    8658             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    8659             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_subsus_u_w,
    8660             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    8661             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    8662             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    8663             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    8664             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    8665             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    8666             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3611:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (SUBSUS_U_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
    8667             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SUBSUS_U_W,
    8668             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    8669             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    8670             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    8671             :         GIR_EraseFromParent, /*InsnID*/0,
    8672             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8673             :         // GIR_Coverage, 987,
    8674             :         GIR_Done,
    8675             :       // Label 605: @20167
    8676             :       GIM_Try, /*On fail goto*//*Label 606*/ 20219, // Rule ID 988 //
    8677             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    8678             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_subsus_u_d,
    8679             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    8680             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    8681             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    8682             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    8683             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    8684             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128DRegClassID,
    8685             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3609:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)  =>  (SUBSUS_U_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)
    8686             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SUBSUS_U_D,
    8687             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    8688             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    8689             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    8690             :         GIR_EraseFromParent, /*InsnID*/0,
    8691             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8692             :         // GIR_Coverage, 988,
    8693             :         GIR_Done,
    8694             :       // Label 606: @20219
    8695             :       GIM_Try, /*On fail goto*//*Label 607*/ 20271, // Rule ID 989 //
    8696             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    8697             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_subsuu_s_b,
    8698             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
    8699             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    8700             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
    8701             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    8702             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    8703             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128BRegClassID,
    8704             :         // (intrinsic_wo_chain:{ *:[v16i8] } 3612:{ *:[iPTR] }, MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)  =>  (SUBSUU_S_B:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
    8705             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SUBSUU_S_B,
    8706             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    8707             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    8708             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    8709             :         GIR_EraseFromParent, /*InsnID*/0,
    8710             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8711             :         // GIR_Coverage, 989,
    8712             :         GIR_Done,
    8713             :       // Label 607: @20271
    8714             :       GIM_Try, /*On fail goto*//*Label 608*/ 20323, // Rule ID 990 //
    8715             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    8716             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_subsuu_s_h,
    8717             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    8718             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    8719             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
    8720             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    8721             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    8722             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128HRegClassID,
    8723             :         // (intrinsic_wo_chain:{ *:[v8i16] } 3614:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (SUBSUU_S_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
    8724             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SUBSUU_S_H,
    8725             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    8726             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    8727             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    8728             :         GIR_EraseFromParent, /*InsnID*/0,
    8729             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8730             :         // GIR_Coverage, 990,
    8731             :         GIR_Done,
    8732             :       // Label 608: @20323
    8733             :       GIM_Try, /*On fail goto*//*Label 609*/ 20375, // Rule ID 991 //
    8734             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    8735             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_subsuu_s_w,
    8736             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    8737             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    8738             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    8739             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    8740             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    8741             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    8742             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3615:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (SUBSUU_S_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
    8743             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SUBSUU_S_W,
    8744             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    8745             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    8746             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    8747             :         GIR_EraseFromParent, /*InsnID*/0,
    8748             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8749             :         // GIR_Coverage, 991,
    8750             :         GIR_Done,
    8751             :       // Label 609: @20375
    8752             :       GIM_Try, /*On fail goto*//*Label 610*/ 20427, // Rule ID 992 //
    8753             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    8754             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_subsuu_s_d,
    8755             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    8756             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    8757             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    8758             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    8759             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    8760             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128DRegClassID,
    8761             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3613:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)  =>  (SUBSUU_S_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)
    8762             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SUBSUU_S_D,
    8763             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    8764             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
    8765             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // wt
    8766             :         GIR_EraseFromParent, /*InsnID*/0,
    8767             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8768             :         // GIR_Coverage, 992,
    8769             :         GIR_Done,
    8770             :       // Label 610: @20427
    8771             :       GIM_Try, /*On fail goto*//*Label 611*/ 20479, // Rule ID 1189 //
    8772             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
    8773             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_addq_s_ph,
    8774             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    8775             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
    8776             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
    8777             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    8778             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    8779             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
    8780             :         // (intrinsic_wo_chain:{ *:[v2i16] } 2978:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (ADDQ_S_PH_MM:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
    8781             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ADDQ_S_PH_MM,
    8782             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    8783             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    8784             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
    8785             :         GIR_EraseFromParent, /*InsnID*/0,
    8786             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8787             :         // GIR_Coverage, 1189,
    8788             :         GIR_Done,
    8789             :       // Label 611: @20479
    8790             :       GIM_Try, /*On fail goto*//*Label 612*/ 20531, // Rule ID 1191 //
    8791             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
    8792             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_addu_s_qb,
    8793             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s8,
    8794             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
    8795             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s8,
    8796             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    8797             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    8798             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
    8799             :         // (intrinsic_wo_chain:{ *:[v4i8] } 3000:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)  =>  (ADDU_S_QB_MM:{ *:[v4i8] } DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)
    8800             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ADDU_S_QB_MM,
    8801             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    8802             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    8803             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
    8804             :         GIR_EraseFromParent, /*InsnID*/0,
    8805             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8806             :         // GIR_Coverage, 1191,
    8807             :         GIR_Done,
    8808             :       // Label 612: @20531
    8809             :       GIM_Try, /*On fail goto*//*Label 613*/ 20583, // Rule ID 1212 //
    8810             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
    8811             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_shra_ph,
    8812             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    8813             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
    8814             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    8815             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    8816             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    8817             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
    8818             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3526:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rt, GPR32Opnd:{ *:[i32] }:$rs)  =>  (SHRAV_PH_MM:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rt, GPR32Opnd:{ *:[i32] }:$rs)
    8819             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SHRAV_PH_MM,
    8820             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    8821             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
    8822             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs
    8823             :         GIR_EraseFromParent, /*InsnID*/0,
    8824             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8825             :         // GIR_Coverage, 1212,
    8826             :         GIR_Done,
    8827             :       // Label 613: @20583
    8828             :       GIM_Try, /*On fail goto*//*Label 614*/ 20635, // Rule ID 1213 //
    8829             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
    8830             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_shra_r_ph,
    8831             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    8832             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
    8833             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    8834             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    8835             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    8836             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
    8837             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3528:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rt, GPR32Opnd:{ *:[i32] }:$rs)  =>  (SHRAV_R_PH_MM:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rt, GPR32Opnd:{ *:[i32] }:$rs)
    8838             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SHRAV_R_PH_MM,
    8839             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    8840             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
    8841             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs
    8842             :         GIR_EraseFromParent, /*InsnID*/0,
    8843             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8844             :         // GIR_Coverage, 1213,
    8845             :         GIR_Done,
    8846             :       // Label 614: @20635
    8847             :       GIM_Try, /*On fail goto*//*Label 615*/ 20687, // Rule ID 1214 //
    8848             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
    8849             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_shra_r_w,
    8850             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    8851             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    8852             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    8853             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    8854             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    8855             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
    8856             :         // (intrinsic_wo_chain:{ *:[i32] } 3530:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rt, GPR32Opnd:{ *:[i32] }:$rs)  =>  (SHRAV_R_W_MM:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rt, GPR32Opnd:{ *:[i32] }:$rs)
    8857             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SHRAV_R_W_MM,
    8858             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    8859             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
    8860             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs
    8861             :         GIR_EraseFromParent, /*InsnID*/0,
    8862             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8863             :         // GIR_Coverage, 1214,
    8864             :         GIR_Done,
    8865             :       // Label 615: @20687
    8866             :       GIM_Try, /*On fail goto*//*Label 616*/ 20739, // Rule ID 1216 //
    8867             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
    8868             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_shrl_qb,
    8869             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s8,
    8870             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
    8871             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    8872             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    8873             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    8874             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
    8875             :         // (intrinsic_wo_chain:{ *:[v4i8] } 3532:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rt, GPR32Opnd:{ *:[i32] }:$rs)  =>  (SHRLV_QB_MM:{ *:[v4i8] } DSPROpnd:{ *:[v4i8] }:$rt, GPR32Opnd:{ *:[i32] }:$rs)
    8876             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SHRLV_QB_MM,
    8877             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    8878             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
    8879             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs
    8880             :         GIR_EraseFromParent, /*InsnID*/0,
    8881             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8882             :         // GIR_Coverage, 1216,
    8883             :         GIR_Done,
    8884             :       // Label 616: @20739
    8885             :       GIM_Try, /*On fail goto*//*Label 617*/ 20791, // Rule ID 1227 //
    8886             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
    8887             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_subq_s_ph,
    8888             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    8889             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
    8890             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
    8891             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    8892             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    8893             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
    8894             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3594:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (SUBQ_S_PH_MM:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
    8895             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SUBQ_S_PH_MM,
    8896             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    8897             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    8898             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
    8899             :         GIR_EraseFromParent, /*InsnID*/0,
    8900             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8901             :         // GIR_Coverage, 1227,
    8902             :         GIR_Done,
    8903             :       // Label 617: @20791
    8904             :       GIM_Try, /*On fail goto*//*Label 618*/ 20843, // Rule ID 1229 //
    8905             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
    8906             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_subu_s_qb,
    8907             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s8,
    8908             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
    8909             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s8,
    8910             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    8911             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    8912             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
    8913             :         // (intrinsic_wo_chain:{ *:[v4i8] } 3619:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)  =>  (SUBU_S_QB_MM:{ *:[v4i8] } DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)
    8914             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SUBU_S_QB_MM,
    8915             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    8916             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    8917             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
    8918             :         GIR_EraseFromParent, /*InsnID*/0,
    8919             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8920             :         // GIR_Coverage, 1229,
    8921             :         GIR_Done,
    8922             :       // Label 618: @20843
    8923             :       GIM_Try, /*On fail goto*//*Label 619*/ 20895, // Rule ID 1239 //
    8924             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
    8925             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_precrq_ph_w,
    8926             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    8927             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    8928             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    8929             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    8930             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    8931             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
    8932             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3501:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (PRECRQ_PH_W_MM:{ *:[v2i16] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
    8933             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::PRECRQ_PH_W_MM,
    8934             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    8935             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    8936             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
    8937             :         GIR_EraseFromParent, /*InsnID*/0,
    8938             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8939             :         // GIR_Coverage, 1239,
    8940             :         GIR_Done,
    8941             :       // Label 619: @20895
    8942             :       GIM_Try, /*On fail goto*//*Label 620*/ 20947, // Rule ID 1240 //
    8943             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
    8944             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_precrq_qb_ph,
    8945             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s8,
    8946             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
    8947             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
    8948             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    8949             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    8950             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
    8951             :         // (intrinsic_wo_chain:{ *:[v4i8] } 3502:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (PRECRQ_QB_PH_MM:{ *:[v4i8] } DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
    8952             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::PRECRQ_QB_PH_MM,
    8953             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    8954             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    8955             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
    8956             :         GIR_EraseFromParent, /*InsnID*/0,
    8957             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8958             :         // GIR_Coverage, 1240,
    8959             :         GIR_Done,
    8960             :       // Label 620: @20947
    8961             :       GIM_Try, /*On fail goto*//*Label 621*/ 20999, // Rule ID 1259 //
    8962             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
    8963             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_packrl_ph,
    8964             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    8965             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
    8966             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
    8967             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    8968             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    8969             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
    8970             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3473:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (PACKRL_PH_MM:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
    8971             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::PACKRL_PH_MM,
    8972             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    8973             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    8974             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
    8975             :         GIR_EraseFromParent, /*InsnID*/0,
    8976             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8977             :         // GIR_Coverage, 1259,
    8978             :         GIR_Done,
    8979             :       // Label 621: @20999
    8980             :       GIM_Try, /*On fail goto*//*Label 622*/ 21051, // Rule ID 1265 //
    8981             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
    8982             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_modsub,
    8983             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    8984             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    8985             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    8986             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    8987             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    8988             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
    8989             :         // (intrinsic_wo_chain:{ *:[i32] } 3426:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (MODSUB_MM:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
    8990             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MODSUB_MM,
    8991             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    8992             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    8993             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
    8994             :         GIR_EraseFromParent, /*InsnID*/0,
    8995             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8996             :         // GIR_Coverage, 1265,
    8997             :         GIR_Done,
    8998             :       // Label 622: @21051
    8999             :       GIM_Try, /*On fail goto*//*Label 623*/ 21103, // Rule ID 1278 //
    9000             :         GIM_CheckFeatures, GIFBS_HasDSPR2_InMicroMips,
    9001             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_addqh_ph,
    9002             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    9003             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
    9004             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
    9005             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    9006             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    9007             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
    9008             :         // (intrinsic_wo_chain:{ *:[v2i16] } 2980:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (ADDQH_PH_MMR2:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
    9009             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ADDQH_PH_MMR2,
    9010             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    9011             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    9012             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
    9013             :         GIR_EraseFromParent, /*InsnID*/0,
    9014             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9015             :         // GIR_Coverage, 1278,
    9016             :         GIR_Done,
    9017             :       // Label 623: @21103
    9018             :       GIM_Try, /*On fail goto*//*Label 624*/ 21155, // Rule ID 1279 //
    9019             :         GIM_CheckFeatures, GIFBS_HasDSPR2_InMicroMips,
    9020             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_addqh_r_ph,
    9021             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    9022             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
    9023             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
    9024             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    9025             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    9026             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
    9027             :         // (intrinsic_wo_chain:{ *:[v2i16] } 2981:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (ADDQH_R_PH_MMR2:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
    9028             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ADDQH_R_PH_MMR2,
    9029             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    9030             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    9031             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
    9032             :         GIR_EraseFromParent, /*InsnID*/0,
    9033             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9034             :         // GIR_Coverage, 1279,
    9035             :         GIR_Done,
    9036             :       // Label 624: @21155
    9037             :       GIM_Try, /*On fail goto*//*Label 625*/ 21207, // Rule ID 1280 //
    9038             :         GIM_CheckFeatures, GIFBS_HasDSPR2_InMicroMips,
    9039             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_addqh_w,
    9040             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    9041             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    9042             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    9043             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    9044             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    9045             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
    9046             :         // (intrinsic_wo_chain:{ *:[i32] } 2983:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (ADDQH_W_MMR2:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
    9047             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ADDQH_W_MMR2,
    9048             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    9049             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    9050             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
    9051             :         GIR_EraseFromParent, /*InsnID*/0,
    9052             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9053             :         // GIR_Coverage, 1280,
    9054             :         GIR_Done,
    9055             :       // Label 625: @21207
    9056             :       GIM_Try, /*On fail goto*//*Label 626*/ 21259, // Rule ID 1281 //
    9057             :         GIM_CheckFeatures, GIFBS_HasDSPR2_InMicroMips,
    9058             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_addqh_r_w,
    9059             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    9060             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    9061             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    9062             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    9063             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    9064             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
    9065             :         // (intrinsic_wo_chain:{ *:[i32] } 2982:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (ADDQH_R_W_MMR2:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
    9066             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ADDQH_R_W_MMR2,
    9067             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    9068             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    9069             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
    9070             :         GIR_EraseFromParent, /*InsnID*/0,
    9071             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9072             :         // GIR_Coverage, 1281,
    9073             :         GIR_Done,
    9074             :       // Label 626: @21259
    9075             :       GIM_Try, /*On fail goto*//*Label 627*/ 21311, // Rule ID 1284 //
    9076             :         GIM_CheckFeatures, GIFBS_HasDSPR2_InMicroMips,
    9077             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_adduh_qb,
    9078             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s8,
    9079             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
    9080             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s8,
    9081             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    9082             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    9083             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
    9084             :         // (intrinsic_wo_chain:{ *:[v4i8] } 3001:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)  =>  (ADDUH_QB_MMR2:{ *:[v4i8] } DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)
    9085             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ADDUH_QB_MMR2,
    9086             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    9087             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    9088             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
    9089             :         GIR_EraseFromParent, /*InsnID*/0,
    9090             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9091             :         // GIR_Coverage, 1284,
    9092             :         GIR_Done,
    9093             :       // Label 627: @21311
    9094             :       GIM_Try, /*On fail goto*//*Label 628*/ 21363, // Rule ID 1285 //
    9095             :         GIM_CheckFeatures, GIFBS_HasDSPR2_InMicroMips,
    9096             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_adduh_r_qb,
    9097             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s8,
    9098             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
    9099             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s8,
    9100             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    9101             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    9102             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
    9103             :         // (intrinsic_wo_chain:{ *:[v4i8] } 3002:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)  =>  (ADDUH_R_QB_MMR2:{ *:[v4i8] } DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)
    9104             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ADDUH_R_QB_MMR2,
    9105             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    9106             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    9107             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
    9108             :         GIR_EraseFromParent, /*InsnID*/0,
    9109             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9110             :         // GIR_Coverage, 1285,
    9111             :         GIR_Done,
    9112             :       // Label 628: @21363
    9113             :       GIM_Try, /*On fail goto*//*Label 629*/ 21415, // Rule ID 1291 //
    9114             :         GIM_CheckFeatures, GIFBS_HasDSPR2_InMicroMips,
    9115             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_shra_qb,
    9116             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s8,
    9117             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
    9118             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    9119             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    9120             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    9121             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
    9122             :         // (intrinsic_wo_chain:{ *:[v4i8] } 3527:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rt, GPR32Opnd:{ *:[i32] }:$rs)  =>  (SHRAV_QB_MMR2:{ *:[v4i8] } DSPROpnd:{ *:[v4i8] }:$rt, GPR32Opnd:{ *:[i32] }:$rs)
    9123             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SHRAV_QB_MMR2,
    9124             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    9125             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
    9126             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs
    9127             :         GIR_EraseFromParent, /*InsnID*/0,
    9128             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9129             :         // GIR_Coverage, 1291,
    9130             :         GIR_Done,
    9131             :       // Label 629: @21415
    9132             :       GIM_Try, /*On fail goto*//*Label 630*/ 21467, // Rule ID 1292 //
    9133             :         GIM_CheckFeatures, GIFBS_HasDSPR2_InMicroMips,
    9134             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_shra_r_qb,
    9135             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s8,
    9136             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
    9137             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    9138             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    9139             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    9140             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
    9141             :         // (intrinsic_wo_chain:{ *:[v4i8] } 3529:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rt, GPR32Opnd:{ *:[i32] }:$rs)  =>  (SHRAV_R_QB_MMR2:{ *:[v4i8] } DSPROpnd:{ *:[v4i8] }:$rt, GPR32Opnd:{ *:[i32] }:$rs)
    9142             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SHRAV_R_QB_MMR2,
    9143             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    9144             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
    9145             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs
    9146             :         GIR_EraseFromParent, /*InsnID*/0,
    9147             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9148             :         // GIR_Coverage, 1292,
    9149             :         GIR_Done,
    9150             :       // Label 630: @21467
    9151             :       GIM_Try, /*On fail goto*//*Label 631*/ 21519, // Rule ID 1297 //
    9152             :         GIM_CheckFeatures, GIFBS_HasDSPR2_InMicroMips,
    9153             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_shrl_ph,
    9154             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    9155             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
    9156             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    9157             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    9158             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    9159             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
    9160             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3531:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rt, GPR32Opnd:{ *:[i32] }:$rs)  =>  (SHRLV_PH_MMR2:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rt, GPR32Opnd:{ *:[i32] }:$rs)
    9161             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SHRLV_PH_MMR2,
    9162             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    9163             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
    9164             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs
    9165             :         GIR_EraseFromParent, /*InsnID*/0,
    9166             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9167             :         // GIR_Coverage, 1297,
    9168             :         GIR_Done,
    9169             :       // Label 631: @21519
    9170             :       GIM_Try, /*On fail goto*//*Label 632*/ 21571, // Rule ID 1298 //
    9171             :         GIM_CheckFeatures, GIFBS_HasDSPR2_InMicroMips,
    9172             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_subqh_ph,
    9173             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    9174             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
    9175             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
    9176             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    9177             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    9178             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
    9179             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3596:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (SUBQH_PH_MMR2:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
    9180             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SUBQH_PH_MMR2,
    9181             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    9182             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    9183             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
    9184             :         GIR_EraseFromParent, /*InsnID*/0,
    9185             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9186             :         // GIR_Coverage, 1298,
    9187             :         GIR_Done,
    9188             :       // Label 632: @21571
    9189             :       GIM_Try, /*On fail goto*//*Label 633*/ 21623, // Rule ID 1299 //
    9190             :         GIM_CheckFeatures, GIFBS_HasDSPR2_InMicroMips,
    9191             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_subqh_r_ph,
    9192             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    9193             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
    9194             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
    9195             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    9196             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    9197             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
    9198             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3597:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (SUBQH_R_PH_MMR2:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
    9199             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SUBQH_R_PH_MMR2,
    9200             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    9201             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    9202             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
    9203             :         GIR_EraseFromParent, /*InsnID*/0,
    9204             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9205             :         // GIR_Coverage, 1299,
    9206             :         GIR_Done,
    9207             :       // Label 633: @21623
    9208             :       GIM_Try, /*On fail goto*//*Label 634*/ 21675, // Rule ID 1300 //
    9209             :         GIM_CheckFeatures, GIFBS_HasDSPR2_InMicroMips,
    9210             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_subqh_w,
    9211             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    9212             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    9213             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    9214             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    9215             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    9216             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
    9217             :         // (intrinsic_wo_chain:{ *:[i32] } 3599:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (SUBQH_W_MMR2:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
    9218             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SUBQH_W_MMR2,
    9219             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    9220             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    9221             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
    9222             :         GIR_EraseFromParent, /*InsnID*/0,
    9223             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9224             :         // GIR_Coverage, 1300,
    9225             :         GIR_Done,
    9226             :       // Label 634: @21675
    9227             :       GIM_Try, /*On fail goto*//*Label 635*/ 21727, // Rule ID 1301 //
    9228             :         GIM_CheckFeatures, GIFBS_HasDSPR2_InMicroMips,
    9229             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_subqh_r_w,
    9230             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    9231             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    9232             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    9233             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    9234             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    9235             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
    9236             :         // (intrinsic_wo_chain:{ *:[i32] } 3598:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (SUBQH_R_W_MMR2:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
    9237             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SUBQH_R_W_MMR2,
    9238             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    9239             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    9240             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
    9241             :         GIR_EraseFromParent, /*InsnID*/0,
    9242             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9243             :         // GIR_Coverage, 1301,
    9244             :         GIR_Done,
    9245             :       // Label 635: @21727
    9246             :       GIM_Try, /*On fail goto*//*Label 636*/ 21779, // Rule ID 1304 //
    9247             :         GIM_CheckFeatures, GIFBS_HasDSPR2_InMicroMips,
    9248             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_subuh_qb,
    9249             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s8,
    9250             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
    9251             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s8,
    9252             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    9253             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    9254             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
    9255             :         // (intrinsic_wo_chain:{ *:[v4i8] } 3620:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)  =>  (SUBUH_QB_MMR2:{ *:[v4i8] } DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)
    9256             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SUBUH_QB_MMR2,
    9257             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    9258             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    9259             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
    9260             :         GIR_EraseFromParent, /*InsnID*/0,
    9261             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9262             :         // GIR_Coverage, 1304,
    9263             :         GIR_Done,
    9264             :       // Label 636: @21779
    9265             :       GIM_Try, /*On fail goto*//*Label 637*/ 21831, // Rule ID 1305 //
    9266             :         GIM_CheckFeatures, GIFBS_HasDSPR2_InMicroMips,
    9267             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_subuh_r_qb,
    9268             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s8,
    9269             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
    9270             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s8,
    9271             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    9272             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
    9273             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
    9274             :         // (intrinsic_wo_chain:{ *:[v4i8] } 3621:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)  =>  (SUBUH_R_QB_MMR2:{ *:[v4i8] } DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)
    9275             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SUBUH_R_QB_MMR2,
    9276             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    9277             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
    9278             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
    9279             :         GIR_EraseFromParent, /*InsnID*/0,
    9280             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9281             :         // GIR_Coverage, 1305,
    9282             :         GIR_Done,
    9283             :       // Label 637: @21831
    9284             :       GIM_Try, /*On fail goto*//*Label 638*/ 21875, // Rule ID 1843 //
    9285             :         GIM_CheckFeatures, GIFBS_HasDSP,
    9286             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_addq_ph,
    9287             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    9288             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
    9289             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
    9290             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    9291             :         // (intrinsic_wo_chain:{ *:[v2i16] } 2977:{ *:[iPTR] }, v2i16:{ *:[v2i16] }:$a, v2i16:{ *:[v2i16] }:$b)  =>  (ADDQ_PH:{ *:[v2i16] } v2i16:{ *:[v2i16] }:$a, v2i16:{ *:[v2i16] }:$b)
    9292             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ADDQ_PH,
    9293             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    9294             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
    9295             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
    9296             :         GIR_EraseFromParent, /*InsnID*/0,
    9297             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9298             :         // GIR_Coverage, 1843,
    9299             :         GIR_Done,
    9300             :       // Label 638: @21875
    9301             :       GIM_Try, /*On fail goto*//*Label 639*/ 21919, // Rule ID 1845 //
    9302             :         GIM_CheckFeatures, GIFBS_HasDSP,
    9303             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_subq_ph,
    9304             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    9305             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
    9306             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
    9307             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    9308             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3593:{ *:[iPTR] }, v2i16:{ *:[v2i16] }:$a, v2i16:{ *:[v2i16] }:$b)  =>  (SUBQ_PH:{ *:[v2i16] } v2i16:{ *:[v2i16] }:$a, v2i16:{ *:[v2i16] }:$b)
    9309             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SUBQ_PH,
    9310             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    9311             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
    9312             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
    9313             :         GIR_EraseFromParent, /*InsnID*/0,
    9314             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9315             :         // GIR_Coverage, 1845,
    9316             :         GIR_Done,
    9317             :       // Label 639: @21919
    9318             :       GIM_Try, /*On fail goto*//*Label 640*/ 21963, // Rule ID 1849 //
    9319             :         GIM_CheckFeatures, GIFBS_HasDSP,
    9320             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_addu_qb,
    9321             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s8,
    9322             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
    9323             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s8,
    9324             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    9325             :         // (intrinsic_wo_chain:{ *:[v4i8] } 2998:{ *:[iPTR] }, v4i8:{ *:[v4i8] }:$a, v4i8:{ *:[v4i8] }:$b)  =>  (ADDU_QB:{ *:[v4i8] } v4i8:{ *:[v4i8] }:$a, v4i8:{ *:[v4i8] }:$b)
    9326             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ADDU_QB,
    9327             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    9328             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
    9329             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
    9330             :         GIR_EraseFromParent, /*InsnID*/0,
    9331             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9332             :         // GIR_Coverage, 1849,
    9333             :         GIR_Done,
    9334             :       // Label 640: @21963
    9335             :       GIM_Try, /*On fail goto*//*Label 641*/ 22007, // Rule ID 1851 //
    9336             :         GIM_CheckFeatures, GIFBS_HasDSP,
    9337             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_subu_qb,
    9338             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s8,
    9339             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
    9340             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s8,
    9341             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    9342             :         // (intrinsic_wo_chain:{ *:[v4i8] } 3617:{ *:[iPTR] }, v4i8:{ *:[v4i8] }:$a, v4i8:{ *:[v4i8] }:$b)  =>  (SUBU_QB:{ *:[v4i8] } v4i8:{ *:[v4i8] }:$a, v4i8:{ *:[v4i8] }:$b)
    9343             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SUBU_QB,
    9344             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
    9345             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
    9346             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
    9347             :         GIR_EraseFromParent, /*InsnID*/0,
    9348             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9349             :         // GIR_Coverage, 1851,
    9350             :         GIR_Done,
    9351             :       // Label 641: @22007
    9352             :       GIM_Reject,
    9353             :     // Label 427: @22008
    9354             :     GIM_Try, /*On fail goto*//*Label 642*/ 25056,
    9355             :       GIM_CheckNumOperands, /*MI*/0, /*Expected*/5,
    9356             :       GIM_Try, /*On fail goto*//*Label 643*/ 22084, // Rule ID 449 //
    9357             :         GIM_CheckFeatures, GIFBS_HasDSPR2,
    9358             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_precr_sra_ph_w,
    9359             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    9360             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    9361             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    9362             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
    9363             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    9364             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    9365             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
    9366             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
    9367             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    9368             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt5,
    9369             :         // MIs[1] Operand 1
    9370             :         // No operand predicates
    9371             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    9372             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3499:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$src, GPR32Opnd:{ *:[i32] }:$rs, (imm:{ *:[i32] })<<P:Predicate_immZExt5>>:$sa)  =>  (PRECR_SRA_PH_W:{ *:[v2i16] } GPR32Opnd:{ *:[i32] }:$rs, (imm:{ *:[i32] }):$sa, GPR32Opnd:{ *:[i32] }:$src)
    9373             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::PRECR_SRA_PH_W,
    9374             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rt
    9375             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs
    9376             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // sa
    9377             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    9378             :         GIR_EraseFromParent, /*InsnID*/0,
    9379             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9380             :         // GIR_Coverage, 449,
    9381             :         GIR_Done,
    9382             :       // Label 643: @22084
    9383             :       GIM_Try, /*On fail goto*//*Label 644*/ 22155, // Rule ID 450 //
    9384             :         GIM_CheckFeatures, GIFBS_HasDSPR2,
    9385             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_precr_sra_r_ph_w,
    9386             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    9387             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    9388             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    9389             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
    9390             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    9391             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    9392             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
    9393             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
    9394             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    9395             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt5,
    9396             :         // MIs[1] Operand 1
    9397             :         // No operand predicates
    9398             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    9399             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3500:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$src, GPR32Opnd:{ *:[i32] }:$rs, (imm:{ *:[i32] })<<P:Predicate_immZExt5>>:$sa)  =>  (PRECR_SRA_R_PH_W:{ *:[v2i16] } GPR32Opnd:{ *:[i32] }:$rs, (imm:{ *:[i32] }):$sa, GPR32Opnd:{ *:[i32] }:$src)
    9400             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::PRECR_SRA_R_PH_W,
    9401             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rt
    9402             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs
    9403             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // sa
    9404             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    9405             :         GIR_EraseFromParent, /*InsnID*/0,
    9406             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9407             :         // GIR_Coverage, 450,
    9408             :         GIR_Done,
    9409             :       // Label 644: @22155
    9410             :       GIM_Try, /*On fail goto*//*Label 645*/ 22226, // Rule ID 455 //
    9411             :         GIM_CheckFeatures, GIFBS_HasDSPR2,
    9412             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_append,
    9413             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    9414             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    9415             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    9416             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
    9417             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    9418             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    9419             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
    9420             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
    9421             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    9422             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt5,
    9423             :         // MIs[1] Operand 1
    9424             :         // No operand predicates
    9425             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    9426             :         // (intrinsic_wo_chain:{ *:[i32] } 3014:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$src, GPR32Opnd:{ *:[i32] }:$rs, (imm:{ *:[i32] })<<P:Predicate_immZExt5>>:$sa)  =>  (APPEND:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, (imm:{ *:[i32] }):$sa, GPR32Opnd:{ *:[i32] }:$src)
    9427             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::APPEND,
    9428             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rt
    9429             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs
    9430             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // sa
    9431             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    9432             :         GIR_EraseFromParent, /*InsnID*/0,
    9433             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9434             :         // GIR_Coverage, 455,
    9435             :         GIR_Done,
    9436             :       // Label 645: @22226
    9437             :       GIM_Try, /*On fail goto*//*Label 646*/ 22297, // Rule ID 456 //
    9438             :         GIM_CheckFeatures, GIFBS_HasDSPR2,
    9439             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_balign,
    9440             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    9441             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    9442             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    9443             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
    9444             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    9445             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    9446             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
    9447             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
    9448             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    9449             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt2,
    9450             :         // MIs[1] Operand 1
    9451             :         // No operand predicates
    9452             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    9453             :         // (intrinsic_wo_chain:{ *:[i32] } 3039:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$src, GPR32Opnd:{ *:[i32] }:$rs, (imm:{ *:[i32] })<<P:Predicate_immZExt2>>:$sa)  =>  (BALIGN:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, (imm:{ *:[i32] }):$sa, GPR32Opnd:{ *:[i32] }:$src)
    9454             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::BALIGN,
    9455             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rt
    9456             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs
    9457             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // sa
    9458             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    9459             :         GIR_EraseFromParent, /*InsnID*/0,
    9460             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9461             :         // GIR_Coverage, 456,
    9462             :         GIR_Done,
    9463             :       // Label 646: @22297
    9464             :       GIM_Try, /*On fail goto*//*Label 647*/ 22368, // Rule ID 457 //
    9465             :         GIM_CheckFeatures, GIFBS_HasDSPR2,
    9466             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_prepend,
    9467             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    9468             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    9469             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    9470             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
    9471             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    9472             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    9473             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
    9474             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
    9475             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    9476             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt5,
    9477             :         // MIs[1] Operand 1
    9478             :         // No operand predicates
    9479             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    9480             :         // (intrinsic_wo_chain:{ *:[i32] } 3505:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$src, GPR32Opnd:{ *:[i32] }:$rs, (imm:{ *:[i32] })<<P:Predicate_immZExt5>>:$sa)  =>  (PREPEND:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, (imm:{ *:[i32] }):$sa, GPR32Opnd:{ *:[i32] }:$src)
    9481             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::PREPEND,
    9482             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rt
    9483             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs
    9484             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // sa
    9485             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    9486             :         GIR_EraseFromParent, /*InsnID*/0,
    9487             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9488             :         // GIR_Coverage, 457,
    9489             :         GIR_Done,
    9490             :       // Label 647: @22368
    9491             :       GIM_Try, /*On fail goto*//*Label 648*/ 22439, // Rule ID 921 //
    9492             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    9493             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_sldi_b,
    9494             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
    9495             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    9496             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
    9497             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
    9498             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    9499             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    9500             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128BRegClassID,
    9501             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
    9502             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    9503             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt4,
    9504             :         // MIs[1] Operand 1
    9505             :         // No operand predicates
    9506             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    9507             :         // (intrinsic_wo_chain:{ *:[v16i8] } 3537:{ *:[iPTR] }, MSA128BOpnd:{ *:[v16i8] }:$wd_in, MSA128BOpnd:{ *:[v16i8] }:$ws, (imm:{ *:[i32] })<<P:Predicate_immZExt4>>:$n)  =>  (SLDI_B:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$wd_in, MSA128BOpnd:{ *:[v16i8] }:$ws, (imm:{ *:[i32] }):$n)
    9508             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SLDI_B,
    9509             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    9510             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // wd_in
    9511             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // ws
    9512             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // n
    9513             :         GIR_EraseFromParent, /*InsnID*/0,
    9514             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9515             :         // GIR_Coverage, 921,
    9516             :         GIR_Done,
    9517             :       // Label 648: @22439
    9518             :       GIM_Try, /*On fail goto*//*Label 649*/ 22510, // Rule ID 922 //
    9519             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    9520             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_sldi_h,
    9521             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    9522             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    9523             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
    9524             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
    9525             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    9526             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    9527             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128HRegClassID,
    9528             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
    9529             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    9530             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt3,
    9531             :         // MIs[1] Operand 1
    9532             :         // No operand predicates
    9533             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    9534             :         // (intrinsic_wo_chain:{ *:[v8i16] } 3539:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$wd_in, MSA128HOpnd:{ *:[v8i16] }:$ws, (imm:{ *:[i32] })<<P:Predicate_immZExt3>>:$n)  =>  (SLDI_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$wd_in, MSA128HOpnd:{ *:[v8i16] }:$ws, (imm:{ *:[i32] }):$n)
    9535             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SLDI_H,
    9536             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    9537             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // wd_in
    9538             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // ws
    9539             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // n
    9540             :         GIR_EraseFromParent, /*InsnID*/0,
    9541             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9542             :         // GIR_Coverage, 922,
    9543             :         GIR_Done,
    9544             :       // Label 649: @22510
    9545             :       GIM_Try, /*On fail goto*//*Label 650*/ 22581, // Rule ID 923 //
    9546             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    9547             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_sldi_w,
    9548             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    9549             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    9550             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    9551             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
    9552             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    9553             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    9554             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    9555             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
    9556             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    9557             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt2,
    9558             :         // MIs[1] Operand 1
    9559             :         // No operand predicates
    9560             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    9561             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3540:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$wd_in, MSA128WOpnd:{ *:[v4i32] }:$ws, (imm:{ *:[i32] })<<P:Predicate_immZExt2>>:$n)  =>  (SLDI_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$wd_in, MSA128WOpnd:{ *:[v4i32] }:$ws, (imm:{ *:[i32] }):$n)
    9562             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SLDI_W,
    9563             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    9564             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // wd_in
    9565             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // ws
    9566             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // n
    9567             :         GIR_EraseFromParent, /*InsnID*/0,
    9568             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9569             :         // GIR_Coverage, 923,
    9570             :         GIR_Done,
    9571             :       // Label 650: @22581
    9572             :       GIM_Try, /*On fail goto*//*Label 651*/ 22652, // Rule ID 924 //
    9573             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    9574             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_sldi_d,
    9575             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    9576             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    9577             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    9578             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
    9579             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    9580             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    9581             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128DRegClassID,
    9582             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
    9583             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    9584             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt1,
    9585             :         // MIs[1] Operand 1
    9586             :         // No operand predicates
    9587             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    9588             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3538:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2i64] }:$wd_in, MSA128DOpnd:{ *:[v2i64] }:$ws, (imm:{ *:[i32] })<<P:Predicate_immZExt1>>:$n)  =>  (SLDI_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$wd_in, MSA128DOpnd:{ *:[v2i64] }:$ws, (imm:{ *:[i32] }):$n)
    9589             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SLDI_D,
    9590             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    9591             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // wd_in
    9592             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // ws
    9593             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // n
    9594             :         GIR_EraseFromParent, /*InsnID*/0,
    9595             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9596             :         // GIR_Coverage, 924,
    9597             :         GIR_Done,
    9598             :       // Label 651: @22652
    9599             :       GIM_Try, /*On fail goto*//*Label 652*/ 22723, // Rule ID 1293 //
    9600             :         GIM_CheckFeatures, GIFBS_HasDSPR2_InMicroMips,
    9601             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_balign,
    9602             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    9603             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    9604             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    9605             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
    9606             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    9607             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    9608             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
    9609             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
    9610             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    9611             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt2,
    9612             :         // MIs[1] Operand 1
    9613             :         // No operand predicates
    9614             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    9615             :         // (intrinsic_wo_chain:{ *:[i32] } 3039:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$src, GPR32Opnd:{ *:[i32] }:$rs, (imm:{ *:[i32] })<<P:Predicate_immZExt2>>:$bp)  =>  (BALIGN_MMR2:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, (imm:{ *:[i32] }):$bp, GPR32Opnd:{ *:[i32] }:$src)
    9616             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::BALIGN_MMR2,
    9617             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rt
    9618             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs
    9619             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // bp
    9620             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    9621             :         GIR_EraseFromParent, /*InsnID*/0,
    9622             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9623             :         // GIR_Coverage, 1293,
    9624             :         GIR_Done,
    9625             :       // Label 652: @22723
    9626             :       GIM_Try, /*On fail goto*//*Label 653*/ 22794, // Rule ID 1315 //
    9627             :         GIM_CheckFeatures, GIFBS_HasDSPR2_InMicroMips,
    9628             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_precr_sra_ph_w,
    9629             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    9630             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    9631             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    9632             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
    9633             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    9634             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    9635             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
    9636             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
    9637             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    9638             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt5,
    9639             :         // MIs[1] Operand 1
    9640             :         // No operand predicates
    9641             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    9642             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3499:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$src, GPR32Opnd:{ *:[i32] }:$rs, (imm:{ *:[i32] })<<P:Predicate_immZExt5>>:$sa)  =>  (PRECR_SRA_PH_W_MMR2:{ *:[v2i16] } GPR32Opnd:{ *:[i32] }:$rs, (imm:{ *:[i32] }):$sa, GPR32Opnd:{ *:[i32] }:$src)
    9643             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::PRECR_SRA_PH_W_MMR2,
    9644             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rt
    9645             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs
    9646             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // sa
    9647             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    9648             :         GIR_EraseFromParent, /*InsnID*/0,
    9649             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9650             :         // GIR_Coverage, 1315,
    9651             :         GIR_Done,
    9652             :       // Label 653: @22794
    9653             :       GIM_Try, /*On fail goto*//*Label 654*/ 22865, // Rule ID 1316 //
    9654             :         GIM_CheckFeatures, GIFBS_HasDSPR2_InMicroMips,
    9655             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_precr_sra_r_ph_w,
    9656             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
    9657             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    9658             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    9659             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
    9660             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
    9661             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    9662             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
    9663             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
    9664             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    9665             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt5,
    9666             :         // MIs[1] Operand 1
    9667             :         // No operand predicates
    9668             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    9669             :         // (intrinsic_wo_chain:{ *:[v2i16] } 3500:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$src, GPR32Opnd:{ *:[i32] }:$rs, (imm:{ *:[i32] })<<P:Predicate_immZExt5>>:$sa)  =>  (PRECR_SRA_R_PH_W_MMR2:{ *:[v2i16] } GPR32Opnd:{ *:[i32] }:$rs, (imm:{ *:[i32] }):$sa, GPR32Opnd:{ *:[i32] }:$src)
    9670             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::PRECR_SRA_R_PH_W_MMR2,
    9671             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rt
    9672             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs
    9673             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // sa
    9674             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    9675             :         GIR_EraseFromParent, /*InsnID*/0,
    9676             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9677             :         // GIR_Coverage, 1316,
    9678             :         GIR_Done,
    9679             :       // Label 654: @22865
    9680             :       GIM_Try, /*On fail goto*//*Label 655*/ 22936, // Rule ID 1317 //
    9681             :         GIM_CheckFeatures, GIFBS_HasDSPR2_InMicroMips,
    9682             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_prepend,
    9683             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    9684             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    9685             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    9686             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
    9687             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    9688             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    9689             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
    9690             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
    9691             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    9692             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt5,
    9693             :         // MIs[1] Operand 1
    9694             :         // No operand predicates
    9695             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    9696             :         // (intrinsic_wo_chain:{ *:[i32] } 3505:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$src, GPR32Opnd:{ *:[i32] }:$rs, (imm:{ *:[i32] })<<P:Predicate_immZExt5>>:$sa)  =>  (PREPEND_MMR2:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, (imm:{ *:[i32] }):$sa, GPR32Opnd:{ *:[i32] }:$src)
    9697             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::PREPEND_MMR2,
    9698             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rt
    9699             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs
    9700             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // sa
    9701             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    9702             :         GIR_EraseFromParent, /*InsnID*/0,
    9703             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9704             :         // GIR_Coverage, 1317,
    9705             :         GIR_Done,
    9706             :       // Label 655: @22936
    9707             :       GIM_Try, /*On fail goto*//*Label 656*/ 23007, // Rule ID 1318 //
    9708             :         GIM_CheckFeatures, GIFBS_HasDSPR2_InMicroMips,
    9709             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_append,
    9710             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    9711             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    9712             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    9713             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
    9714             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
    9715             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
    9716             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
    9717             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
    9718             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    9719             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt5,
    9720             :         // MIs[1] Operand 1
    9721             :         // No operand predicates
    9722             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    9723             :         // (intrinsic_wo_chain:{ *:[i32] } 3014:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$src, GPR32Opnd:{ *:[i32] }:$rs, (imm:{ *:[i32] })<<P:Predicate_immZExt5>>:$sa)  =>  (APPEND_MMR2:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, (imm:{ *:[i32] }):$sa, GPR32Opnd:{ *:[i32] }:$src)
    9724             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::APPEND_MMR2,
    9725             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rt
    9726             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs
    9727             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // sa
    9728             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    9729             :         GIR_EraseFromParent, /*InsnID*/0,
    9730             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9731             :         // GIR_Coverage, 1318,
    9732             :         GIR_Done,
    9733             :       // Label 656: @23007
    9734             :       GIM_Try, /*On fail goto*//*Label 657*/ 23071, // Rule ID 520 //
    9735             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    9736             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_binsl_b,
    9737             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
    9738             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    9739             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
    9740             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v16s8,
    9741             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    9742             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    9743             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128BRegClassID,
    9744             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/Mips::MSA128BRegClassID,
    9745             :         // (intrinsic_wo_chain:{ *:[v16i8] } 3048:{ *:[iPTR] }, MSA128BOpnd:{ *:[v16i8] }:$wd_in, MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)  =>  (BINSL_B:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$wd_in, MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
    9746             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::BINSL_B,
    9747             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    9748             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // wd_in
    9749             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // ws
    9750             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // wt
    9751             :         GIR_EraseFromParent, /*InsnID*/0,
    9752             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9753             :         // GIR_Coverage, 520,
    9754             :         GIR_Done,
    9755             :       // Label 657: @23071
    9756             :       GIM_Try, /*On fail goto*//*Label 658*/ 23135, // Rule ID 521 //
    9757             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    9758             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_binsl_h,
    9759             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    9760             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    9761             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
    9762             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s16,
    9763             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    9764             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    9765             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128HRegClassID,
    9766             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/Mips::MSA128HRegClassID,
    9767             :         // (intrinsic_wo_chain:{ *:[v8i16] } 3050:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$wd_in, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (BINSL_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$wd_in, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
    9768             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::BINSL_H,
    9769             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    9770             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // wd_in
    9771             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // ws
    9772             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // wt
    9773             :         GIR_EraseFromParent, /*InsnID*/0,
    9774             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9775             :         // GIR_Coverage, 521,
    9776             :         GIR_Done,
    9777             :       // Label 658: @23135
    9778             :       GIM_Try, /*On fail goto*//*Label 659*/ 23199, // Rule ID 522 //
    9779             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    9780             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_binsl_w,
    9781             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    9782             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    9783             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    9784             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s32,
    9785             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    9786             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    9787             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    9788             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/Mips::MSA128WRegClassID,
    9789             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3051:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$wd_in, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (BINSL_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$wd_in, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
    9790             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::BINSL_W,
    9791             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    9792             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // wd_in
    9793             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // ws
    9794             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // wt
    9795             :         GIR_EraseFromParent, /*InsnID*/0,
    9796             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9797             :         // GIR_Coverage, 522,
    9798             :         GIR_Done,
    9799             :       // Label 659: @23199
    9800             :       GIM_Try, /*On fail goto*//*Label 660*/ 23263, // Rule ID 523 //
    9801             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    9802             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_binsl_d,
    9803             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    9804             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    9805             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    9806             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v2s64,
    9807             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    9808             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    9809             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128DRegClassID,
    9810             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/Mips::MSA128DRegClassID,
    9811             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3049:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2i64] }:$wd_in, MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)  =>  (BINSL_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$wd_in, MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)
    9812             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::BINSL_D,
    9813             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    9814             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // wd_in
    9815             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // ws
    9816             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // wt
    9817             :         GIR_EraseFromParent, /*InsnID*/0,
    9818             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9819             :         // GIR_Coverage, 523,
    9820             :         GIR_Done,
    9821             :       // Label 660: @23263
    9822             :       GIM_Try, /*On fail goto*//*Label 661*/ 23327, // Rule ID 528 //
    9823             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    9824             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_binsr_b,
    9825             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
    9826             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    9827             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
    9828             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v16s8,
    9829             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
    9830             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
    9831             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128BRegClassID,
    9832             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/Mips::MSA128BRegClassID,
    9833             :         // (intrinsic_wo_chain:{ *:[v16i8] } 3056:{ *:[iPTR] }, MSA128BOpnd:{ *:[v16i8] }:$wd_in, MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)  =>  (BINSR_B:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$wd_in, MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
    9834             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::BINSR_B,
    9835             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    9836             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // wd_in
    9837             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // ws
    9838             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // wt
    9839             :         GIR_EraseFromParent, /*InsnID*/0,
    9840             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9841             :         // GIR_Coverage, 528,
    9842             :         GIR_Done,
    9843             :       // Label 661: @23327
    9844             :       GIM_Try, /*On fail goto*//*Label 662*/ 23391, // Rule ID 529 //
    9845             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    9846             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_binsr_h,
    9847             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    9848             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    9849             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
    9850             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s16,
    9851             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    9852             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    9853             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128HRegClassID,
    9854             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/Mips::MSA128HRegClassID,
    9855             :         // (intrinsic_wo_chain:{ *:[v8i16] } 3058:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$wd_in, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (BINSR_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$wd_in, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
    9856             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::BINSR_H,
    9857             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    9858             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // wd_in
    9859             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // ws
    9860             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // wt
    9861             :         GIR_EraseFromParent, /*InsnID*/0,
    9862             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9863             :         // GIR_Coverage, 529,
    9864             :         GIR_Done,
    9865             :       // Label 662: @23391
    9866             :       GIM_Try, /*On fail goto*//*Label 663*/ 23455, // Rule ID 530 //
    9867             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    9868             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_binsr_w,
    9869             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    9870             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    9871             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    9872             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s32,
    9873             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    9874             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    9875             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    9876             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/Mips::MSA128WRegClassID,
    9877             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3059:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$wd_in, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (BINSR_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$wd_in, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
    9878             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::BINSR_W,
    9879             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    9880             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // wd_in
    9881             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // ws
    9882             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // wt
    9883             :         GIR_EraseFromParent, /*InsnID*/0,
    9884             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9885             :         // GIR_Coverage, 530,
    9886             :         GIR_Done,
    9887             :       // Label 663: @23455
    9888             :       GIM_Try, /*On fail goto*//*Label 664*/ 23519, // Rule ID 531 //
    9889             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    9890             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_binsr_d,
    9891             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    9892             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    9893             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    9894             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v2s64,
    9895             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    9896             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    9897             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128DRegClassID,
    9898             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/Mips::MSA128DRegClassID,
    9899             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3057:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2i64] }:$wd_in, MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)  =>  (BINSR_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$wd_in, MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)
    9900             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::BINSR_D,
    9901             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    9902             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // wd_in
    9903             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // ws
    9904             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // wt
    9905             :         GIR_EraseFromParent, /*InsnID*/0,
    9906             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9907             :         // GIR_Coverage, 531,
    9908             :         GIR_Done,
    9909             :       // Label 664: @23519
    9910             :       GIM_Try, /*On fail goto*//*Label 665*/ 23583, // Rule ID 626 //
    9911             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    9912             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_dpadd_s_h,
    9913             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    9914             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    9915             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
    9916             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v16s8,
    9917             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    9918             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    9919             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128BRegClassID,
    9920             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/Mips::MSA128BRegClassID,
    9921             :         // (intrinsic_wo_chain:{ *:[v8i16] } 3177:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$wd_in, MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)  =>  (DPADD_S_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$wd_in, MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
    9922             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::DPADD_S_H,
    9923             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    9924             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // wd_in
    9925             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // ws
    9926             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // wt
    9927             :         GIR_EraseFromParent, /*InsnID*/0,
    9928             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9929             :         // GIR_Coverage, 626,
    9930             :         GIR_Done,
    9931             :       // Label 665: @23583
    9932             :       GIM_Try, /*On fail goto*//*Label 666*/ 23647, // Rule ID 627 //
    9933             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    9934             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_dpadd_s_w,
    9935             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    9936             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    9937             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
    9938             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s16,
    9939             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
    9940             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
    9941             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128HRegClassID,
    9942             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/Mips::MSA128HRegClassID,
    9943             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3178:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$wd_in, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (DPADD_S_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$wd_in, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
    9944             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::DPADD_S_W,
    9945             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    9946             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // wd_in
    9947             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // ws
    9948             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // wt
    9949             :         GIR_EraseFromParent, /*InsnID*/0,
    9950             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9951             :         // GIR_Coverage, 627,
    9952             :         GIR_Done,
    9953             :       // Label 666: @23647
    9954             :       GIM_Try, /*On fail goto*//*Label 667*/ 23711, // Rule ID 628 //
    9955             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    9956             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_dpadd_s_d,
    9957             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    9958             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    9959             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    9960             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s32,
    9961             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
    9962             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
    9963             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
    9964             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/Mips::MSA128WRegClassID,
    9965             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3176:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2i64] }:$wd_in, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (DPADD_S_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$wd_in, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
    9966             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::DPADD_S_D,
    9967             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    9968             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // wd_in
    9969             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // ws
    9970             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // wt
    9971             :         GIR_EraseFromParent, /*InsnID*/0,
    9972             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9973             :         // GIR_Coverage, 628,
    9974             :         GIR_Done,
    9975             :       // Label 667: @23711
    9976             :       GIM_Try, /*On fail goto*//*Label 668*/ 23775, // Rule ID 629 //
    9977             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
    9978             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_dpadd_u_h,
    9979             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    9980             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    9981             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
    9982             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v16s8,
    9983             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
    9984             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
    9985             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128BRegClassID,
    9986             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/Mips::MSA128BRegClassID,
    9987             :         // (intrinsic_wo_chain:{ *:[v8i16] } 3180:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$wd_in, MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)  =>  (DPADD_U_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$wd_in, MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
    9988             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::DPADD_U_H,
    9989             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
    9990             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // wd_in
    9991             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // ws
    9992             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // wt
    9993             :         GIR_EraseFromParent, /*InsnID*/0,
    9994             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9995             :         // GIR_Coverage, 629,
    9996             :         GIR_Done,
    9997             :       // Label 668: @23775
    9998             :       GIM_Try, /*On fail goto*//*Label 669*/ 23839, // Rule ID 630 //
    9999             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   10000             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_dpadd_u_w,
   10001             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
   10002             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
   10003             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
   10004             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s16,
   10005             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
   10006             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
   10007             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128HRegClassID,
   10008             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/Mips::MSA128HRegClassID,
   10009             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3181:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$wd_in, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (DPADD_U_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$wd_in, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
   10010             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::DPADD_U_W,
   10011             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
   10012             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // wd_in
   10013             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // ws
   10014             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // wt
   10015             :         GIR_EraseFromParent, /*InsnID*/0,
   10016             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10017             :         // GIR_Coverage, 630,
   10018             :         GIR_Done,
   10019             :       // Label 669: @23839
   10020             :       GIM_Try, /*On fail goto*//*Label 670*/ 23903, // Rule ID 631 //
   10021             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   10022             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_dpadd_u_d,
   10023             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
   10024             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
   10025             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
   10026             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s32,
   10027             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
   10028             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
   10029             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
   10030             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/Mips::MSA128WRegClassID,
   10031             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3179:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2i64] }:$wd_in, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (DPADD_U_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$wd_in, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
   10032             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::DPADD_U_D,
   10033             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
   10034             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // wd_in
   10035             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // ws
   10036             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // wt
   10037             :         GIR_EraseFromParent, /*InsnID*/0,
   10038             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10039             :         // GIR_Coverage, 631,
   10040             :         GIR_Done,
   10041             :       // Label 670: @23903
   10042             :       GIM_Try, /*On fail goto*//*Label 671*/ 23967, // Rule ID 632 //
   10043             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   10044             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_dpsub_s_h,
   10045             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
   10046             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
   10047             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
   10048             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v16s8,
   10049             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
   10050             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
   10051             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128BRegClassID,
   10052             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/Mips::MSA128BRegClassID,
   10053             :         // (intrinsic_wo_chain:{ *:[v8i16] } 3197:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$wd_in, MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)  =>  (DPSUB_S_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$wd_in, MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
   10054             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::DPSUB_S_H,
   10055             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
   10056             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // wd_in
   10057             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // ws
   10058             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // wt
   10059             :         GIR_EraseFromParent, /*InsnID*/0,
   10060             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10061             :         // GIR_Coverage, 632,
   10062             :         GIR_Done,
   10063             :       // Label 671: @23967
   10064             :       GIM_Try, /*On fail goto*//*Label 672*/ 24031, // Rule ID 633 //
   10065             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   10066             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_dpsub_s_w,
   10067             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
   10068             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
   10069             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
   10070             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s16,
   10071             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
   10072             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
   10073             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128HRegClassID,
   10074             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/Mips::MSA128HRegClassID,
   10075             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3198:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$wd_in, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (DPSUB_S_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$wd_in, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
   10076             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::DPSUB_S_W,
   10077             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
   10078             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // wd_in
   10079             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // ws
   10080             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // wt
   10081             :         GIR_EraseFromParent, /*InsnID*/0,
   10082             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10083             :         // GIR_Coverage, 633,
   10084             :         GIR_Done,
   10085             :       // Label 672: @24031
   10086             :       GIM_Try, /*On fail goto*//*Label 673*/ 24095, // Rule ID 634 //
   10087             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   10088             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_dpsub_s_d,
   10089             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
   10090             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
   10091             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
   10092             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s32,
   10093             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
   10094             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
   10095             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
   10096             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/Mips::MSA128WRegClassID,
   10097             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3196:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2i64] }:$wd_in, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (DPSUB_S_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$wd_in, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
   10098             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::DPSUB_S_D,
   10099             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
   10100             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // wd_in
   10101             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // ws
   10102             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // wt
   10103             :         GIR_EraseFromParent, /*InsnID*/0,
   10104             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10105             :         // GIR_Coverage, 634,
   10106             :         GIR_Done,
   10107             :       // Label 673: @24095
   10108             :       GIM_Try, /*On fail goto*//*Label 674*/ 24159, // Rule ID 635 //
   10109             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   10110             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_dpsub_u_h,
   10111             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
   10112             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
   10113             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
   10114             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v16s8,
   10115             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
   10116             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
   10117             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128BRegClassID,
   10118             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/Mips::MSA128BRegClassID,
   10119             :         // (intrinsic_wo_chain:{ *:[v8i16] } 3200:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$wd_in, MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)  =>  (DPSUB_U_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$wd_in, MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
   10120             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::DPSUB_U_H,
   10121             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
   10122             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // wd_in
   10123             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // ws
   10124             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // wt
   10125             :         GIR_EraseFromParent, /*InsnID*/0,
   10126             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10127             :         // GIR_Coverage, 635,
   10128             :         GIR_Done,
   10129             :       // Label 674: @24159
   10130             :       GIM_Try, /*On fail goto*//*Label 675*/ 24223, // Rule ID 636 //
   10131             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   10132             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_dpsub_u_w,
   10133             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
   10134             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
   10135             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
   10136             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s16,
   10137             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
   10138             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
   10139             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128HRegClassID,
   10140             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/Mips::MSA128HRegClassID,
   10141             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3201:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$wd_in, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (DPSUB_U_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$wd_in, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
   10142             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::DPSUB_U_W,
   10143             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
   10144             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // wd_in
   10145             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // ws
   10146             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // wt
   10147             :         GIR_EraseFromParent, /*InsnID*/0,
   10148             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10149             :         // GIR_Coverage, 636,
   10150             :         GIR_Done,
   10151             :       // Label 675: @24223
   10152             :       GIM_Try, /*On fail goto*//*Label 676*/ 24287, // Rule ID 637 //
   10153             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   10154             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_dpsub_u_d,
   10155             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
   10156             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
   10157             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
   10158             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s32,
   10159             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
   10160             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
   10161             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
   10162             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/Mips::MSA128WRegClassID,
   10163             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3199:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2i64] }:$wd_in, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (DPSUB_U_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$wd_in, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
   10164             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::DPSUB_U_D,
   10165             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
   10166             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // wd_in
   10167             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // ws
   10168             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // wt
   10169             :         GIR_EraseFromParent, /*InsnID*/0,
   10170             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10171             :         // GIR_Coverage, 637,
   10172             :         GIR_Done,
   10173             :       // Label 676: @24287
   10174             :       GIM_Try, /*On fail goto*//*Label 677*/ 24351, // Rule ID 804 //
   10175             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   10176             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_madd_q_h,
   10177             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
   10178             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
   10179             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
   10180             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s16,
   10181             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
   10182             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
   10183             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128HRegClassID,
   10184             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/Mips::MSA128HRegClassID,
   10185             :         // (intrinsic_wo_chain:{ *:[v8i16] } 3365:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$wd_in, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (MADD_Q_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$wd_in, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
   10186             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MADD_Q_H,
   10187             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
   10188             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // wd_in
   10189             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // ws
   10190             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // wt
   10191             :         GIR_EraseFromParent, /*InsnID*/0,
   10192             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10193             :         // GIR_Coverage, 804,
   10194             :         GIR_Done,
   10195             :       // Label 677: @24351
   10196             :       GIM_Try, /*On fail goto*//*Label 678*/ 24415, // Rule ID 805 //
   10197             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   10198             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_madd_q_w,
   10199             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
   10200             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
   10201             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
   10202             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s32,
   10203             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
   10204             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
   10205             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
   10206             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/Mips::MSA128WRegClassID,
   10207             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3366:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$wd_in, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (MADD_Q_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$wd_in, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
   10208             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MADD_Q_W,
   10209             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
   10210             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // wd_in
   10211             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // ws
   10212             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // wt
   10213             :         GIR_EraseFromParent, /*InsnID*/0,
   10214             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10215             :         // GIR_Coverage, 805,
   10216             :         GIR_Done,
   10217             :       // Label 678: @24415
   10218             :       GIM_Try, /*On fail goto*//*Label 679*/ 24479, // Rule ID 806 //
   10219             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   10220             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_maddr_q_h,
   10221             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
   10222             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
   10223             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
   10224             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s16,
   10225             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
   10226             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
   10227             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128HRegClassID,
   10228             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/Mips::MSA128HRegClassID,
   10229             :         // (intrinsic_wo_chain:{ *:[v8i16] } 3367:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$wd_in, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (MADDR_Q_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$wd_in, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
   10230             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MADDR_Q_H,
   10231             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
   10232             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // wd_in
   10233             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // ws
   10234             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // wt
   10235             :         GIR_EraseFromParent, /*InsnID*/0,
   10236             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10237             :         // GIR_Coverage, 806,
   10238             :         GIR_Done,
   10239             :       // Label 679: @24479
   10240             :       GIM_Try, /*On fail goto*//*Label 680*/ 24543, // Rule ID 807 //
   10241             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   10242             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_maddr_q_w,
   10243             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
   10244             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
   10245             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
   10246             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s32,
   10247             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
   10248             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
   10249             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
   10250             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/Mips::MSA128WRegClassID,
   10251             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3368:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$wd_in, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (MADDR_Q_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$wd_in, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
   10252             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MADDR_Q_W,
   10253             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
   10254             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // wd_in
   10255             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // ws
   10256             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // wt
   10257             :         GIR_EraseFromParent, /*InsnID*/0,
   10258             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10259             :         // GIR_Coverage, 807,
   10260             :         GIR_Done,
   10261             :       // Label 680: @24543
   10262             :       GIM_Try, /*On fail goto*//*Label 681*/ 24607, // Rule ID 860 //
   10263             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   10264             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_msub_q_h,
   10265             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
   10266             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
   10267             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
   10268             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s16,
   10269             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
   10270             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
   10271             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128HRegClassID,
   10272             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/Mips::MSA128HRegClassID,
   10273             :         // (intrinsic_wo_chain:{ *:[v8i16] } 3429:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$wd_in, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (MSUB_Q_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$wd_in, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
   10274             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MSUB_Q_H,
   10275             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
   10276             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // wd_in
   10277             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // ws
   10278             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // wt
   10279             :         GIR_EraseFromParent, /*InsnID*/0,
   10280             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10281             :         // GIR_Coverage, 860,
   10282             :         GIR_Done,
   10283             :       // Label 681: @24607
   10284             :       GIM_Try, /*On fail goto*//*Label 682*/ 24671, // Rule ID 861 //
   10285             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   10286             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_msub_q_w,
   10287             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
   10288             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
   10289             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
   10290             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s32,
   10291             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
   10292             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
   10293             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
   10294             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/Mips::MSA128WRegClassID,
   10295             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3430:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$wd_in, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (MSUB_Q_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$wd_in, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
   10296             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MSUB_Q_W,
   10297             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
   10298             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // wd_in
   10299             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // ws
   10300             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // wt
   10301             :         GIR_EraseFromParent, /*InsnID*/0,
   10302             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10303             :         // GIR_Coverage, 861,
   10304             :         GIR_Done,
   10305             :       // Label 682: @24671
   10306             :       GIM_Try, /*On fail goto*//*Label 683*/ 24735, // Rule ID 862 //
   10307             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   10308             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_msubr_q_h,
   10309             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
   10310             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
   10311             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
   10312             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s16,
   10313             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
   10314             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
   10315             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128HRegClassID,
   10316             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/Mips::MSA128HRegClassID,
   10317             :         // (intrinsic_wo_chain:{ *:[v8i16] } 3431:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$wd_in, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (MSUBR_Q_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$wd_in, MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
   10318             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MSUBR_Q_H,
   10319             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
   10320             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // wd_in
   10321             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // ws
   10322             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // wt
   10323             :         GIR_EraseFromParent, /*InsnID*/0,
   10324             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10325             :         // GIR_Coverage, 862,
   10326             :         GIR_Done,
   10327             :       // Label 683: @24735
   10328             :       GIM_Try, /*On fail goto*//*Label 684*/ 24799, // Rule ID 863 //
   10329             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   10330             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_msubr_q_w,
   10331             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
   10332             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
   10333             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
   10334             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s32,
   10335             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
   10336             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
   10337             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
   10338             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/Mips::MSA128WRegClassID,
   10339             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3432:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$wd_in, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (MSUBR_Q_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$wd_in, MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
   10340             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MSUBR_Q_W,
   10341             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
   10342             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // wd_in
   10343             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // ws
   10344             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // wt
   10345             :         GIR_EraseFromParent, /*InsnID*/0,
   10346             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10347             :         // GIR_Coverage, 863,
   10348             :         GIR_Done,
   10349             :       // Label 684: @24799
   10350             :       GIM_Try, /*On fail goto*//*Label 685*/ 24863, // Rule ID 917 //
   10351             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   10352             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_sld_b,
   10353             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
   10354             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
   10355             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
   10356             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
   10357             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
   10358             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
   10359             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128BRegClassID,
   10360             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/Mips::GPR32RegClassID,
   10361             :         // (intrinsic_wo_chain:{ *:[v16i8] } 3533:{ *:[iPTR] }, MSA128BOpnd:{ *:[v16i8] }:$wd_in, MSA128BOpnd:{ *:[v16i8] }:$ws, GPR32Opnd:{ *:[i32] }:$rt)  =>  (SLD_B:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$wd_in, MSA128BOpnd:{ *:[v16i8] }:$ws, GPR32Opnd:{ *:[i32] }:$rt)
   10362             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SLD_B,
   10363             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
   10364             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // wd_in
   10365             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // ws
   10366             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // rt
   10367             :         GIR_EraseFromParent, /*InsnID*/0,
   10368             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10369             :         // GIR_Coverage, 917,
   10370             :         GIR_Done,
   10371             :       // Label 685: @24863
   10372             :       GIM_Try, /*On fail goto*//*Label 686*/ 24927, // Rule ID 918 //
   10373             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   10374             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_sld_h,
   10375             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
   10376             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
   10377             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
   10378             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
   10379             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
   10380             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
   10381             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128HRegClassID,
   10382             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/Mips::GPR32RegClassID,
   10383             :         // (intrinsic_wo_chain:{ *:[v8i16] } 3535:{ *:[iPTR] }, MSA128HOpnd:{ *:[v8i16] }:$wd_in, MSA128HOpnd:{ *:[v8i16] }:$ws, GPR32Opnd:{ *:[i32] }:$rt)  =>  (SLD_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$wd_in, MSA128HOpnd:{ *:[v8i16] }:$ws, GPR32Opnd:{ *:[i32] }:$rt)
   10384             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SLD_H,
   10385             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
   10386             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // wd_in
   10387             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // ws
   10388             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // rt
   10389             :         GIR_EraseFromParent, /*InsnID*/0,
   10390             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10391             :         // GIR_Coverage, 918,
   10392             :         GIR_Done,
   10393             :       // Label 686: @24927
   10394             :       GIM_Try, /*On fail goto*//*Label 687*/ 24991, // Rule ID 919 //
   10395             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   10396             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_sld_w,
   10397             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
   10398             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
   10399             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
   10400             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
   10401             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
   10402             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
   10403             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
   10404             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/Mips::GPR32RegClassID,
   10405             :         // (intrinsic_wo_chain:{ *:[v4i32] } 3536:{ *:[iPTR] }, MSA128WOpnd:{ *:[v4i32] }:$wd_in, MSA128WOpnd:{ *:[v4i32] }:$ws, GPR32Opnd:{ *:[i32] }:$rt)  =>  (SLD_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$wd_in, MSA128WOpnd:{ *:[v4i32] }:$ws, GPR32Opnd:{ *:[i32] }:$rt)
   10406             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SLD_W,
   10407             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
   10408             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // wd_in
   10409             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // ws
   10410             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // rt
   10411             :         GIR_EraseFromParent, /*InsnID*/0,
   10412             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10413             :         // GIR_Coverage, 919,
   10414             :         GIR_Done,
   10415             :       // Label 687: @24991
   10416             :       GIM_Try, /*On fail goto*//*Label 688*/ 25055, // Rule ID 920 //
   10417             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   10418             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_sld_d,
   10419             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
   10420             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
   10421             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
   10422             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
   10423             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
   10424             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
   10425             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128DRegClassID,
   10426             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/Mips::GPR32RegClassID,
   10427             :         // (intrinsic_wo_chain:{ *:[v2i64] } 3534:{ *:[iPTR] }, MSA128DOpnd:{ *:[v2i64] }:$wd_in, MSA128DOpnd:{ *:[v2i64] }:$ws, GPR32Opnd:{ *:[i32] }:$rt)  =>  (SLD_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$wd_in, MSA128DOpnd:{ *:[v2i64] }:$ws, GPR32Opnd:{ *:[i32] }:$rt)
   10428             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SLD_D,
   10429             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
   10430             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // wd_in
   10431             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // ws
   10432             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // rt
   10433             :         GIR_EraseFromParent, /*InsnID*/0,
   10434             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10435             :         // GIR_Coverage, 920,
   10436             :         GIR_Done,
   10437             :       // Label 688: @25055
   10438             :       GIM_Reject,
   10439             :     // Label 642: @25056
   10440             :     GIM_Reject,
   10441             :     // Label 15: @25057
   10442             :     GIM_Try, /*On fail goto*//*Label 689*/ 25090, // Rule ID 326 //
   10443             :       GIM_CheckNumOperands, /*MI*/0, /*Expected*/2,
   10444             :       GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_bposge32,
   10445             :       GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
   10446             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   10447             :       // (intrinsic_w_chain:{ *:[i32] } 3082:{ *:[iPTR] })  =>  (BPOSGE32_PSEUDO:{ *:[i32] })
   10448             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::BPOSGE32_PSEUDO,
   10449             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
   10450             :       GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   10451             :       GIR_EraseFromParent, /*InsnID*/0,
   10452             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10453             :       // GIR_Coverage, 326,
   10454             :       GIR_Done,
   10455             :     // Label 689: @25090
   10456             :     GIM_Try, /*On fail goto*//*Label 690*/ 25992,
   10457             :       GIM_CheckNumOperands, /*MI*/0, /*Expected*/3,
   10458             :       GIM_Try, /*On fail goto*//*Label 691*/ 25147, // Rule ID 413 //
   10459             :         GIM_CheckFeatures, GIFBS_HasDSP,
   10460             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_rddsp,
   10461             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
   10462             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   10463             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   10464             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
   10465             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
   10466             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt10,
   10467             :         // MIs[1] Operand 1
   10468             :         // No operand predicates
   10469             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   10470             :         // (intrinsic_w_chain:{ *:[i32] } 3507:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_immZExt10>>:$mask)  =>  (RDDSP:{ *:[i32] } (imm:{ *:[i32] }):$mask)
   10471             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::RDDSP,
   10472             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   10473             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // mask
   10474             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
   10475             :         GIR_EraseFromParent, /*InsnID*/0,
   10476             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10477             :         // GIR_Coverage, 413,
   10478             :         GIR_Done,
   10479             :       // Label 691: @25147
   10480             :       GIM_Try, /*On fail goto*//*Label 692*/ 25199, // Rule ID 414 //
   10481             :         GIM_CheckFeatures, GIFBS_HasDSP_NotInMicroMips,
   10482             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::mips_wrdsp,
   10483             :         GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
   10484             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   10485             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
   10486             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
   10487             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
   10488             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt10,
   10489             :         // MIs[1] Operand 1
   10490             :         // No operand predicates
   10491             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   10492             :         // (intrinsic_void 3634:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rs, (imm:{ *:[i32] })<<P:Predicate_immZExt10>>:$mask)  =>  (WRDSP GPR32Opnd:{ *:[i32] }:$rs, (imm:{ *:[i32] }):$mask)
   10493             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::WRDSP,
   10494             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs
   10495             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // mask
   10496             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
   10497             :         GIR_EraseFromParent, /*InsnID*/0,
   10498             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10499             :         // GIR_Coverage, 414,
   10500             :         GIR_Done,
   10501             :       // Label 692: @25199
   10502             :       GIM_Try, /*On fail goto*//*Label 693*/ 25243, // Rule ID 335 //
   10503             :         GIM_CheckFeatures, GIFBS_HasDSP,
   10504             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_absq_s_ph,
   10505             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
   10506             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
   10507             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
   10508             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   10509             :         // (intrinsic_w_chain:{ *:[v2i16] } 2970:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (ABSQ_S_PH:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rt)
   10510             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ABSQ_S_PH,
   10511             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   10512             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
   10513             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   10514             :         GIR_EraseFromParent, /*InsnID*/0,
   10515             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10516             :         // GIR_Coverage, 335,
   10517             :         GIR_Done,
   10518             :       // Label 693: @25243
   10519             :       GIM_Try, /*On fail goto*//*Label 694*/ 25287, // Rule ID 336 //
   10520             :         GIM_CheckFeatures, GIFBS_HasDSP,
   10521             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_absq_s_w,
   10522             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
   10523             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   10524             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   10525             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
   10526             :         // (intrinsic_w_chain:{ *:[i32] } 2972:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rt)  =>  (ABSQ_S_W:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rt)
   10527             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ABSQ_S_W,
   10528             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   10529             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
   10530             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   10531             :         GIR_EraseFromParent, /*InsnID*/0,
   10532             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10533             :         // GIR_Coverage, 336,
   10534             :         GIR_Done,
   10535             :       // Label 694: @25287
   10536             :       GIM_Try, /*On fail goto*//*Label 695*/ 25331, // Rule ID 422 //
   10537             :         GIM_CheckFeatures, GIFBS_HasDSPR2,
   10538             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_absq_s_qb,
   10539             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s8,
   10540             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
   10541             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
   10542             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   10543             :         // (intrinsic_w_chain:{ *:[v4i8] } 2971:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rt)  =>  (ABSQ_S_QB:{ *:[v4i8] } DSPROpnd:{ *:[v4i8] }:$rt)
   10544             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ABSQ_S_QB,
   10545             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   10546             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
   10547             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   10548             :         GIR_EraseFromParent, /*InsnID*/0,
   10549             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10550             :         // GIR_Coverage, 422,
   10551             :         GIR_Done,
   10552             :       // Label 695: @25331
   10553             :       GIM_Try, /*On fail goto*//*Label 696*/ 25375, // Rule ID 1196 //
   10554             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
   10555             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_absq_s_ph,
   10556             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
   10557             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
   10558             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
   10559             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   10560             :         // (intrinsic_w_chain:{ *:[v2i16] } 2970:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs)  =>  (ABSQ_S_PH_MM:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rs)
   10561             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ABSQ_S_PH_MM,
   10562             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rt
   10563             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   10564             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   10565             :         GIR_EraseFromParent, /*InsnID*/0,
   10566             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10567             :         // GIR_Coverage, 1196,
   10568             :         GIR_Done,
   10569             :       // Label 696: @25375
   10570             :       GIM_Try, /*On fail goto*//*Label 697*/ 25419, // Rule ID 1197 //
   10571             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
   10572             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_absq_s_w,
   10573             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
   10574             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   10575             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   10576             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
   10577             :         // (intrinsic_w_chain:{ *:[i32] } 2972:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rs)  =>  (ABSQ_S_W_MM:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs)
   10578             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ABSQ_S_W_MM,
   10579             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rt
   10580             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   10581             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   10582             :         GIR_EraseFromParent, /*InsnID*/0,
   10583             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10584             :         // GIR_Coverage, 1197,
   10585             :         GIR_Done,
   10586             :       // Label 697: @25419
   10587             :       GIM_Try, /*On fail goto*//*Label 698*/ 25463, // Rule ID 1277 //
   10588             :         GIM_CheckFeatures, GIFBS_HasDSPR2_InMicroMips,
   10589             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_absq_s_qb,
   10590             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s8,
   10591             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
   10592             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
   10593             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   10594             :         // (intrinsic_w_chain:{ *:[v4i8] } 2971:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs)  =>  (ABSQ_S_QB_MMR2:{ *:[v4i8] } DSPROpnd:{ *:[v4i8] }:$rs)
   10595             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ABSQ_S_QB_MMR2,
   10596             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rt
   10597             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   10598             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   10599             :         GIR_EraseFromParent, /*InsnID*/0,
   10600             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10601             :         // GIR_Coverage, 1277,
   10602             :         GIR_Done,
   10603             :       // Label 698: @25463
   10604             :       GIM_Try, /*On fail goto*//*Label 699*/ 25507, // Rule ID 389 //
   10605             :         GIM_CheckFeatures, GIFBS_HasDSP,
   10606             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::mips_cmpu_eq_qb,
   10607             :         GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s8,
   10608             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
   10609             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::DSPRRegClassID,
   10610             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   10611             :         // (intrinsic_void 3148:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)  =>  (CMPU_EQ_QB DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)
   10612             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::CMPU_EQ_QB,
   10613             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs
   10614             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
   10615             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   10616             :         GIR_EraseFromParent, /*InsnID*/0,
   10617             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10618             :         // GIR_Coverage, 389,
   10619             :         GIR_Done,
   10620             :       // Label 699: @25507
   10621             :       GIM_Try, /*On fail goto*//*Label 700*/ 25551, // Rule ID 390 //
   10622             :         GIM_CheckFeatures, GIFBS_HasDSP,
   10623             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::mips_cmpu_lt_qb,
   10624             :         GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s8,
   10625             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
   10626             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::DSPRRegClassID,
   10627             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   10628             :         // (intrinsic_void 3150:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)  =>  (CMPU_LT_QB DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)
   10629             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::CMPU_LT_QB,
   10630             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs
   10631             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
   10632             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   10633             :         GIR_EraseFromParent, /*InsnID*/0,
   10634             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10635             :         // GIR_Coverage, 390,
   10636             :         GIR_Done,
   10637             :       // Label 700: @25551
   10638             :       GIM_Try, /*On fail goto*//*Label 701*/ 25595, // Rule ID 391 //
   10639             :         GIM_CheckFeatures, GIFBS_HasDSP,
   10640             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::mips_cmpu_le_qb,
   10641             :         GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s8,
   10642             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
   10643             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::DSPRRegClassID,
   10644             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   10645             :         // (intrinsic_void 3149:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)  =>  (CMPU_LE_QB DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)
   10646             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::CMPU_LE_QB,
   10647             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs
   10648             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
   10649             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   10650             :         GIR_EraseFromParent, /*InsnID*/0,
   10651             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10652             :         // GIR_Coverage, 391,
   10653             :         GIR_Done,
   10654             :       // Label 701: @25595
   10655             :       GIM_Try, /*On fail goto*//*Label 702*/ 25639, // Rule ID 395 //
   10656             :         GIM_CheckFeatures, GIFBS_HasDSP,
   10657             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::mips_cmp_eq_ph,
   10658             :         GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s16,
   10659             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
   10660             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::DSPRRegClassID,
   10661             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   10662             :         // (intrinsic_void 3139:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (CMP_EQ_PH DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
   10663             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::CMP_EQ_PH,
   10664             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs
   10665             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
   10666             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   10667             :         GIR_EraseFromParent, /*InsnID*/0,
   10668             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10669             :         // GIR_Coverage, 395,
   10670             :         GIR_Done,
   10671             :       // Label 702: @25639
   10672             :       GIM_Try, /*On fail goto*//*Label 703*/ 25683, // Rule ID 396 //
   10673             :         GIM_CheckFeatures, GIFBS_HasDSP,
   10674             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::mips_cmp_lt_ph,
   10675             :         GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s16,
   10676             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
   10677             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::DSPRRegClassID,
   10678             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   10679             :         // (intrinsic_void 3141:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (CMP_LT_PH DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
   10680             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::CMP_LT_PH,
   10681             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs
   10682             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
   10683             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   10684             :         GIR_EraseFromParent, /*InsnID*/0,
   10685             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10686             :         // GIR_Coverage, 396,
   10687             :         GIR_Done,
   10688             :       // Label 703: @25683
   10689             :       GIM_Try, /*On fail goto*//*Label 704*/ 25727, // Rule ID 397 //
   10690             :         GIM_CheckFeatures, GIFBS_HasDSP,
   10691             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::mips_cmp_le_ph,
   10692             :         GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s16,
   10693             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
   10694             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::DSPRRegClassID,
   10695             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   10696             :         // (intrinsic_void 3140:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (CMP_LE_PH DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
   10697             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::CMP_LE_PH,
   10698             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs
   10699             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
   10700             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   10701             :         GIR_EraseFromParent, /*InsnID*/0,
   10702             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10703             :         // GIR_Coverage, 397,
   10704             :         GIR_Done,
   10705             :       // Label 704: @25727
   10706             :       GIM_Try, /*On fail goto*//*Label 705*/ 25771, // Rule ID 1268 //
   10707             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
   10708             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::mips_cmp_eq_ph,
   10709             :         GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s16,
   10710             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
   10711             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::DSPRRegClassID,
   10712             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   10713             :         // (intrinsic_void 3139:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (CMP_EQ_PH_MM DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
   10714             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::CMP_EQ_PH_MM,
   10715             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs
   10716             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
   10717             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   10718             :         GIR_EraseFromParent, /*InsnID*/0,
   10719             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10720             :         // GIR_Coverage, 1268,
   10721             :         GIR_Done,
   10722             :       // Label 705: @25771
   10723             :       GIM_Try, /*On fail goto*//*Label 706*/ 25815, // Rule ID 1269 //
   10724             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
   10725             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::mips_cmp_lt_ph,
   10726             :         GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s16,
   10727             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
   10728             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::DSPRRegClassID,
   10729             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   10730             :         // (intrinsic_void 3141:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (CMP_LT_PH_MM DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
   10731             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::CMP_LT_PH_MM,
   10732             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs
   10733             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
   10734             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   10735             :         GIR_EraseFromParent, /*InsnID*/0,
   10736             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10737             :         // GIR_Coverage, 1269,
   10738             :         GIR_Done,
   10739             :       // Label 706: @25815
   10740             :       GIM_Try, /*On fail goto*//*Label 707*/ 25859, // Rule ID 1270 //
   10741             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
   10742             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::mips_cmp_le_ph,
   10743             :         GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s16,
   10744             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
   10745             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::DSPRRegClassID,
   10746             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   10747             :         // (intrinsic_void 3140:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (CMP_LE_PH_MM DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
   10748             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::CMP_LE_PH_MM,
   10749             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs
   10750             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
   10751             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   10752             :         GIR_EraseFromParent, /*InsnID*/0,
   10753             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10754             :         // GIR_Coverage, 1270,
   10755             :         GIR_Done,
   10756             :       // Label 707: @25859
   10757             :       GIM_Try, /*On fail goto*//*Label 708*/ 25903, // Rule ID 1274 //
   10758             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
   10759             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::mips_cmpu_eq_qb,
   10760             :         GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s8,
   10761             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
   10762             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::DSPRRegClassID,
   10763             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   10764             :         // (intrinsic_void 3148:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)  =>  (CMPU_EQ_QB_MM DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)
   10765             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::CMPU_EQ_QB_MM,
   10766             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs
   10767             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
   10768             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   10769             :         GIR_EraseFromParent, /*InsnID*/0,
   10770             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10771             :         // GIR_Coverage, 1274,
   10772             :         GIR_Done,
   10773             :       // Label 708: @25903
   10774             :       GIM_Try, /*On fail goto*//*Label 709*/ 25947, // Rule ID 1275 //
   10775             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
   10776             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::mips_cmpu_lt_qb,
   10777             :         GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s8,
   10778             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
   10779             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::DSPRRegClassID,
   10780             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   10781             :         // (intrinsic_void 3150:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)  =>  (CMPU_LT_QB_MM DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)
   10782             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::CMPU_LT_QB_MM,
   10783             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs
   10784             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
   10785             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   10786             :         GIR_EraseFromParent, /*InsnID*/0,
   10787             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10788             :         // GIR_Coverage, 1275,
   10789             :         GIR_Done,
   10790             :       // Label 709: @25947
   10791             :       GIM_Try, /*On fail goto*//*Label 710*/ 25991, // Rule ID 1276 //
   10792             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
   10793             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::mips_cmpu_le_qb,
   10794             :         GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s8,
   10795             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
   10796             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::DSPRRegClassID,
   10797             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   10798             :         // (intrinsic_void 3149:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)  =>  (CMPU_LE_QB_MM DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)
   10799             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::CMPU_LE_QB_MM,
   10800             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs
   10801             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
   10802             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   10803             :         GIR_EraseFromParent, /*InsnID*/0,
   10804             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10805             :         // GIR_Coverage, 1276,
   10806             :         GIR_Done,
   10807             :       // Label 710: @25991
   10808             :       GIM_Reject,
   10809             :     // Label 690: @25992
   10810             :     GIM_Try, /*On fail goto*//*Label 711*/ 29980,
   10811             :       GIM_CheckNumOperands, /*MI*/0, /*Expected*/4,
   10812             :       GIM_Try, /*On fail goto*//*Label 712*/ 26061, // Rule ID 354 //
   10813             :         GIM_CheckFeatures, GIFBS_HasDSP,
   10814             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_shll_s_ph,
   10815             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
   10816             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
   10817             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
   10818             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
   10819             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   10820             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
   10821             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
   10822             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt4,
   10823             :         // MIs[1] Operand 1
   10824             :         // No operand predicates
   10825             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   10826             :         // (intrinsic_w_chain:{ *:[v2i16] } 3524:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rt, (imm:{ *:[i32] })<<P:Predicate_immZExt4>>:$rs_sa)  =>  (SHLL_S_PH:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rt, (imm:{ *:[i32] }):$rs_sa)
   10827             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SHLL_S_PH,
   10828             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   10829             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
   10830             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // rs_sa
   10831             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
   10832             :         GIR_EraseFromParent, /*InsnID*/0,
   10833             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10834             :         // GIR_Coverage, 354,
   10835             :         GIR_Done,
   10836             :       // Label 712: @26061
   10837             :       GIM_Try, /*On fail goto*//*Label 713*/ 26125, // Rule ID 359 //
   10838             :         GIM_CheckFeatures, GIFBS_HasDSP,
   10839             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_shll_s_w,
   10840             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
   10841             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   10842             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
   10843             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   10844             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
   10845             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
   10846             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
   10847             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt5,
   10848             :         // MIs[1] Operand 1
   10849             :         // No operand predicates
   10850             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   10851             :         // (intrinsic_w_chain:{ *:[i32] } 3525:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rt, (imm:{ *:[i32] })<<P:Predicate_immZExt5>>:$rs_sa)  =>  (SHLL_S_W:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rt, (imm:{ *:[i32] }):$rs_sa)
   10852             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SHLL_S_W,
   10853             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   10854             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
   10855             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // rs_sa
   10856             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
   10857             :         GIR_EraseFromParent, /*InsnID*/0,
   10858             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10859             :         // GIR_Coverage, 359,
   10860             :         GIR_Done,
   10861             :       // Label 713: @26125
   10862             :       GIM_Try, /*On fail goto*//*Label 714*/ 26189, // Rule ID 1205 //
   10863             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
   10864             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_shll_s_ph,
   10865             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
   10866             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
   10867             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
   10868             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
   10869             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   10870             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
   10871             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
   10872             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt4,
   10873             :         // MIs[1] Operand 1
   10874             :         // No operand predicates
   10875             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   10876             :         // (intrinsic_w_chain:{ *:[v2i16] } 3524:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, (imm:{ *:[i32] })<<P:Predicate_immZExt4>>:$sa)  =>  (SHLL_S_PH_MM:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rs, (imm:{ *:[i32] }):$sa)
   10877             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SHLL_S_PH_MM,
   10878             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rt
   10879             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   10880             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // sa
   10881             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
   10882             :         GIR_EraseFromParent, /*InsnID*/0,
   10883             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10884             :         // GIR_Coverage, 1205,
   10885             :         GIR_Done,
   10886             :       // Label 714: @26189
   10887             :       GIM_Try, /*On fail goto*//*Label 715*/ 26253, // Rule ID 1210 //
   10888             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
   10889             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_shll_s_w,
   10890             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
   10891             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   10892             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
   10893             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   10894             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
   10895             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
   10896             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
   10897             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt5,
   10898             :         // MIs[1] Operand 1
   10899             :         // No operand predicates
   10900             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   10901             :         // (intrinsic_w_chain:{ *:[i32] } 3525:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rs, (imm:{ *:[i32] })<<P:Predicate_immZExt5>>:$sa)  =>  (SHLL_S_W_MM:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, (imm:{ *:[i32] }):$sa)
   10902             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SHLL_S_W_MM,
   10903             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rt
   10904             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   10905             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // sa
   10906             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
   10907             :         GIR_EraseFromParent, /*InsnID*/0,
   10908             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10909             :         // GIR_Coverage, 1210,
   10910             :         GIR_Done,
   10911             :       // Label 715: @26253
   10912             :       GIM_Try, /*On fail goto*//*Label 716*/ 26308, // Rule ID 1860 //
   10913             :         GIM_CheckFeatures, GIFBS_HasDSP,
   10914             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_shll_ph,
   10915             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
   10916             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
   10917             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
   10918             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
   10919             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
   10920             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
   10921             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt4,
   10922             :         // MIs[1] Operand 1
   10923             :         // No operand predicates
   10924             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   10925             :         // (intrinsic_w_chain:{ *:[v2i16] } 3522:{ *:[iPTR] }, v2i16:{ *:[v2i16] }:$a, (imm:{ *:[i32] })<<P:Predicate_immZExt4>>:$shamt)  =>  (SHLL_PH:{ *:[v2i16] } v2i16:{ *:[v2i16] }:$a, (imm:{ *:[i32] })<<P:Predicate_immZExt4>>:$shamt)
   10926             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SHLL_PH,
   10927             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   10928             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
   10929             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // shamt
   10930             :         GIR_EraseFromParent, /*InsnID*/0,
   10931             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10932             :         // GIR_Coverage, 1860,
   10933             :         GIR_Done,
   10934             :       // Label 716: @26308
   10935             :       GIM_Try, /*On fail goto*//*Label 717*/ 26363, // Rule ID 1866 //
   10936             :         GIM_CheckFeatures, GIFBS_HasDSP,
   10937             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_shll_qb,
   10938             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s8,
   10939             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
   10940             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
   10941             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
   10942             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
   10943             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
   10944             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt3,
   10945             :         // MIs[1] Operand 1
   10946             :         // No operand predicates
   10947             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   10948             :         // (intrinsic_w_chain:{ *:[v4i8] } 3523:{ *:[iPTR] }, v4i8:{ *:[v4i8] }:$a, (imm:{ *:[i32] })<<P:Predicate_immZExt3>>:$shamt)  =>  (SHLL_QB:{ *:[v4i8] } v4i8:{ *:[v4i8] }:$a, (imm:{ *:[i32] })<<P:Predicate_immZExt3>>:$shamt)
   10949             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SHLL_QB,
   10950             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   10951             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
   10952             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // shamt
   10953             :         GIR_EraseFromParent, /*InsnID*/0,
   10954             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10955             :         // GIR_Coverage, 1866,
   10956             :         GIR_Done,
   10957             :       // Label 717: @26363
   10958             :       GIM_Try, /*On fail goto*//*Label 718*/ 26419, // Rule ID 331 //
   10959             :         GIM_CheckFeatures, GIFBS_HasDSP,
   10960             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_addq_s_w,
   10961             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
   10962             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   10963             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
   10964             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   10965             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
   10966             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
   10967             :         // (intrinsic_w_chain:{ *:[i32] } 2979:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (ADDQ_S_W:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
   10968             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ADDQ_S_W,
   10969             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   10970             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   10971             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   10972             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   10973             :         GIR_EraseFromParent, /*InsnID*/0,
   10974             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10975             :         // GIR_Coverage, 331,
   10976             :         GIR_Done,
   10977             :       // Label 718: @26419
   10978             :       GIM_Try, /*On fail goto*//*Label 719*/ 26475, // Rule ID 332 //
   10979             :         GIM_CheckFeatures, GIFBS_HasDSP,
   10980             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_subq_s_w,
   10981             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
   10982             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   10983             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
   10984             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   10985             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
   10986             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
   10987             :         // (intrinsic_w_chain:{ *:[i32] } 3595:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (SUBQ_S_W:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
   10988             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SUBQ_S_W,
   10989             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   10990             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   10991             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   10992             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   10993             :         GIR_EraseFromParent, /*InsnID*/0,
   10994             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   10995             :         // GIR_Coverage, 332,
   10996             :         GIR_Done,
   10997             :       // Label 719: @26475
   10998             :       GIM_Try, /*On fail goto*//*Label 720*/ 26531, // Rule ID 339 //
   10999             :         GIM_CheckFeatures, GIFBS_HasDSP,
   11000             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_precrq_rs_ph_w,
   11001             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
   11002             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   11003             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
   11004             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
   11005             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
   11006             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
   11007             :         // (intrinsic_w_chain:{ *:[v2i16] } 3503:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (PRECRQ_RS_PH_W:{ *:[v2i16] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
   11008             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::PRECRQ_RS_PH_W,
   11009             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11010             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   11011             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   11012             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11013             :         GIR_EraseFromParent, /*InsnID*/0,
   11014             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11015             :         // GIR_Coverage, 339,
   11016             :         GIR_Done,
   11017             :       // Label 720: @26531
   11018             :       GIM_Try, /*On fail goto*//*Label 721*/ 26587, // Rule ID 340 //
   11019             :         GIM_CheckFeatures, GIFBS_HasDSP,
   11020             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_precrqu_s_qb_ph,
   11021             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s8,
   11022             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
   11023             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
   11024             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
   11025             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   11026             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
   11027             :         // (intrinsic_w_chain:{ *:[v4i8] } 3504:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (PRECRQU_S_QB_PH:{ *:[v4i8] } DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
   11028             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::PRECRQU_S_QB_PH,
   11029             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11030             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   11031             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   11032             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11033             :         GIR_EraseFromParent, /*InsnID*/0,
   11034             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11035             :         // GIR_Coverage, 340,
   11036             :         GIR_Done,
   11037             :       // Label 721: @26587
   11038             :       GIM_Try, /*On fail goto*//*Label 722*/ 26643, // Rule ID 351 //
   11039             :         GIM_CheckFeatures, GIFBS_HasDSP,
   11040             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_shll_qb,
   11041             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s8,
   11042             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
   11043             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
   11044             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
   11045             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   11046             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
   11047             :         // (intrinsic_w_chain:{ *:[v4i8] } 3523:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rt, GPR32Opnd:{ *:[i32] }:$rs_sa)  =>  (SHLLV_QB:{ *:[v4i8] } DSPROpnd:{ *:[v4i8] }:$rt, GPR32Opnd:{ *:[i32] }:$rs_sa)
   11048             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SHLLV_QB,
   11049             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11050             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
   11051             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs_sa
   11052             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11053             :         GIR_EraseFromParent, /*InsnID*/0,
   11054             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11055             :         // GIR_Coverage, 351,
   11056             :         GIR_Done,
   11057             :       // Label 722: @26643
   11058             :       GIM_Try, /*On fail goto*//*Label 723*/ 26699, // Rule ID 353 //
   11059             :         GIM_CheckFeatures, GIFBS_HasDSP,
   11060             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_shll_ph,
   11061             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
   11062             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
   11063             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
   11064             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
   11065             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   11066             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
   11067             :         // (intrinsic_w_chain:{ *:[v2i16] } 3522:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rt, GPR32Opnd:{ *:[i32] }:$rs_sa)  =>  (SHLLV_PH:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rt, GPR32Opnd:{ *:[i32] }:$rs_sa)
   11068             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SHLLV_PH,
   11069             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11070             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
   11071             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs_sa
   11072             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11073             :         GIR_EraseFromParent, /*InsnID*/0,
   11074             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11075             :         // GIR_Coverage, 353,
   11076             :         GIR_Done,
   11077             :       // Label 723: @26699
   11078             :       GIM_Try, /*On fail goto*//*Label 724*/ 26755, // Rule ID 355 //
   11079             :         GIM_CheckFeatures, GIFBS_HasDSP,
   11080             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_shll_s_ph,
   11081             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
   11082             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
   11083             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
   11084             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
   11085             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   11086             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
   11087             :         // (intrinsic_w_chain:{ *:[v2i16] } 3524:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rt, GPR32Opnd:{ *:[i32] }:$rs_sa)  =>  (SHLLV_S_PH:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rt, GPR32Opnd:{ *:[i32] }:$rs_sa)
   11088             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SHLLV_S_PH,
   11089             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11090             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
   11091             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs_sa
   11092             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11093             :         GIR_EraseFromParent, /*InsnID*/0,
   11094             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11095             :         // GIR_Coverage, 355,
   11096             :         GIR_Done,
   11097             :       // Label 724: @26755
   11098             :       GIM_Try, /*On fail goto*//*Label 725*/ 26811, // Rule ID 360 //
   11099             :         GIM_CheckFeatures, GIFBS_HasDSP,
   11100             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_shll_s_w,
   11101             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
   11102             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   11103             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
   11104             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   11105             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
   11106             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
   11107             :         // (intrinsic_w_chain:{ *:[i32] } 3525:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rt, GPR32Opnd:{ *:[i32] }:$rs_sa)  =>  (SHLLV_S_W:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rt, GPR32Opnd:{ *:[i32] }:$rs_sa)
   11108             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SHLLV_S_W,
   11109             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11110             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
   11111             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs_sa
   11112             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11113             :         GIR_EraseFromParent, /*InsnID*/0,
   11114             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11115             :         // GIR_Coverage, 360,
   11116             :         GIR_Done,
   11117             :       // Label 725: @26811
   11118             :       GIM_Try, /*On fail goto*//*Label 726*/ 26867, // Rule ID 363 //
   11119             :         GIM_CheckFeatures, GIFBS_HasDSP,
   11120             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_muleu_s_ph_qbl,
   11121             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
   11122             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
   11123             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
   11124             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
   11125             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   11126             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
   11127             :         // (intrinsic_w_chain:{ *:[v2i16] } 3445:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (MULEU_S_PH_QBL:{ *:[v2i16] } DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
   11128             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MULEU_S_PH_QBL,
   11129             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11130             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   11131             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   11132             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11133             :         GIR_EraseFromParent, /*InsnID*/0,
   11134             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11135             :         // GIR_Coverage, 363,
   11136             :         GIR_Done,
   11137             :       // Label 726: @26867
   11138             :       GIM_Try, /*On fail goto*//*Label 727*/ 26923, // Rule ID 364 //
   11139             :         GIM_CheckFeatures, GIFBS_HasDSP,
   11140             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_muleu_s_ph_qbr,
   11141             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
   11142             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
   11143             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
   11144             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
   11145             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   11146             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
   11147             :         // (intrinsic_w_chain:{ *:[v2i16] } 3446:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (MULEU_S_PH_QBR:{ *:[v2i16] } DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
   11148             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MULEU_S_PH_QBR,
   11149             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11150             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   11151             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   11152             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11153             :         GIR_EraseFromParent, /*InsnID*/0,
   11154             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11155             :         // GIR_Coverage, 364,
   11156             :         GIR_Done,
   11157             :       // Label 727: @26923
   11158             :       GIM_Try, /*On fail goto*//*Label 728*/ 26979, // Rule ID 365 //
   11159             :         GIM_CheckFeatures, GIFBS_HasDSP,
   11160             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_muleq_s_w_phl,
   11161             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
   11162             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
   11163             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
   11164             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   11165             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   11166             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
   11167             :         // (intrinsic_w_chain:{ *:[i32] } 3443:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (MULEQ_S_W_PHL:{ *:[i32] } DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
   11168             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MULEQ_S_W_PHL,
   11169             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11170             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   11171             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   11172             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11173             :         GIR_EraseFromParent, /*InsnID*/0,
   11174             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11175             :         // GIR_Coverage, 365,
   11176             :         GIR_Done,
   11177             :       // Label 728: @26979
   11178             :       GIM_Try, /*On fail goto*//*Label 729*/ 27035, // Rule ID 366 //
   11179             :         GIM_CheckFeatures, GIFBS_HasDSP,
   11180             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_muleq_s_w_phr,
   11181             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
   11182             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
   11183             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
   11184             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   11185             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   11186             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
   11187             :         // (intrinsic_w_chain:{ *:[i32] } 3444:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (MULEQ_S_W_PHR:{ *:[i32] } DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
   11188             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MULEQ_S_W_PHR,
   11189             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11190             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   11191             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   11192             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11193             :         GIR_EraseFromParent, /*InsnID*/0,
   11194             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11195             :         // GIR_Coverage, 366,
   11196             :         GIR_Done,
   11197             :       // Label 729: @27035
   11198             :       GIM_Try, /*On fail goto*//*Label 730*/ 27091, // Rule ID 367 //
   11199             :         GIM_CheckFeatures, GIFBS_HasDSP,
   11200             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_mulq_rs_ph,
   11201             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
   11202             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
   11203             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
   11204             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
   11205             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   11206             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
   11207             :         // (intrinsic_w_chain:{ *:[v2i16] } 3447:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (MULQ_RS_PH:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
   11208             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MULQ_RS_PH,
   11209             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11210             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   11211             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   11212             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11213             :         GIR_EraseFromParent, /*InsnID*/0,
   11214             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11215             :         // GIR_Coverage, 367,
   11216             :         GIR_Done,
   11217             :       // Label 730: @27091
   11218             :       GIM_Try, /*On fail goto*//*Label 731*/ 27147, // Rule ID 392 //
   11219             :         GIM_CheckFeatures, GIFBS_HasDSP,
   11220             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_cmpgu_eq_qb,
   11221             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
   11222             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
   11223             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s8,
   11224             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   11225             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   11226             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
   11227             :         // (intrinsic_w_chain:{ *:[i32] } 3145:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)  =>  (CMPGU_EQ_QB:{ *:[i32] } DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)
   11228             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::CMPGU_EQ_QB,
   11229             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11230             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   11231             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   11232             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11233             :         GIR_EraseFromParent, /*InsnID*/0,
   11234             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11235             :         // GIR_Coverage, 392,
   11236             :         GIR_Done,
   11237             :       // Label 731: @27147
   11238             :       GIM_Try, /*On fail goto*//*Label 732*/ 27203, // Rule ID 393 //
   11239             :         GIM_CheckFeatures, GIFBS_HasDSP,
   11240             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_cmpgu_lt_qb,
   11241             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
   11242             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
   11243             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s8,
   11244             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   11245             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   11246             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
   11247             :         // (intrinsic_w_chain:{ *:[i32] } 3147:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)  =>  (CMPGU_LT_QB:{ *:[i32] } DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)
   11248             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::CMPGU_LT_QB,
   11249             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11250             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   11251             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   11252             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11253             :         GIR_EraseFromParent, /*InsnID*/0,
   11254             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11255             :         // GIR_Coverage, 393,
   11256             :         GIR_Done,
   11257             :       // Label 732: @27203
   11258             :       GIM_Try, /*On fail goto*//*Label 733*/ 27259, // Rule ID 394 //
   11259             :         GIM_CheckFeatures, GIFBS_HasDSP,
   11260             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_cmpgu_le_qb,
   11261             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
   11262             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
   11263             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s8,
   11264             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   11265             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   11266             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
   11267             :         // (intrinsic_w_chain:{ *:[i32] } 3146:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)  =>  (CMPGU_LE_QB:{ *:[i32] } DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)
   11268             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::CMPGU_LE_QB,
   11269             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11270             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   11271             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   11272             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11273             :         GIR_EraseFromParent, /*InsnID*/0,
   11274             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11275             :         // GIR_Coverage, 394,
   11276             :         GIR_Done,
   11277             :       // Label 733: @27259
   11278             :       GIM_Try, /*On fail goto*//*Label 734*/ 27315, // Rule ID 404 //
   11279             :         GIM_CheckFeatures, GIFBS_HasDSP,
   11280             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_pick_qb,
   11281             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s8,
   11282             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
   11283             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s8,
   11284             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
   11285             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   11286             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
   11287             :         // (intrinsic_w_chain:{ *:[v4i8] } 3487:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)  =>  (PICK_QB:{ *:[v4i8] } DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)
   11288             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::PICK_QB,
   11289             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11290             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   11291             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   11292             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11293             :         GIR_EraseFromParent, /*InsnID*/0,
   11294             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11295             :         // GIR_Coverage, 404,
   11296             :         GIR_Done,
   11297             :       // Label 734: @27315
   11298             :       GIM_Try, /*On fail goto*//*Label 735*/ 27371, // Rule ID 405 //
   11299             :         GIM_CheckFeatures, GIFBS_HasDSP,
   11300             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_pick_ph,
   11301             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
   11302             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
   11303             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
   11304             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
   11305             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   11306             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
   11307             :         // (intrinsic_w_chain:{ *:[v2i16] } 3486:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (PICK_PH:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
   11308             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::PICK_PH,
   11309             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11310             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   11311             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   11312             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11313             :         GIR_EraseFromParent, /*InsnID*/0,
   11314             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11315             :         // GIR_Coverage, 405,
   11316             :         GIR_Done,
   11317             :       // Label 735: @27371
   11318             :       GIM_Try, /*On fail goto*//*Label 736*/ 27427, // Rule ID 409 //
   11319             :         GIM_CheckFeatures, GIFBS_HasDSP,
   11320             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_insv,
   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*/Mips::GPR32RegClassID,
   11325             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
   11326             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
   11327             :         // (intrinsic_w_chain:{ *:[i32] } 3347:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$src, GPR32Opnd:{ *:[i32] }:$rs)  =>  (INSV:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$src, GPR32Opnd:{ *:[i32] }:$rs)
   11328             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::INSV,
   11329             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rt
   11330             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
   11331             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs
   11332             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11333             :         GIR_EraseFromParent, /*InsnID*/0,
   11334             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11335             :         // GIR_Coverage, 409,
   11336             :         GIR_Done,
   11337             :       // Label 736: @27427
   11338             :       GIM_Try, /*On fail goto*//*Label 737*/ 27483, // Rule ID 415 //
   11339             :         GIM_CheckFeatures, GIFBS_HasDSPR2,
   11340             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_addu_ph,
   11341             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
   11342             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
   11343             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
   11344             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
   11345             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   11346             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
   11347             :         // (intrinsic_w_chain:{ *:[v2i16] } 2997:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (ADDU_PH:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
   11348             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ADDU_PH,
   11349             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11350             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   11351             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   11352             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11353             :         GIR_EraseFromParent, /*InsnID*/0,
   11354             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11355             :         // GIR_Coverage, 415,
   11356             :         GIR_Done,
   11357             :       // Label 737: @27483
   11358             :       GIM_Try, /*On fail goto*//*Label 738*/ 27539, // Rule ID 416 //
   11359             :         GIM_CheckFeatures, GIFBS_HasDSPR2,
   11360             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_addu_s_ph,
   11361             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
   11362             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
   11363             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
   11364             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
   11365             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   11366             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
   11367             :         // (intrinsic_w_chain:{ *:[v2i16] } 2999:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (ADDU_S_PH:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
   11368             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ADDU_S_PH,
   11369             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11370             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   11371             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   11372             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11373             :         GIR_EraseFromParent, /*InsnID*/0,
   11374             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11375             :         // GIR_Coverage, 416,
   11376             :         GIR_Done,
   11377             :       // Label 738: @27539
   11378             :       GIM_Try, /*On fail goto*//*Label 739*/ 27595, // Rule ID 417 //
   11379             :         GIM_CheckFeatures, GIFBS_HasDSPR2,
   11380             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_subu_ph,
   11381             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
   11382             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
   11383             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
   11384             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
   11385             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   11386             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
   11387             :         // (intrinsic_w_chain:{ *:[v2i16] } 3616:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (SUBU_PH:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
   11388             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SUBU_PH,
   11389             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11390             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   11391             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   11392             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11393             :         GIR_EraseFromParent, /*InsnID*/0,
   11394             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11395             :         // GIR_Coverage, 417,
   11396             :         GIR_Done,
   11397             :       // Label 739: @27595
   11398             :       GIM_Try, /*On fail goto*//*Label 740*/ 27651, // Rule ID 418 //
   11399             :         GIM_CheckFeatures, GIFBS_HasDSPR2,
   11400             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_subu_s_ph,
   11401             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
   11402             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
   11403             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
   11404             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
   11405             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   11406             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
   11407             :         // (intrinsic_w_chain:{ *:[v2i16] } 3618:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (SUBU_S_PH:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
   11408             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SUBU_S_PH,
   11409             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11410             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   11411             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   11412             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11413             :         GIR_EraseFromParent, /*InsnID*/0,
   11414             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11415             :         // GIR_Coverage, 418,
   11416             :         GIR_Done,
   11417             :       // Label 740: @27651
   11418             :       GIM_Try, /*On fail goto*//*Label 741*/ 27707, // Rule ID 419 //
   11419             :         GIM_CheckFeatures, GIFBS_HasDSPR2,
   11420             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_cmpgdu_eq_qb,
   11421             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
   11422             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
   11423             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s8,
   11424             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   11425             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   11426             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
   11427             :         // (intrinsic_w_chain:{ *:[i32] } 3142:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)  =>  (CMPGDU_EQ_QB:{ *:[i32] } DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)
   11428             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::CMPGDU_EQ_QB,
   11429             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11430             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   11431             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   11432             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11433             :         GIR_EraseFromParent, /*InsnID*/0,
   11434             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11435             :         // GIR_Coverage, 419,
   11436             :         GIR_Done,
   11437             :       // Label 741: @27707
   11438             :       GIM_Try, /*On fail goto*//*Label 742*/ 27763, // Rule ID 420 //
   11439             :         GIM_CheckFeatures, GIFBS_HasDSPR2,
   11440             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_cmpgdu_lt_qb,
   11441             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
   11442             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
   11443             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s8,
   11444             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   11445             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   11446             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
   11447             :         // (intrinsic_w_chain:{ *:[i32] } 3144:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)  =>  (CMPGDU_LT_QB:{ *:[i32] } DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)
   11448             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::CMPGDU_LT_QB,
   11449             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11450             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   11451             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   11452             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11453             :         GIR_EraseFromParent, /*InsnID*/0,
   11454             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11455             :         // GIR_Coverage, 420,
   11456             :         GIR_Done,
   11457             :       // Label 742: @27763
   11458             :       GIM_Try, /*On fail goto*//*Label 743*/ 27819, // Rule ID 421 //
   11459             :         GIM_CheckFeatures, GIFBS_HasDSPR2,
   11460             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_cmpgdu_le_qb,
   11461             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
   11462             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
   11463             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s8,
   11464             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   11465             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   11466             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
   11467             :         // (intrinsic_w_chain:{ *:[i32] } 3143:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)  =>  (CMPGDU_LE_QB:{ *:[i32] } DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)
   11468             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::CMPGDU_LE_QB,
   11469             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11470             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   11471             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   11472             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11473             :         GIR_EraseFromParent, /*InsnID*/0,
   11474             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11475             :         // GIR_Coverage, 421,
   11476             :         GIR_Done,
   11477             :       // Label 743: @27819
   11478             :       GIM_Try, /*On fail goto*//*Label 744*/ 27875, // Rule ID 435 //
   11479             :         GIM_CheckFeatures, GIFBS_HasDSPR2,
   11480             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_mul_s_ph,
   11481             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
   11482             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
   11483             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
   11484             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
   11485             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   11486             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
   11487             :         // (intrinsic_w_chain:{ *:[v2i16] } 3442:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (MUL_S_PH:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
   11488             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MUL_S_PH,
   11489             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11490             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   11491             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   11492             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11493             :         GIR_EraseFromParent, /*InsnID*/0,
   11494             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11495             :         // GIR_Coverage, 435,
   11496             :         GIR_Done,
   11497             :       // Label 744: @27875
   11498             :       GIM_Try, /*On fail goto*//*Label 745*/ 27931, // Rule ID 436 //
   11499             :         GIM_CheckFeatures, GIFBS_HasDSPR2,
   11500             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_mulq_s_w,
   11501             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
   11502             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   11503             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
   11504             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   11505             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
   11506             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
   11507             :         // (intrinsic_w_chain:{ *:[i32] } 3450:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (MULQ_S_W:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
   11508             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MULQ_S_W,
   11509             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11510             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   11511             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   11512             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11513             :         GIR_EraseFromParent, /*InsnID*/0,
   11514             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11515             :         // GIR_Coverage, 436,
   11516             :         GIR_Done,
   11517             :       // Label 745: @27931
   11518             :       GIM_Try, /*On fail goto*//*Label 746*/ 27987, // Rule ID 437 //
   11519             :         GIM_CheckFeatures, GIFBS_HasDSPR2,
   11520             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_mulq_rs_w,
   11521             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
   11522             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   11523             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
   11524             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   11525             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
   11526             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
   11527             :         // (intrinsic_w_chain:{ *:[i32] } 3448:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (MULQ_RS_W:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
   11528             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MULQ_RS_W,
   11529             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11530             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   11531             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   11532             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11533             :         GIR_EraseFromParent, /*InsnID*/0,
   11534             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11535             :         // GIR_Coverage, 437,
   11536             :         GIR_Done,
   11537             :       // Label 746: @27987
   11538             :       GIM_Try, /*On fail goto*//*Label 747*/ 28043, // Rule ID 438 //
   11539             :         GIM_CheckFeatures, GIFBS_HasDSPR2,
   11540             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_mulq_s_ph,
   11541             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
   11542             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
   11543             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
   11544             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
   11545             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   11546             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
   11547             :         // (intrinsic_w_chain:{ *:[v2i16] } 3449:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (MULQ_S_PH:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
   11548             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MULQ_S_PH,
   11549             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11550             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   11551             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   11552             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11553             :         GIR_EraseFromParent, /*InsnID*/0,
   11554             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11555             :         // GIR_Coverage, 438,
   11556             :         GIR_Done,
   11557             :       // Label 747: @28043
   11558             :       GIM_Try, /*On fail goto*//*Label 748*/ 28099, // Rule ID 448 //
   11559             :         GIM_CheckFeatures, GIFBS_HasDSPR2,
   11560             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_precr_qb_ph,
   11561             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s8,
   11562             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
   11563             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
   11564             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
   11565             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   11566             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
   11567             :         // (intrinsic_w_chain:{ *:[v4i8] } 3498:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (PRECR_QB_PH:{ *:[v4i8] } DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
   11568             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::PRECR_QB_PH,
   11569             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11570             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   11571             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   11572             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11573             :         GIR_EraseFromParent, /*InsnID*/0,
   11574             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11575             :         // GIR_Coverage, 448,
   11576             :         GIR_Done,
   11577             :       // Label 748: @28099
   11578             :       GIM_Try, /*On fail goto*//*Label 749*/ 28155, // Rule ID 1190 //
   11579             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
   11580             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_addq_s_w,
   11581             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
   11582             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   11583             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
   11584             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   11585             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
   11586             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
   11587             :         // (intrinsic_w_chain:{ *:[i32] } 2979:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (ADDQ_S_W_MM:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
   11588             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ADDQ_S_W_MM,
   11589             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11590             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   11591             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   11592             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11593             :         GIR_EraseFromParent, /*InsnID*/0,
   11594             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11595             :         // GIR_Coverage, 1190,
   11596             :         GIR_Done,
   11597             :       // Label 749: @28155
   11598             :       GIM_Try, /*On fail goto*//*Label 750*/ 28211, // Rule ID 1198 //
   11599             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
   11600             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_insv,
   11601             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
   11602             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   11603             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
   11604             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   11605             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
   11606             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
   11607             :         // (intrinsic_w_chain:{ *:[i32] } 3347:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$src, GPR32Opnd:{ *:[i32] }:$rs)  =>  (INSV_MM:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$src, GPR32Opnd:{ *:[i32] }:$rs)
   11608             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::INSV_MM,
   11609             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rt
   11610             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
   11611             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs
   11612             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11613             :         GIR_EraseFromParent, /*InsnID*/0,
   11614             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11615             :         // GIR_Coverage, 1198,
   11616             :         GIR_Done,
   11617             :       // Label 750: @28211
   11618             :       GIM_Try, /*On fail goto*//*Label 751*/ 28267, // Rule ID 1206 //
   11619             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
   11620             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_shll_ph,
   11621             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
   11622             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
   11623             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
   11624             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
   11625             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   11626             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
   11627             :         // (intrinsic_w_chain:{ *:[v2i16] } 3522:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rt, GPR32Opnd:{ *:[i32] }:$rs)  =>  (SHLLV_PH_MM:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rt, GPR32Opnd:{ *:[i32] }:$rs)
   11628             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SHLLV_PH_MM,
   11629             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11630             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
   11631             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs
   11632             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11633             :         GIR_EraseFromParent, /*InsnID*/0,
   11634             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11635             :         // GIR_Coverage, 1206,
   11636             :         GIR_Done,
   11637             :       // Label 751: @28267
   11638             :       GIM_Try, /*On fail goto*//*Label 752*/ 28323, // Rule ID 1207 //
   11639             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
   11640             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_shll_s_ph,
   11641             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
   11642             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
   11643             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
   11644             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
   11645             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   11646             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
   11647             :         // (intrinsic_w_chain:{ *:[v2i16] } 3524:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rt, GPR32Opnd:{ *:[i32] }:$rs)  =>  (SHLLV_S_PH_MM:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rt, GPR32Opnd:{ *:[i32] }:$rs)
   11648             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SHLLV_S_PH_MM,
   11649             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11650             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
   11651             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs
   11652             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11653             :         GIR_EraseFromParent, /*InsnID*/0,
   11654             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11655             :         // GIR_Coverage, 1207,
   11656             :         GIR_Done,
   11657             :       // Label 752: @28323
   11658             :       GIM_Try, /*On fail goto*//*Label 753*/ 28379, // Rule ID 1208 //
   11659             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
   11660             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_shll_qb,
   11661             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s8,
   11662             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
   11663             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
   11664             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
   11665             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   11666             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
   11667             :         // (intrinsic_w_chain:{ *:[v4i8] } 3523:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rt, GPR32Opnd:{ *:[i32] }:$rs)  =>  (SHLLV_QB_MM:{ *:[v4i8] } DSPROpnd:{ *:[v4i8] }:$rt, GPR32Opnd:{ *:[i32] }:$rs)
   11668             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SHLLV_QB_MM,
   11669             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11670             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
   11671             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs
   11672             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11673             :         GIR_EraseFromParent, /*InsnID*/0,
   11674             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11675             :         // GIR_Coverage, 1208,
   11676             :         GIR_Done,
   11677             :       // Label 753: @28379
   11678             :       GIM_Try, /*On fail goto*//*Label 754*/ 28435, // Rule ID 1209 //
   11679             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
   11680             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_shll_s_w,
   11681             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
   11682             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   11683             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
   11684             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   11685             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
   11686             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
   11687             :         // (intrinsic_w_chain:{ *:[i32] } 3525:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rt, GPR32Opnd:{ *:[i32] }:$rs)  =>  (SHLLV_S_W_MM:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rt, GPR32Opnd:{ *:[i32] }:$rs)
   11688             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SHLLV_S_W_MM,
   11689             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11690             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rt
   11691             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs
   11692             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11693             :         GIR_EraseFromParent, /*InsnID*/0,
   11694             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11695             :         // GIR_Coverage, 1209,
   11696             :         GIR_Done,
   11697             :       // Label 754: @28435
   11698             :       GIM_Try, /*On fail goto*//*Label 755*/ 28491, // Rule ID 1228 //
   11699             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
   11700             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_subq_s_w,
   11701             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
   11702             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   11703             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
   11704             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   11705             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
   11706             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
   11707             :         // (intrinsic_w_chain:{ *:[i32] } 3595:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (SUBQ_S_W_MM:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
   11708             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SUBQ_S_W_MM,
   11709             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11710             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   11711             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   11712             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11713             :         GIR_EraseFromParent, /*InsnID*/0,
   11714             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11715             :         // GIR_Coverage, 1228,
   11716             :         GIR_Done,
   11717             :       // Label 755: @28491
   11718             :       GIM_Try, /*On fail goto*//*Label 756*/ 28547, // Rule ID 1234 //
   11719             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
   11720             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_muleq_s_w_phl,
   11721             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
   11722             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
   11723             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
   11724             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   11725             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   11726             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
   11727             :         // (intrinsic_w_chain:{ *:[i32] } 3443:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (MULEQ_S_W_PHL_MM:{ *:[i32] } DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
   11728             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MULEQ_S_W_PHL_MM,
   11729             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11730             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   11731             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   11732             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11733             :         GIR_EraseFromParent, /*InsnID*/0,
   11734             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11735             :         // GIR_Coverage, 1234,
   11736             :         GIR_Done,
   11737             :       // Label 756: @28547
   11738             :       GIM_Try, /*On fail goto*//*Label 757*/ 28603, // Rule ID 1235 //
   11739             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
   11740             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_muleq_s_w_phr,
   11741             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
   11742             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
   11743             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
   11744             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   11745             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   11746             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
   11747             :         // (intrinsic_w_chain:{ *:[i32] } 3444:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (MULEQ_S_W_PHR_MM:{ *:[i32] } DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
   11748             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MULEQ_S_W_PHR_MM,
   11749             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11750             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   11751             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   11752             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11753             :         GIR_EraseFromParent, /*InsnID*/0,
   11754             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11755             :         // GIR_Coverage, 1235,
   11756             :         GIR_Done,
   11757             :       // Label 757: @28603
   11758             :       GIM_Try, /*On fail goto*//*Label 758*/ 28659, // Rule ID 1236 //
   11759             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
   11760             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_muleu_s_ph_qbl,
   11761             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
   11762             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
   11763             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
   11764             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
   11765             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   11766             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
   11767             :         // (intrinsic_w_chain:{ *:[v2i16] } 3445:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (MULEU_S_PH_QBL_MM:{ *:[v2i16] } DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
   11768             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MULEU_S_PH_QBL_MM,
   11769             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11770             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   11771             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   11772             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11773             :         GIR_EraseFromParent, /*InsnID*/0,
   11774             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11775             :         // GIR_Coverage, 1236,
   11776             :         GIR_Done,
   11777             :       // Label 758: @28659
   11778             :       GIM_Try, /*On fail goto*//*Label 759*/ 28715, // Rule ID 1237 //
   11779             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
   11780             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_muleu_s_ph_qbr,
   11781             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
   11782             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
   11783             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
   11784             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
   11785             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   11786             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
   11787             :         // (intrinsic_w_chain:{ *:[v2i16] } 3446:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (MULEU_S_PH_QBR_MM:{ *:[v2i16] } DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
   11788             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MULEU_S_PH_QBR_MM,
   11789             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11790             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   11791             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   11792             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11793             :         GIR_EraseFromParent, /*InsnID*/0,
   11794             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11795             :         // GIR_Coverage, 1237,
   11796             :         GIR_Done,
   11797             :       // Label 759: @28715
   11798             :       GIM_Try, /*On fail goto*//*Label 760*/ 28771, // Rule ID 1238 //
   11799             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
   11800             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_mulq_rs_ph,
   11801             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
   11802             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
   11803             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
   11804             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
   11805             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   11806             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
   11807             :         // (intrinsic_w_chain:{ *:[v2i16] } 3447:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (MULQ_RS_PH_MM:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
   11808             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MULQ_RS_PH_MM,
   11809             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11810             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   11811             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   11812             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11813             :         GIR_EraseFromParent, /*InsnID*/0,
   11814             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11815             :         // GIR_Coverage, 1238,
   11816             :         GIR_Done,
   11817             :       // Label 760: @28771
   11818             :       GIM_Try, /*On fail goto*//*Label 761*/ 28827, // Rule ID 1241 //
   11819             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
   11820             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_precrqu_s_qb_ph,
   11821             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s8,
   11822             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
   11823             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
   11824             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
   11825             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   11826             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
   11827             :         // (intrinsic_w_chain:{ *:[v4i8] } 3504:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (PRECRQU_S_QB_PH_MM:{ *:[v4i8] } DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
   11828             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::PRECRQU_S_QB_PH_MM,
   11829             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11830             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   11831             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   11832             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11833             :         GIR_EraseFromParent, /*InsnID*/0,
   11834             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11835             :         // GIR_Coverage, 1241,
   11836             :         GIR_Done,
   11837             :       // Label 761: @28827
   11838             :       GIM_Try, /*On fail goto*//*Label 762*/ 28883, // Rule ID 1242 //
   11839             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
   11840             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_precrq_rs_ph_w,
   11841             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
   11842             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   11843             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
   11844             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
   11845             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
   11846             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
   11847             :         // (intrinsic_w_chain:{ *:[v2i16] } 3503:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (PRECRQ_RS_PH_W_MM:{ *:[v2i16] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
   11848             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::PRECRQ_RS_PH_W_MM,
   11849             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11850             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   11851             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   11852             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11853             :         GIR_EraseFromParent, /*InsnID*/0,
   11854             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11855             :         // GIR_Coverage, 1242,
   11856             :         GIR_Done,
   11857             :       // Label 762: @28883
   11858             :       GIM_Try, /*On fail goto*//*Label 763*/ 28939, // Rule ID 1260 //
   11859             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
   11860             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_pick_ph,
   11861             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
   11862             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
   11863             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
   11864             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
   11865             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   11866             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
   11867             :         // (intrinsic_w_chain:{ *:[v2i16] } 3486:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (PICK_PH_MM:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
   11868             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::PICK_PH_MM,
   11869             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11870             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   11871             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   11872             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11873             :         GIR_EraseFromParent, /*InsnID*/0,
   11874             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11875             :         // GIR_Coverage, 1260,
   11876             :         GIR_Done,
   11877             :       // Label 763: @28939
   11878             :       GIM_Try, /*On fail goto*//*Label 764*/ 28995, // Rule ID 1261 //
   11879             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
   11880             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_pick_qb,
   11881             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s8,
   11882             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
   11883             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s8,
   11884             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
   11885             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   11886             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
   11887             :         // (intrinsic_w_chain:{ *:[v4i8] } 3487:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)  =>  (PICK_QB_MM:{ *:[v4i8] } DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)
   11888             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::PICK_QB_MM,
   11889             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11890             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   11891             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   11892             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11893             :         GIR_EraseFromParent, /*InsnID*/0,
   11894             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11895             :         // GIR_Coverage, 1261,
   11896             :         GIR_Done,
   11897             :       // Label 764: @28995
   11898             :       GIM_Try, /*On fail goto*//*Label 765*/ 29051, // Rule ID 1271 //
   11899             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
   11900             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_cmpgu_eq_qb,
   11901             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
   11902             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
   11903             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s8,
   11904             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   11905             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   11906             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
   11907             :         // (intrinsic_w_chain:{ *:[i32] } 3145:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)  =>  (CMPGU_EQ_QB_MM:{ *:[i32] } DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)
   11908             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::CMPGU_EQ_QB_MM,
   11909             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11910             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   11911             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   11912             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11913             :         GIR_EraseFromParent, /*InsnID*/0,
   11914             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11915             :         // GIR_Coverage, 1271,
   11916             :         GIR_Done,
   11917             :       // Label 765: @29051
   11918             :       GIM_Try, /*On fail goto*//*Label 766*/ 29107, // Rule ID 1272 //
   11919             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
   11920             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_cmpgu_lt_qb,
   11921             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
   11922             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
   11923             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s8,
   11924             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   11925             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   11926             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
   11927             :         // (intrinsic_w_chain:{ *:[i32] } 3147:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)  =>  (CMPGU_LT_QB_MM:{ *:[i32] } DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)
   11928             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::CMPGU_LT_QB_MM,
   11929             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11930             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   11931             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   11932             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11933             :         GIR_EraseFromParent, /*InsnID*/0,
   11934             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11935             :         // GIR_Coverage, 1272,
   11936             :         GIR_Done,
   11937             :       // Label 766: @29107
   11938             :       GIM_Try, /*On fail goto*//*Label 767*/ 29163, // Rule ID 1273 //
   11939             :         GIM_CheckFeatures, GIFBS_HasDSP_InMicroMips,
   11940             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_cmpgu_le_qb,
   11941             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
   11942             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
   11943             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s8,
   11944             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   11945             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   11946             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
   11947             :         // (intrinsic_w_chain:{ *:[i32] } 3146:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)  =>  (CMPGU_LE_QB_MM:{ *:[i32] } DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)
   11948             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::CMPGU_LE_QB_MM,
   11949             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11950             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   11951             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   11952             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11953             :         GIR_EraseFromParent, /*InsnID*/0,
   11954             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11955             :         // GIR_Coverage, 1273,
   11956             :         GIR_Done,
   11957             :       // Label 767: @29163
   11958             :       GIM_Try, /*On fail goto*//*Label 768*/ 29219, // Rule ID 1282 //
   11959             :         GIM_CheckFeatures, GIFBS_HasDSPR2_InMicroMips,
   11960             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_addu_ph,
   11961             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
   11962             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
   11963             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
   11964             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
   11965             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   11966             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
   11967             :         // (intrinsic_w_chain:{ *:[v2i16] } 2997:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (ADDU_PH_MMR2:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
   11968             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ADDU_PH_MMR2,
   11969             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11970             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   11971             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   11972             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11973             :         GIR_EraseFromParent, /*InsnID*/0,
   11974             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11975             :         // GIR_Coverage, 1282,
   11976             :         GIR_Done,
   11977             :       // Label 768: @29219
   11978             :       GIM_Try, /*On fail goto*//*Label 769*/ 29275, // Rule ID 1283 //
   11979             :         GIM_CheckFeatures, GIFBS_HasDSPR2_InMicroMips,
   11980             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_addu_s_ph,
   11981             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
   11982             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
   11983             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
   11984             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
   11985             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   11986             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
   11987             :         // (intrinsic_w_chain:{ *:[v2i16] } 2999:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (ADDU_S_PH_MMR2:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
   11988             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ADDU_S_PH_MMR2,
   11989             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   11990             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   11991             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   11992             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   11993             :         GIR_EraseFromParent, /*InsnID*/0,
   11994             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   11995             :         // GIR_Coverage, 1283,
   11996             :         GIR_Done,
   11997             :       // Label 769: @29275
   11998             :       GIM_Try, /*On fail goto*//*Label 770*/ 29331, // Rule ID 1294 //
   11999             :         GIM_CheckFeatures, GIFBS_HasDSPR2_InMicroMips,
   12000             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_cmpgdu_eq_qb,
   12001             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
   12002             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
   12003             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s8,
   12004             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   12005             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   12006             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
   12007             :         // (intrinsic_w_chain:{ *:[i32] } 3142:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)  =>  (CMPGDU_EQ_QB_MMR2:{ *:[i32] } DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)
   12008             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::CMPGDU_EQ_QB_MMR2,
   12009             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   12010             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   12011             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   12012             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   12013             :         GIR_EraseFromParent, /*InsnID*/0,
   12014             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12015             :         // GIR_Coverage, 1294,
   12016             :         GIR_Done,
   12017             :       // Label 770: @29331
   12018             :       GIM_Try, /*On fail goto*//*Label 771*/ 29387, // Rule ID 1295 //
   12019             :         GIM_CheckFeatures, GIFBS_HasDSPR2_InMicroMips,
   12020             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_cmpgdu_lt_qb,
   12021             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
   12022             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
   12023             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s8,
   12024             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   12025             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   12026             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
   12027             :         // (intrinsic_w_chain:{ *:[i32] } 3144:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)  =>  (CMPGDU_LT_QB_MMR2:{ *:[i32] } DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)
   12028             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::CMPGDU_LT_QB_MMR2,
   12029             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   12030             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   12031             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   12032             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   12033             :         GIR_EraseFromParent, /*InsnID*/0,
   12034             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12035             :         // GIR_Coverage, 1295,
   12036             :         GIR_Done,
   12037             :       // Label 771: @29387
   12038             :       GIM_Try, /*On fail goto*//*Label 772*/ 29443, // Rule ID 1296 //
   12039             :         GIM_CheckFeatures, GIFBS_HasDSPR2_InMicroMips,
   12040             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_cmpgdu_le_qb,
   12041             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
   12042             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s8,
   12043             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s8,
   12044             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   12045             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   12046             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
   12047             :         // (intrinsic_w_chain:{ *:[i32] } 3143:{ *:[iPTR] }, DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)  =>  (CMPGDU_LE_QB_MMR2:{ *:[i32] } DSPROpnd:{ *:[v4i8] }:$rs, DSPROpnd:{ *:[v4i8] }:$rt)
   12048             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::CMPGDU_LE_QB_MMR2,
   12049             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   12050             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   12051             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   12052             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   12053             :         GIR_EraseFromParent, /*InsnID*/0,
   12054             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12055             :         // GIR_Coverage, 1296,
   12056             :         GIR_Done,
   12057             :       // Label 772: @29443
   12058             :       GIM_Try, /*On fail goto*//*Label 773*/ 29499, // Rule ID 1302 //
   12059             :         GIM_CheckFeatures, GIFBS_HasDSPR2_InMicroMips,
   12060             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_subu_ph,
   12061             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
   12062             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
   12063             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
   12064             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
   12065             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   12066             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
   12067             :         // (intrinsic_w_chain:{ *:[v2i16] } 3616:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (SUBU_PH_MMR2:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
   12068             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SUBU_PH_MMR2,
   12069             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   12070             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   12071             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   12072             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   12073             :         GIR_EraseFromParent, /*InsnID*/0,
   12074             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12075             :         // GIR_Coverage, 1302,
   12076             :         GIR_Done,
   12077             :       // Label 773: @29499
   12078             :       GIM_Try, /*On fail goto*//*Label 774*/ 29555, // Rule ID 1303 //
   12079             :         GIM_CheckFeatures, GIFBS_HasDSPR2_InMicroMips,
   12080             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_subu_s_ph,
   12081             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
   12082             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
   12083             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
   12084             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
   12085             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   12086             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
   12087             :         // (intrinsic_w_chain:{ *:[v2i16] } 3618:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (SUBU_S_PH_MMR2:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
   12088             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SUBU_S_PH_MMR2,
   12089             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   12090             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   12091             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   12092             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   12093             :         GIR_EraseFromParent, /*InsnID*/0,
   12094             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12095             :         // GIR_Coverage, 1303,
   12096             :         GIR_Done,
   12097             :       // Label 774: @29555
   12098             :       GIM_Try, /*On fail goto*//*Label 775*/ 29611, // Rule ID 1310 //
   12099             :         GIM_CheckFeatures, GIFBS_HasDSPR2_InMicroMips,
   12100             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_mul_s_ph,
   12101             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
   12102             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
   12103             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
   12104             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
   12105             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   12106             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
   12107             :         // (intrinsic_w_chain:{ *:[v2i16] } 3442:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (MUL_S_PH_MMR2:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
   12108             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MUL_S_PH_MMR2,
   12109             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   12110             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   12111             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   12112             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   12113             :         GIR_EraseFromParent, /*InsnID*/0,
   12114             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12115             :         // GIR_Coverage, 1310,
   12116             :         GIR_Done,
   12117             :       // Label 775: @29611
   12118             :       GIM_Try, /*On fail goto*//*Label 776*/ 29667, // Rule ID 1311 //
   12119             :         GIM_CheckFeatures, GIFBS_HasDSPR2_InMicroMips,
   12120             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_mulq_rs_w,
   12121             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
   12122             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   12123             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
   12124             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   12125             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
   12126             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
   12127             :         // (intrinsic_w_chain:{ *:[i32] } 3448:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (MULQ_RS_W_MMR2:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
   12128             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MULQ_RS_W_MMR2,
   12129             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   12130             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   12131             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   12132             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   12133             :         GIR_EraseFromParent, /*InsnID*/0,
   12134             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12135             :         // GIR_Coverage, 1311,
   12136             :         GIR_Done,
   12137             :       // Label 776: @29667
   12138             :       GIM_Try, /*On fail goto*//*Label 777*/ 29723, // Rule ID 1312 //
   12139             :         GIM_CheckFeatures, GIFBS_HasDSPR2_InMicroMips,
   12140             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_mulq_s_ph,
   12141             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
   12142             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
   12143             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
   12144             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
   12145             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   12146             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
   12147             :         // (intrinsic_w_chain:{ *:[v2i16] } 3449:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (MULQ_S_PH_MMR2:{ *:[v2i16] } DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
   12148             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MULQ_S_PH_MMR2,
   12149             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   12150             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   12151             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   12152             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   12153             :         GIR_EraseFromParent, /*InsnID*/0,
   12154             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12155             :         // GIR_Coverage, 1312,
   12156             :         GIR_Done,
   12157             :       // Label 777: @29723
   12158             :       GIM_Try, /*On fail goto*//*Label 778*/ 29779, // Rule ID 1313 //
   12159             :         GIM_CheckFeatures, GIFBS_HasDSPR2_InMicroMips,
   12160             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_mulq_s_w,
   12161             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
   12162             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   12163             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
   12164             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   12165             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
   12166             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
   12167             :         // (intrinsic_w_chain:{ *:[i32] } 3450:{ *:[iPTR] }, GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)  =>  (MULQ_S_W_MMR2:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, GPR32Opnd:{ *:[i32] }:$rt)
   12168             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MULQ_S_W_MMR2,
   12169             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   12170             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   12171             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   12172             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   12173             :         GIR_EraseFromParent, /*InsnID*/0,
   12174             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12175             :         // GIR_Coverage, 1313,
   12176             :         GIR_Done,
   12177             :       // Label 778: @29779
   12178             :       GIM_Try, /*On fail goto*//*Label 779*/ 29835, // Rule ID 1314 //
   12179             :         GIM_CheckFeatures, GIFBS_HasDSPR2_InMicroMips,
   12180             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_precr_qb_ph,
   12181             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s8,
   12182             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
   12183             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
   12184             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
   12185             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::DSPRRegClassID,
   12186             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::DSPRRegClassID,
   12187             :         // (intrinsic_w_chain:{ *:[v4i8] } 3498:{ *:[iPTR] }, DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)  =>  (PRECR_QB_PH_MMR2:{ *:[v4i8] } DSPROpnd:{ *:[v2i16] }:$rs, DSPROpnd:{ *:[v2i16] }:$rt)
   12188             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::PRECR_QB_PH_MMR2,
   12189             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   12190             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs
   12191             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rt
   12192             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   12193             :         GIR_EraseFromParent, /*InsnID*/0,
   12194             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12195             :         // GIR_Coverage, 1314,
   12196             :         GIR_Done,
   12197             :       // Label 779: @29835
   12198             :       GIM_Try, /*On fail goto*//*Label 780*/ 29883, // Rule ID 1847 //
   12199             :         GIM_CheckFeatures, GIFBS_HasDSPR2,
   12200             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_mul_ph,
   12201             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s16,
   12202             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s16,
   12203             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s16,
   12204             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::DSPRRegClassID,
   12205             :         // (intrinsic_w_chain:{ *:[v2i16] } 3439:{ *:[iPTR] }, v2i16:{ *:[v2i16] }:$a, v2i16:{ *:[v2i16] }:$b)  =>  (MUL_PH:{ *:[v2i16] } v2i16:{ *:[v2i16] }:$a, v2i16:{ *:[v2i16] }:$b)
   12206             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MUL_PH,
   12207             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   12208             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
   12209             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
   12210             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   12211             :         GIR_EraseFromParent, /*InsnID*/0,
   12212             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12213             :         // GIR_Coverage, 1847,
   12214             :         GIR_Done,
   12215             :       // Label 780: @29883
   12216             :       GIM_Try, /*On fail goto*//*Label 781*/ 29931, // Rule ID 1853 //
   12217             :         GIM_CheckFeatures, GIFBS_HasDSP,
   12218             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_addsc,
   12219             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
   12220             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   12221             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
   12222             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   12223             :         // (intrinsic_w_chain:{ *:[i32] } 2996:{ *:[iPTR] }, i32:{ *:[i32] }:$a, i32:{ *:[i32] }:$b)  =>  (ADDSC:{ *:[i32] } i32:{ *:[i32] }:$a, i32:{ *:[i32] }:$b)
   12224             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ADDSC,
   12225             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   12226             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
   12227             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
   12228             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   12229             :         GIR_EraseFromParent, /*InsnID*/0,
   12230             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12231             :         // GIR_Coverage, 1853,
   12232             :         GIR_Done,
   12233             :       // Label 781: @29931
   12234             :       GIM_Try, /*On fail goto*//*Label 782*/ 29979, // Rule ID 1855 //
   12235             :         GIM_CheckFeatures, GIFBS_HasDSP,
   12236             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::mips_addwc,
   12237             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
   12238             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   12239             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
   12240             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   12241             :         // (intrinsic_w_chain:{ *:[i32] } 3011:{ *:[iPTR] }, i32:{ *:[i32] }:$a, i32:{ *:[i32] }:$b)  =>  (ADDWC:{ *:[i32] } i32:{ *:[i32] }:$a, i32:{ *:[i32] }:$b)
   12242             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ADDWC,
   12243             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   12244             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
   12245             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
   12246             :         GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
   12247             :         GIR_EraseFromParent, /*InsnID*/0,
   12248             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12249             :         // GIR_Coverage, 1855,
   12250             :         GIR_Done,
   12251             :       // Label 782: @29979
   12252             :       GIM_Reject,
   12253             :     // Label 711: @29980
   12254             :     GIM_Reject,
   12255             :     // Label 16: @29981
   12256             :     GIM_Try, /*On fail goto*//*Label 783*/ 30037, // Rule ID 1523 //
   12257             :       GIM_CheckFeatures, GIFBS_HasMips3_HasStdEnc_IsGP64bit,
   12258             :       GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
   12259             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
   12260             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   12261             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR64RegClassID,
   12262             :       // (trunc:{ *:[i32] } GPR64:{ *:[i64] }:$src)  =>  (SLL:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$src, sub_32:{ *:[i32] }), 0:{ *:[i32] })
   12263             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
   12264             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::COPY,
   12265             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
   12266             :       GIR_CopySubReg, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, /*SubRegIdx*/1, // src
   12267             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
   12268             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SLL,
   12269             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   12270             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
   12271             :       GIR_AddImm, /*InsnID*/0, /*Imm*/0,
   12272             :       GIR_EraseFromParent, /*InsnID*/0,
   12273             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12274             :       // GIR_Coverage, 1523,
   12275             :       GIR_Done,
   12276             :     // Label 783: @30037
   12277             :     GIM_Reject,
   12278             :     // Label 17: @30038
   12279             :     GIM_Try, /*On fail goto*//*Label 784*/ 30097,
   12280             :       GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
   12281             :       GIM_Try, /*On fail goto*//*Label 785*/ 30070, // Rule ID 2077 //
   12282             :         GIM_CheckFeatures, GIFBS_InMicroMips,
   12283             :         GIM_CheckI64ImmPredicate, /*MI*/0, /*Predicate*/GIPFP_I64_Predicate_immLi16,
   12284             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPRMM16RegClassID,
   12285             :         // MIs[0] Operand 1
   12286             :         // No operand predicates
   12287             :         // (imm:{ *:[i32] })<<P:Predicate_immLi16>>:$imm  =>  (LI16_MM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_immLi16>>:$imm)
   12288             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::LI16_MM,
   12289             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   12290             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/0, // imm
   12291             :         GIR_EraseFromParent, /*InsnID*/0,
   12292             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12293             :         // GIR_Coverage, 2077,
   12294             :         GIR_Done,
   12295             :       // Label 785: @30070
   12296             :       GIM_Try, /*On fail goto*//*Label 786*/ 30096, // Rule ID 1771 //
   12297             :         GIM_CheckFeatures, GIFBS_InMips16Mode,
   12298             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::CPU16RegsRegClassID,
   12299             :         // MIs[0] Operand 1
   12300             :         // No operand predicates
   12301             :         // (imm:{ *:[i32] }):$imm  =>  (LwConstant32:{ *:[i32] } (imm:{ *:[i32] }):$imm, -1:{ *:[i32] })
   12302             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::LwConstant32,
   12303             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rx
   12304             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/0, // imm
   12305             :         GIR_AddImm, /*InsnID*/0, /*Imm*/-1,
   12306             :         GIR_EraseFromParent, /*InsnID*/0,
   12307             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12308             :         // GIR_Coverage, 1771,
   12309             :         GIR_Done,
   12310             :       // Label 786: @30096
   12311             :       GIM_Reject,
   12312             :     // Label 784: @30097
   12313             :     GIM_Reject,
   12314             :     // Label 18: @30098
   12315             :     GIM_Try, /*On fail goto*//*Label 787*/ 30125, // Rule ID 1530 //
   12316             :       GIM_CheckFeatures, GIFBS_HasMips3_HasStdEnc_IsGP64bit,
   12317             :       GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
   12318             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
   12319             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR64RegClassID,
   12320             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
   12321             :       // (sext:{ *:[i64] } GPR32:{ *:[i32] }:$src)  =>  (SLL64_32:{ *:[i64] } GPR32:{ *:[i32] }:$src)
   12322             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::SLL64_32,
   12323             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12324             :       // GIR_Coverage, 1530,
   12325             :       GIR_Done,
   12326             :     // Label 787: @30125
   12327             :     GIM_Reject,
   12328             :     // Label 19: @30126
   12329             :     GIM_Try, /*On fail goto*//*Label 788*/ 30210,
   12330             :       GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
   12331             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
   12332             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR64RegClassID,
   12333             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
   12334             :       GIM_Try, /*On fail goto*//*Label 789*/ 30183, // Rule ID 1529 //
   12335             :         GIM_CheckFeatures, GIFBS_HasMips3_HasStdEnc_IsGP64bit,
   12336             :         // (zext:{ *:[i64] } GPR32:{ *:[i32] }:$src)  =>  (DSRL:{ *:[i64] } (DSLL64_32:{ *:[i64] } GPR32:{ *:[i32] }:$src), 32:{ *:[i32] })
   12337             :         GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s64,
   12338             :         GIR_BuildMI, /*InsnID*/1, /*Opcode*/Mips::DSLL64_32,
   12339             :         GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
   12340             :         GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // src
   12341             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
   12342             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::DSRL,
   12343             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   12344             :         GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
   12345             :         GIR_AddImm, /*InsnID*/0, /*Imm*/32,
   12346             :         GIR_EraseFromParent, /*InsnID*/0,
   12347             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12348             :         // GIR_Coverage, 1529,
   12349             :         GIR_Done,
   12350             :       // Label 789: @30183
   12351             :       GIM_Try, /*On fail goto*//*Label 790*/ 30209, // Rule ID 1531 //
   12352             :         GIM_CheckFeatures, GIFBS_HasMips64r2_HasStdEnc_IsGP64bit_NotInMicroMips,
   12353             :         // (zext:{ *:[i64] } GPR32:{ *:[i32] }:$src)  =>  (DEXT64_32:{ *:[i64] } GPR32:{ *:[i32] }:$src, 0:{ *:[i32] }, 32:{ *:[i32] })
   12354             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::DEXT64_32,
   12355             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rt
   12356             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
   12357             :         GIR_AddImm, /*InsnID*/0, /*Imm*/0,
   12358             :         GIR_AddImm, /*InsnID*/0, /*Imm*/32,
   12359             :         GIR_EraseFromParent, /*InsnID*/0,
   12360             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12361             :         // GIR_Coverage, 1531,
   12362             :         GIR_Done,
   12363             :       // Label 790: @30209
   12364             :       GIM_Reject,
   12365             :     // Label 788: @30210
   12366             :     GIM_Reject,
   12367             :     // Label 20: @30211
   12368             :     GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 9, /*)*//*default:*//*Label 797*/ 30734,
   12369             :     /*GILLT_s32*//*Label 791*/ 30225,
   12370             :     /*GILLT_s64*//*Label 792*/ 30478, 0,
   12371             :     /*GILLT_v2s64*//*Label 793*/ 30606, 0,
   12372             :     /*GILLT_v4s32*//*Label 794*/ 30638,
   12373             :     /*GILLT_v8s16*//*Label 795*/ 30670,
   12374             :     /*GILLT_v16s8*//*Label 796*/ 30702,
   12375             :     // Label 791: @30225
   12376             :     GIM_Try, /*On fail goto*//*Label 798*/ 30477,
   12377             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
   12378             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   12379             :       GIM_Try, /*On fail goto*//*Label 799*/ 30278, // Rule ID 43 //
   12380             :         GIM_CheckFeatures, GIFBS_HasStdEnc_NotInMicroMips,
   12381             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   12382             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
   12383             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
   12384             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
   12385             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt5,
   12386             :         // MIs[1] Operand 1
   12387             :         // No operand predicates
   12388             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   12389             :         // (shl:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rt, (imm:{ *:[i32] })<<P:Predicate_immZExt5>>:$shamt)  =>  (SLL:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rt, (imm:{ *:[i32] }):$shamt)
   12390             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SLL,
   12391             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   12392             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rt
   12393             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // shamt
   12394             :         GIR_EraseFromParent, /*InsnID*/0,
   12395             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12396             :         // GIR_Coverage, 43,
   12397             :         GIR_Done,
   12398             :       // Label 799: @30278
   12399             :       GIM_Try, /*On fail goto*//*Label 800*/ 30321, // Rule ID 1753 //
   12400             :         GIM_CheckFeatures, GIFBS_InMips16Mode,
   12401             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::CPU16RegsRegClassID,
   12402             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::CPU16RegsRegClassID,
   12403             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
   12404             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
   12405             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt5,
   12406             :         // MIs[1] Operand 1
   12407             :         // No operand predicates
   12408             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   12409             :         // (shl:{ *:[i32] } CPU16Regs:{ *:[i32] }:$in, (imm:{ *:[i32] })<<P:Predicate_immZExt5>>:$imm)  =>  (SllX16:{ *:[i32] } CPU16Regs:{ *:[i32] }:$in, (imm:{ *:[i32] })<<P:Predicate_immZExt5>>:$imm)
   12410             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SllX16,
   12411             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rx
   12412             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // in
   12413             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
   12414             :         GIR_EraseFromParent, /*InsnID*/0,
   12415             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12416             :         // GIR_Coverage, 1753,
   12417             :         GIR_Done,
   12418             :       // Label 800: @30321
   12419             :       GIM_Try, /*On fail goto*//*Label 801*/ 30364, // Rule ID 2089 //
   12420             :         GIM_CheckFeatures, GIFBS_InMicroMips,
   12421             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPRMM16RegClassID,
   12422             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPRMM16RegClassID,
   12423             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
   12424             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
   12425             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt2Shift,
   12426             :         // MIs[1] Operand 1
   12427             :         // No operand predicates
   12428             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   12429             :         // (shl:{ *:[i32] } GPRMM16:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_immZExt2Shift>>:$imm)  =>  (SLL16_MM:{ *:[i32] } GPRMM16:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_immZExt2Shift>>:$imm)
   12430             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SLL16_MM,
   12431             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   12432             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
   12433             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
   12434             :         GIR_EraseFromParent, /*InsnID*/0,
   12435             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12436             :         // GIR_Coverage, 2089,
   12437             :         GIR_Done,
   12438             :       // Label 801: @30364
   12439             :       GIM_Try, /*On fail goto*//*Label 802*/ 30407, // Rule ID 2090 //
   12440             :         GIM_CheckFeatures, GIFBS_InMicroMips,
   12441             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   12442             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
   12443             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
   12444             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
   12445             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt5,
   12446             :         // MIs[1] Operand 1
   12447             :         // No operand predicates
   12448             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   12449             :         // (shl:{ *:[i32] } GPR32:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_immZExt5>>:$imm)  =>  (SLL_MM:{ *:[i32] } GPR32:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_immZExt5>>:$imm)
   12450             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SLL_MM,
   12451             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   12452             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
   12453             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
   12454             :         GIR_EraseFromParent, /*InsnID*/0,
   12455             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12456             :         // GIR_Coverage, 2090,
   12457             :         GIR_Done,
   12458             :       // Label 802: @30407
   12459             :       GIM_Try, /*On fail goto*//*Label 803*/ 30430, // Rule ID 46 //
   12460             :         GIM_CheckFeatures, GIFBS_HasStdEnc_NotInMicroMips,
   12461             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   12462             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
   12463             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
   12464             :         // (shl:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rt, GPR32Opnd:{ *:[i32] }:$rs)  =>  (SLLV:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rt, GPR32Opnd:{ *:[i32] }:$rs)
   12465             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::SLLV,
   12466             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12467             :         // GIR_Coverage, 46,
   12468             :         GIR_Done,
   12469             :       // Label 803: @30430
   12470             :       GIM_Try, /*On fail goto*//*Label 804*/ 30453, // Rule ID 1756 //
   12471             :         GIM_CheckFeatures, GIFBS_InMips16Mode,
   12472             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::CPU16RegsRegClassID,
   12473             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::CPU16RegsRegClassID,
   12474             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::CPU16RegsRegClassID,
   12475             :         // (shl:{ *:[i32] } CPU16Regs:{ *:[i32] }:$r, CPU16Regs:{ *:[i32] }:$ra)  =>  (SllvRxRy16:{ *:[i32] } CPU16Regs:{ *:[i32] }:$r, CPU16Regs:{ *:[i32] }:$ra)
   12476             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::SllvRxRy16,
   12477             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12478             :         // GIR_Coverage, 1756,
   12479             :         GIR_Done,
   12480             :       // Label 804: @30453
   12481             :       GIM_Try, /*On fail goto*//*Label 805*/ 30476, // Rule ID 2091 //
   12482             :         GIM_CheckFeatures, GIFBS_InMicroMips,
   12483             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   12484             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
   12485             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
   12486             :         // (shl:{ *:[i32] } GPR32:{ *:[i32] }:$lhs, GPR32:{ *:[i32] }:$rhs)  =>  (SLLV_MM:{ *:[i32] } GPR32:{ *:[i32] }:$lhs, GPR32:{ *:[i32] }:$rhs)
   12487             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::SLLV_MM,
   12488             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12489             :         // GIR_Coverage, 2091,
   12490             :         GIR_Done,
   12491             :       // Label 805: @30476
   12492             :       GIM_Reject,
   12493             :     // Label 798: @30477
   12494             :     GIM_Reject,
   12495             :     // Label 792: @30478
   12496             :     GIM_Try, /*On fail goto*//*Label 806*/ 30605,
   12497             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
   12498             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   12499             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR64RegClassID,
   12500             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR64RegClassID,
   12501             :       GIM_Try, /*On fail goto*//*Label 807*/ 30531, // Rule ID 188 //
   12502             :         GIM_CheckFeatures, GIFBS_HasMips3_HasStdEnc_NotInMicroMips,
   12503             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
   12504             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
   12505             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt6,
   12506             :         // MIs[1] Operand 1
   12507             :         // No operand predicates
   12508             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   12509             :         // (shl:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rt, (imm:{ *:[i32] })<<P:Predicate_immZExt6>>:$shamt)  =>  (DSLL:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rt, (imm:{ *:[i32] }):$shamt)
   12510             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::DSLL,
   12511             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   12512             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rt
   12513             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // shamt
   12514             :         GIR_EraseFromParent, /*InsnID*/0,
   12515             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12516             :         // GIR_Coverage, 188,
   12517             :         GIR_Done,
   12518             :       // Label 807: @30531
   12519             :       GIM_Try, /*On fail goto*//*Label 808*/ 30589, // Rule ID 1524 //
   12520             :         GIM_CheckFeatures, GIFBS_HasMips3_HasStdEnc_IsGP64bit,
   12521             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
   12522             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_TRUNC,
   12523             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
   12524             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::GPR64RegClassID,
   12525             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   12526             :         // (shl:{ *:[i64] } GPR64:{ *:[i64] }:$rt, (trunc:{ *:[i32] } GPR64:{ *:[i64] }:$rs))  =>  (DSLLV:{ *:[i64] } GPR64:{ *:[i64] }:$rt, (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rs, sub_32:{ *:[i32] }))
   12527             :         GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
   12528             :         GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::COPY,
   12529             :         GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
   12530             :         GIR_CopySubReg, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, /*SubRegIdx*/1, // rs
   12531             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
   12532             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::DSLLV,
   12533             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   12534             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rt
   12535             :         GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
   12536             :         GIR_EraseFromParent, /*InsnID*/0,
   12537             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12538             :         // GIR_Coverage, 1524,
   12539             :         GIR_Done,
   12540             :       // Label 808: @30589
   12541             :       GIM_Try, /*On fail goto*//*Label 809*/ 30604, // Rule ID 191 //
   12542             :         GIM_CheckFeatures, GIFBS_HasMips3_HasStdEnc_NotInMicroMips,
   12543             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
   12544             :         // (shl:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rt, GPR32Opnd:{ *:[i32] }:$rs)  =>  (DSLLV:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rt, GPR32Opnd:{ *:[i32] }:$rs)
   12545             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::DSLLV,
   12546             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12547             :         // GIR_Coverage, 191,
   12548             :         GIR_Done,
   12549             :       // Label 809: @30604
   12550             :       GIM_Reject,
   12551             :     // Label 806: @30605
   12552             :     GIM_Reject,
   12553             :     // Label 793: @30606
   12554             :     GIM_Try, /*On fail goto*//*Label 810*/ 30637, // Rule ID 928 //
   12555             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   12556             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
   12557             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
   12558             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
   12559             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128DRegClassID,
   12560             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
   12561             :       // (shl:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)  =>  (SLL_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)
   12562             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::SLL_D,
   12563             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12564             :       // GIR_Coverage, 928,
   12565             :       GIR_Done,
   12566             :     // Label 810: @30637
   12567             :     GIM_Reject,
   12568             :     // Label 794: @30638
   12569             :     GIM_Try, /*On fail goto*//*Label 811*/ 30669, // Rule ID 927 //
   12570             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   12571             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
   12572             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
   12573             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
   12574             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128WRegClassID,
   12575             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
   12576             :       // (shl:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (SLL_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
   12577             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::SLL_W,
   12578             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12579             :       // GIR_Coverage, 927,
   12580             :       GIR_Done,
   12581             :     // Label 811: @30669
   12582             :     GIM_Reject,
   12583             :     // Label 795: @30670
   12584             :     GIM_Try, /*On fail goto*//*Label 812*/ 30701, // Rule ID 926 //
   12585             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   12586             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
   12587             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
   12588             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
   12589             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128HRegClassID,
   12590             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
   12591             :       // (shl:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (SLL_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
   12592             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::SLL_H,
   12593             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12594             :       // GIR_Coverage, 926,
   12595             :       GIR_Done,
   12596             :     // Label 812: @30701
   12597             :     GIM_Reject,
   12598             :     // Label 796: @30702
   12599             :     GIM_Try, /*On fail goto*//*Label 813*/ 30733, // Rule ID 925 //
   12600             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   12601             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
   12602             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
   12603             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
   12604             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128BRegClassID,
   12605             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
   12606             :       // (shl:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)  =>  (SLL_B:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
   12607             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::SLL_B,
   12608             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12609             :       // GIR_Coverage, 925,
   12610             :       GIR_Done,
   12611             :     // Label 813: @30733
   12612             :     GIM_Reject,
   12613             :     // Label 797: @30734
   12614             :     GIM_Reject,
   12615             :     // Label 21: @30735
   12616             :     GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 9, /*)*//*default:*//*Label 820*/ 31258,
   12617             :     /*GILLT_s32*//*Label 814*/ 30749,
   12618             :     /*GILLT_s64*//*Label 815*/ 31002, 0,
   12619             :     /*GILLT_v2s64*//*Label 816*/ 31130, 0,
   12620             :     /*GILLT_v4s32*//*Label 817*/ 31162,
   12621             :     /*GILLT_v8s16*//*Label 818*/ 31194,
   12622             :     /*GILLT_v16s8*//*Label 819*/ 31226,
   12623             :     // Label 814: @30749
   12624             :     GIM_Try, /*On fail goto*//*Label 821*/ 31001,
   12625             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
   12626             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   12627             :       GIM_Try, /*On fail goto*//*Label 822*/ 30802, // Rule ID 44 //
   12628             :         GIM_CheckFeatures, GIFBS_HasStdEnc_NotInMicroMips,
   12629             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   12630             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
   12631             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
   12632             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
   12633             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt5,
   12634             :         // MIs[1] Operand 1
   12635             :         // No operand predicates
   12636             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   12637             :         // (srl:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rt, (imm:{ *:[i32] })<<P:Predicate_immZExt5>>:$shamt)  =>  (SRL:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rt, (imm:{ *:[i32] }):$shamt)
   12638             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SRL,
   12639             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   12640             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rt
   12641             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // shamt
   12642             :         GIR_EraseFromParent, /*InsnID*/0,
   12643             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12644             :         // GIR_Coverage, 44,
   12645             :         GIR_Done,
   12646             :       // Label 822: @30802
   12647             :       GIM_Try, /*On fail goto*//*Label 823*/ 30845, // Rule ID 1754 //
   12648             :         GIM_CheckFeatures, GIFBS_InMips16Mode,
   12649             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::CPU16RegsRegClassID,
   12650             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::CPU16RegsRegClassID,
   12651             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
   12652             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
   12653             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt5,
   12654             :         // MIs[1] Operand 1
   12655             :         // No operand predicates
   12656             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   12657             :         // (srl:{ *:[i32] } CPU16Regs:{ *:[i32] }:$in, (imm:{ *:[i32] })<<P:Predicate_immZExt5>>:$imm)  =>  (SrlX16:{ *:[i32] } CPU16Regs:{ *:[i32] }:$in, (imm:{ *:[i32] })<<P:Predicate_immZExt5>>:$imm)
   12658             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SrlX16,
   12659             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rx
   12660             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // in
   12661             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
   12662             :         GIR_EraseFromParent, /*InsnID*/0,
   12663             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12664             :         // GIR_Coverage, 1754,
   12665             :         GIR_Done,
   12666             :       // Label 823: @30845
   12667             :       GIM_Try, /*On fail goto*//*Label 824*/ 30888, // Rule ID 2092 //
   12668             :         GIM_CheckFeatures, GIFBS_InMicroMips,
   12669             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPRMM16RegClassID,
   12670             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPRMM16RegClassID,
   12671             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
   12672             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
   12673             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt2Shift,
   12674             :         // MIs[1] Operand 1
   12675             :         // No operand predicates
   12676             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   12677             :         // (srl:{ *:[i32] } GPRMM16:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_immZExt2Shift>>:$imm)  =>  (SRL16_MM:{ *:[i32] } GPRMM16:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_immZExt2Shift>>:$imm)
   12678             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SRL16_MM,
   12679             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   12680             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
   12681             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
   12682             :         GIR_EraseFromParent, /*InsnID*/0,
   12683             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12684             :         // GIR_Coverage, 2092,
   12685             :         GIR_Done,
   12686             :       // Label 824: @30888
   12687             :       GIM_Try, /*On fail goto*//*Label 825*/ 30931, // Rule ID 2093 //
   12688             :         GIM_CheckFeatures, GIFBS_InMicroMips,
   12689             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   12690             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
   12691             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
   12692             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
   12693             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt5,
   12694             :         // MIs[1] Operand 1
   12695             :         // No operand predicates
   12696             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   12697             :         // (srl:{ *:[i32] } GPR32:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_immZExt5>>:$imm)  =>  (SRL_MM:{ *:[i32] } GPR32:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_immZExt5>>:$imm)
   12698             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SRL_MM,
   12699             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   12700             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
   12701             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
   12702             :         GIR_EraseFromParent, /*InsnID*/0,
   12703             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12704             :         // GIR_Coverage, 2093,
   12705             :         GIR_Done,
   12706             :       // Label 825: @30931
   12707             :       GIM_Try, /*On fail goto*//*Label 826*/ 30954, // Rule ID 47 //
   12708             :         GIM_CheckFeatures, GIFBS_HasStdEnc_NotInMicroMips,
   12709             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   12710             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
   12711             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
   12712             :         // (srl:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rt, GPR32Opnd:{ *:[i32] }:$rs)  =>  (SRLV:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rt, GPR32Opnd:{ *:[i32] }:$rs)
   12713             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::SRLV,
   12714             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12715             :         // GIR_Coverage, 47,
   12716             :         GIR_Done,
   12717             :       // Label 826: @30954
   12718             :       GIM_Try, /*On fail goto*//*Label 827*/ 30977, // Rule ID 1758 //
   12719             :         GIM_CheckFeatures, GIFBS_InMips16Mode,
   12720             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::CPU16RegsRegClassID,
   12721             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::CPU16RegsRegClassID,
   12722             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::CPU16RegsRegClassID,
   12723             :         // (srl:{ *:[i32] } CPU16Regs:{ *:[i32] }:$r, CPU16Regs:{ *:[i32] }:$ra)  =>  (SrlvRxRy16:{ *:[i32] } CPU16Regs:{ *:[i32] }:$r, CPU16Regs:{ *:[i32] }:$ra)
   12724             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::SrlvRxRy16,
   12725             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12726             :         // GIR_Coverage, 1758,
   12727             :         GIR_Done,
   12728             :       // Label 827: @30977
   12729             :       GIM_Try, /*On fail goto*//*Label 828*/ 31000, // Rule ID 2094 //
   12730             :         GIM_CheckFeatures, GIFBS_InMicroMips,
   12731             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   12732             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
   12733             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
   12734             :         // (srl:{ *:[i32] } GPR32:{ *:[i32] }:$lhs, GPR32:{ *:[i32] }:$rhs)  =>  (SRLV_MM:{ *:[i32] } GPR32:{ *:[i32] }:$lhs, GPR32:{ *:[i32] }:$rhs)
   12735             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::SRLV_MM,
   12736             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12737             :         // GIR_Coverage, 2094,
   12738             :         GIR_Done,
   12739             :       // Label 828: @31000
   12740             :       GIM_Reject,
   12741             :     // Label 821: @31001
   12742             :     GIM_Reject,
   12743             :     // Label 815: @31002
   12744             :     GIM_Try, /*On fail goto*//*Label 829*/ 31129,
   12745             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
   12746             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   12747             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR64RegClassID,
   12748             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR64RegClassID,
   12749             :       GIM_Try, /*On fail goto*//*Label 830*/ 31055, // Rule ID 189 //
   12750             :         GIM_CheckFeatures, GIFBS_HasMips3_HasStdEnc_NotInMicroMips,
   12751             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
   12752             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
   12753             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt6,
   12754             :         // MIs[1] Operand 1
   12755             :         // No operand predicates
   12756             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   12757             :         // (srl:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rt, (imm:{ *:[i32] })<<P:Predicate_immZExt6>>:$shamt)  =>  (DSRL:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rt, (imm:{ *:[i32] }):$shamt)
   12758             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::DSRL,
   12759             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   12760             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rt
   12761             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // shamt
   12762             :         GIR_EraseFromParent, /*InsnID*/0,
   12763             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12764             :         // GIR_Coverage, 189,
   12765             :         GIR_Done,
   12766             :       // Label 830: @31055
   12767             :       GIM_Try, /*On fail goto*//*Label 831*/ 31113, // Rule ID 1525 //
   12768             :         GIM_CheckFeatures, GIFBS_HasMips3_HasStdEnc_IsGP64bit,
   12769             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
   12770             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_TRUNC,
   12771             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
   12772             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::GPR64RegClassID,
   12773             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   12774             :         // (srl:{ *:[i64] } GPR64:{ *:[i64] }:$rt, (trunc:{ *:[i32] } GPR64:{ *:[i64] }:$rs))  =>  (DSRLV:{ *:[i64] } GPR64:{ *:[i64] }:$rt, (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rs, sub_32:{ *:[i32] }))
   12775             :         GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
   12776             :         GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::COPY,
   12777             :         GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
   12778             :         GIR_CopySubReg, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, /*SubRegIdx*/1, // rs
   12779             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
   12780             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::DSRLV,
   12781             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   12782             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rt
   12783             :         GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
   12784             :         GIR_EraseFromParent, /*InsnID*/0,
   12785             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12786             :         // GIR_Coverage, 1525,
   12787             :         GIR_Done,
   12788             :       // Label 831: @31113
   12789             :       GIM_Try, /*On fail goto*//*Label 832*/ 31128, // Rule ID 193 //
   12790             :         GIM_CheckFeatures, GIFBS_HasMips3_HasStdEnc_NotInMicroMips,
   12791             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
   12792             :         // (srl:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rt, GPR32Opnd:{ *:[i32] }:$rs)  =>  (DSRLV:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rt, GPR32Opnd:{ *:[i32] }:$rs)
   12793             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::DSRLV,
   12794             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12795             :         // GIR_Coverage, 193,
   12796             :         GIR_Done,
   12797             :       // Label 832: @31128
   12798             :       GIM_Reject,
   12799             :     // Label 829: @31129
   12800             :     GIM_Reject,
   12801             :     // Label 816: @31130
   12802             :     GIM_Try, /*On fail goto*//*Label 833*/ 31161, // Rule ID 960 //
   12803             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   12804             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
   12805             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
   12806             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
   12807             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128DRegClassID,
   12808             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
   12809             :       // (srl:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)  =>  (SRL_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)
   12810             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::SRL_D,
   12811             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12812             :       // GIR_Coverage, 960,
   12813             :       GIR_Done,
   12814             :     // Label 833: @31161
   12815             :     GIM_Reject,
   12816             :     // Label 817: @31162
   12817             :     GIM_Try, /*On fail goto*//*Label 834*/ 31193, // Rule ID 959 //
   12818             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   12819             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
   12820             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
   12821             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
   12822             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128WRegClassID,
   12823             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
   12824             :       // (srl:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (SRL_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
   12825             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::SRL_W,
   12826             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12827             :       // GIR_Coverage, 959,
   12828             :       GIR_Done,
   12829             :     // Label 834: @31193
   12830             :     GIM_Reject,
   12831             :     // Label 818: @31194
   12832             :     GIM_Try, /*On fail goto*//*Label 835*/ 31225, // Rule ID 958 //
   12833             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   12834             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
   12835             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
   12836             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
   12837             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128HRegClassID,
   12838             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
   12839             :       // (srl:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (SRL_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
   12840             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::SRL_H,
   12841             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12842             :       // GIR_Coverage, 958,
   12843             :       GIR_Done,
   12844             :     // Label 835: @31225
   12845             :     GIM_Reject,
   12846             :     // Label 819: @31226
   12847             :     GIM_Try, /*On fail goto*//*Label 836*/ 31257, // Rule ID 957 //
   12848             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   12849             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
   12850             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
   12851             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
   12852             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128BRegClassID,
   12853             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
   12854             :       // (srl:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)  =>  (SRL_B:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
   12855             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::SRL_B,
   12856             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12857             :       // GIR_Coverage, 957,
   12858             :       GIR_Done,
   12859             :     // Label 836: @31257
   12860             :     GIM_Reject,
   12861             :     // Label 820: @31258
   12862             :     GIM_Reject,
   12863             :     // Label 22: @31259
   12864             :     GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 9, /*)*//*default:*//*Label 843*/ 31739,
   12865             :     /*GILLT_s32*//*Label 837*/ 31273,
   12866             :     /*GILLT_s64*//*Label 838*/ 31483, 0,
   12867             :     /*GILLT_v2s64*//*Label 839*/ 31611, 0,
   12868             :     /*GILLT_v4s32*//*Label 840*/ 31643,
   12869             :     /*GILLT_v8s16*//*Label 841*/ 31675,
   12870             :     /*GILLT_v16s8*//*Label 842*/ 31707,
   12871             :     // Label 837: @31273
   12872             :     GIM_Try, /*On fail goto*//*Label 844*/ 31482,
   12873             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
   12874             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   12875             :       GIM_Try, /*On fail goto*//*Label 845*/ 31326, // Rule ID 45 //
   12876             :         GIM_CheckFeatures, GIFBS_HasStdEnc_NotInMicroMips,
   12877             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   12878             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
   12879             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
   12880             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
   12881             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt5,
   12882             :         // MIs[1] Operand 1
   12883             :         // No operand predicates
   12884             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   12885             :         // (sra:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rt, (imm:{ *:[i32] })<<P:Predicate_immZExt5>>:$shamt)  =>  (SRA:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rt, (imm:{ *:[i32] }):$shamt)
   12886             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SRA,
   12887             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   12888             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rt
   12889             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // shamt
   12890             :         GIR_EraseFromParent, /*InsnID*/0,
   12891             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12892             :         // GIR_Coverage, 45,
   12893             :         GIR_Done,
   12894             :       // Label 845: @31326
   12895             :       GIM_Try, /*On fail goto*//*Label 846*/ 31369, // Rule ID 1755 //
   12896             :         GIM_CheckFeatures, GIFBS_InMips16Mode,
   12897             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::CPU16RegsRegClassID,
   12898             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::CPU16RegsRegClassID,
   12899             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
   12900             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
   12901             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt5,
   12902             :         // MIs[1] Operand 1
   12903             :         // No operand predicates
   12904             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   12905             :         // (sra:{ *:[i32] } CPU16Regs:{ *:[i32] }:$in, (imm:{ *:[i32] })<<P:Predicate_immZExt5>>:$imm)  =>  (SraX16:{ *:[i32] } CPU16Regs:{ *:[i32] }:$in, (imm:{ *:[i32] })<<P:Predicate_immZExt5>>:$imm)
   12906             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SraX16,
   12907             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rx
   12908             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // in
   12909             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
   12910             :         GIR_EraseFromParent, /*InsnID*/0,
   12911             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12912             :         // GIR_Coverage, 1755,
   12913             :         GIR_Done,
   12914             :       // Label 846: @31369
   12915             :       GIM_Try, /*On fail goto*//*Label 847*/ 31412, // Rule ID 2095 //
   12916             :         GIM_CheckFeatures, GIFBS_InMicroMips,
   12917             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   12918             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
   12919             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
   12920             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
   12921             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt5,
   12922             :         // MIs[1] Operand 1
   12923             :         // No operand predicates
   12924             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   12925             :         // (sra:{ *:[i32] } GPR32:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_immZExt5>>:$imm)  =>  (SRA_MM:{ *:[i32] } GPR32:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_immZExt5>>:$imm)
   12926             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SRA_MM,
   12927             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   12928             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
   12929             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
   12930             :         GIR_EraseFromParent, /*InsnID*/0,
   12931             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12932             :         // GIR_Coverage, 2095,
   12933             :         GIR_Done,
   12934             :       // Label 847: @31412
   12935             :       GIM_Try, /*On fail goto*//*Label 848*/ 31435, // Rule ID 48 //
   12936             :         GIM_CheckFeatures, GIFBS_HasStdEnc_NotInMicroMips,
   12937             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   12938             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
   12939             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
   12940             :         // (sra:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rt, GPR32Opnd:{ *:[i32] }:$rs)  =>  (SRAV:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rt, GPR32Opnd:{ *:[i32] }:$rs)
   12941             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::SRAV,
   12942             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12943             :         // GIR_Coverage, 48,
   12944             :         GIR_Done,
   12945             :       // Label 848: @31435
   12946             :       GIM_Try, /*On fail goto*//*Label 849*/ 31458, // Rule ID 1757 //
   12947             :         GIM_CheckFeatures, GIFBS_InMips16Mode,
   12948             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::CPU16RegsRegClassID,
   12949             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::CPU16RegsRegClassID,
   12950             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::CPU16RegsRegClassID,
   12951             :         // (sra:{ *:[i32] } CPU16Regs:{ *:[i32] }:$r, CPU16Regs:{ *:[i32] }:$ra)  =>  (SravRxRy16:{ *:[i32] } CPU16Regs:{ *:[i32] }:$r, CPU16Regs:{ *:[i32] }:$ra)
   12952             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::SravRxRy16,
   12953             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12954             :         // GIR_Coverage, 1757,
   12955             :         GIR_Done,
   12956             :       // Label 849: @31458
   12957             :       GIM_Try, /*On fail goto*//*Label 850*/ 31481, // Rule ID 2096 //
   12958             :         GIM_CheckFeatures, GIFBS_InMicroMips,
   12959             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   12960             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
   12961             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
   12962             :         // (sra:{ *:[i32] } GPR32:{ *:[i32] }:$lhs, GPR32:{ *:[i32] }:$rhs)  =>  (SRAV_MM:{ *:[i32] } GPR32:{ *:[i32] }:$lhs, GPR32:{ *:[i32] }:$rhs)
   12963             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::SRAV_MM,
   12964             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12965             :         // GIR_Coverage, 2096,
   12966             :         GIR_Done,
   12967             :       // Label 850: @31481
   12968             :       GIM_Reject,
   12969             :     // Label 844: @31482
   12970             :     GIM_Reject,
   12971             :     // Label 838: @31483
   12972             :     GIM_Try, /*On fail goto*//*Label 851*/ 31610,
   12973             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
   12974             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   12975             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR64RegClassID,
   12976             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR64RegClassID,
   12977             :       GIM_Try, /*On fail goto*//*Label 852*/ 31536, // Rule ID 190 //
   12978             :         GIM_CheckFeatures, GIFBS_HasMips3_HasStdEnc_NotInMicroMips,
   12979             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
   12980             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
   12981             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_immZExt6,
   12982             :         // MIs[1] Operand 1
   12983             :         // No operand predicates
   12984             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   12985             :         // (sra:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rt, (imm:{ *:[i32] })<<P:Predicate_immZExt6>>:$shamt)  =>  (DSRA:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rt, (imm:{ *:[i32] }):$shamt)
   12986             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::DSRA,
   12987             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   12988             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rt
   12989             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // shamt
   12990             :         GIR_EraseFromParent, /*InsnID*/0,
   12991             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   12992             :         // GIR_Coverage, 190,
   12993             :         GIR_Done,
   12994             :       // Label 852: @31536
   12995             :       GIM_Try, /*On fail goto*//*Label 853*/ 31594, // Rule ID 1526 //
   12996             :         GIM_CheckFeatures, GIFBS_HasMips3_HasStdEnc_IsGP64bit,
   12997             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
   12998             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_TRUNC,
   12999             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
   13000             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::GPR64RegClassID,
   13001             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   13002             :         // (sra:{ *:[i64] } GPR64:{ *:[i64] }:$rt, (trunc:{ *:[i32] } GPR64:{ *:[i64] }:$rs))  =>  (DSRAV:{ *:[i64] } GPR64:{ *:[i64] }:$rt, (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$rs, sub_32:{ *:[i32] }))
   13003             :         GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
   13004             :         GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::COPY,
   13005             :         GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
   13006             :         GIR_CopySubReg, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, /*SubRegIdx*/1, // rs
   13007             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
   13008             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::DSRAV,
   13009             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   13010             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rt
   13011             :         GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
   13012             :         GIR_EraseFromParent, /*InsnID*/0,
   13013             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13014             :         // GIR_Coverage, 1526,
   13015             :         GIR_Done,
   13016             :       // Label 853: @31594
   13017             :       GIM_Try, /*On fail goto*//*Label 854*/ 31609, // Rule ID 192 //
   13018             :         GIM_CheckFeatures, GIFBS_HasMips3_HasStdEnc_NotInMicroMips,
   13019             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
   13020             :         // (sra:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rt, GPR32Opnd:{ *:[i32] }:$rs)  =>  (DSRAV:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rt, GPR32Opnd:{ *:[i32] }:$rs)
   13021             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::DSRAV,
   13022             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13023             :         // GIR_Coverage, 192,
   13024             :         GIR_Done,
   13025             :       // Label 854: @31609
   13026             :       GIM_Reject,
   13027             :     // Label 851: @31610
   13028             :     GIM_Reject,
   13029             :     // Label 839: @31611
   13030             :     GIM_Try, /*On fail goto*//*Label 855*/ 31642, // Rule ID 944 //
   13031             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   13032             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
   13033             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
   13034             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
   13035             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128DRegClassID,
   13036             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
   13037             :       // (sra:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)  =>  (SRA_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws, MSA128DOpnd:{ *:[v2i64] }:$wt)
   13038             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::SRA_D,
   13039             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13040             :       // GIR_Coverage, 944,
   13041             :       GIR_Done,
   13042             :     // Label 855: @31642
   13043             :     GIM_Reject,
   13044             :     // Label 840: @31643
   13045             :     GIM_Try, /*On fail goto*//*Label 856*/ 31674, // Rule ID 943 //
   13046             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   13047             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
   13048             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
   13049             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
   13050             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128WRegClassID,
   13051             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
   13052             :       // (sra:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)  =>  (SRA_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws, MSA128WOpnd:{ *:[v4i32] }:$wt)
   13053             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::SRA_W,
   13054             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13055             :       // GIR_Coverage, 943,
   13056             :       GIR_Done,
   13057             :     // Label 856: @31674
   13058             :     GIM_Reject,
   13059             :     // Label 841: @31675
   13060             :     GIM_Try, /*On fail goto*//*Label 857*/ 31706, // Rule ID 942 //
   13061             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   13062             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
   13063             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
   13064             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
   13065             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128HRegClassID,
   13066             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128HRegClassID,
   13067             :       // (sra:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)  =>  (SRA_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws, MSA128HOpnd:{ *:[v8i16] }:$wt)
   13068             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::SRA_H,
   13069             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13070             :       // GIR_Coverage, 942,
   13071             :       GIR_Done,
   13072             :     // Label 857: @31706
   13073             :     GIM_Reject,
   13074             :     // Label 842: @31707
   13075             :     GIM_Try, /*On fail goto*//*Label 858*/ 31738, // Rule ID 941 //
   13076             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   13077             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
   13078             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
   13079             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
   13080             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128BRegClassID,
   13081             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128BRegClassID,
   13082             :       // (sra:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)  =>  (SRA_B:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws, MSA128BOpnd:{ *:[v16i8] }:$wt)
   13083             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::SRA_B,
   13084             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13085             :       // GIR_Coverage, 941,
   13086             :       GIR_Done,
   13087             :     // Label 858: @31738
   13088             :     GIM_Reject,
   13089             :     // Label 843: @31739
   13090             :     GIM_Reject,
   13091             :     // Label 23: @31740
   13092             :     GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 3, /*)*//*default:*//*Label 861*/ 33193,
   13093             :     /*GILLT_s32*//*Label 859*/ 31748,
   13094             :     /*GILLT_s64*//*Label 860*/ 32547,
   13095             :     // Label 859: @31748
   13096             :     GIM_Try, /*On fail goto*//*Label 862*/ 31787, // Rule ID 267 //
   13097             :       GIM_CheckFeatures, GIFBS_HasStdEnc_NotMips4_32,
   13098             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
   13099             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   13100             :       GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
   13101             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   13102             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
   13103             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
   13104             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
   13105             :       // (select:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$cond, GPR32Opnd:{ *:[i32] }:$T, GPR32Opnd:{ *:[i32] }:$F)  =>  (PseudoSELECT_I:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$cond, GPR32Opnd:{ *:[i32] }:$T, GPR32Opnd:{ *:[i32] }:$F)
   13106             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::PseudoSELECT_I,
   13107             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13108             :       // GIR_Coverage, 267,
   13109             :       GIR_Done,
   13110             :     // Label 862: @31787
   13111             :     GIM_Try, /*On fail goto*//*Label 863*/ 31826, // Rule ID 269 //
   13112             :       GIM_CheckFeatures, GIFBS_HasStdEnc_NotMips4_32,
   13113             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
   13114             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   13115             :       GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
   13116             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::FGR32RegClassID,
   13117             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
   13118             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::FGR32RegClassID,
   13119             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::FGR32RegClassID,
   13120             :       // (select:{ *:[f32] } GPR32Opnd:{ *:[i32] }:$cond, FGR32Opnd:{ *:[f32] }:$T, FGR32Opnd:{ *:[f32] }:$F)  =>  (PseudoSELECT_S:{ *:[f32] } GPR32Opnd:{ *:[i32] }:$cond, FGR32Opnd:{ *:[f32] }:$T, FGR32Opnd:{ *:[f32] }:$F)
   13121             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::PseudoSELECT_S,
   13122             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13123             :       // GIR_Coverage, 269,
   13124             :       GIR_Done,
   13125             :     // Label 863: @31826
   13126             :     GIM_Try, /*On fail goto*//*Label 864*/ 31882, // Rule ID 306 //
   13127             :       GIM_CheckFeatures, GIFBS_HasMips32r6_HasStdEnc_IsNotSoftFloat_NotInMicroMips,
   13128             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
   13129             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   13130             :       GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
   13131             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::FGR32RegClassID,
   13132             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::FGRCCRegClassID,
   13133             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::FGR32RegClassID,
   13134             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::FGR32RegClassID,
   13135             :       // (select:{ *:[f32] } FGRCCOpnd:{ *:[i32] }:$fd_in, FGR32Opnd:{ *:[f32] }:$ft, FGR32Opnd:{ *:[f32] }:$fs)  =>  (SEL_S:{ *:[f32] } FGRCCOpnd:{ *:[i32] }:$fd_in, FGR32Opnd:{ *:[f32] }:$fs, FGR32Opnd:{ *:[f32] }:$ft)
   13136             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SEL_S,
   13137             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // fd
   13138             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // fd_in
   13139             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // fs
   13140             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ft
   13141             :       GIR_EraseFromParent, /*InsnID*/0,
   13142             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13143             :       // GIR_Coverage, 306,
   13144             :       GIR_Done,
   13145             :     // Label 864: @31882
   13146             :     GIM_Try, /*On fail goto*//*Label 865*/ 31938, // Rule ID 1179 //
   13147             :       GIM_CheckFeatures, GIFBS_HasMips32r6_InMicroMips,
   13148             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
   13149             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   13150             :       GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
   13151             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::FGR32RegClassID,
   13152             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::FGRCCRegClassID,
   13153             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::FGR32RegClassID,
   13154             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::FGR32RegClassID,
   13155             :       // (select:{ *:[f32] } FGRCCOpnd:{ *:[i32] }:$fd_in, FGR32Opnd:{ *:[f32] }:$ft, FGR32Opnd:{ *:[f32] }:$fs)  =>  (SEL_S_MMR6:{ *:[f32] } FGRCCOpnd:{ *:[i32] }:$fd_in, FGR32Opnd:{ *:[f32] }:$fs, FGR32Opnd:{ *:[f32] }:$ft)
   13156             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SEL_S_MMR6,
   13157             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // fd
   13158             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // fd_in
   13159             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // fs
   13160             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ft
   13161             :       GIR_EraseFromParent, /*InsnID*/0,
   13162             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13163             :       // GIR_Coverage, 1179,
   13164             :       GIR_Done,
   13165             :     // Label 865: @31938
   13166             :     GIM_Try, /*On fail goto*//*Label 866*/ 31994, // Rule ID 1576 //
   13167             :       GIM_CheckFeatures, GIFBS_HasMips4_32_HasStdEnc_NotInMicroMips_NotMips32r6_NotMips64r6,
   13168             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
   13169             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   13170             :       GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
   13171             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   13172             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
   13173             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
   13174             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
   13175             :       // (select:{ *:[i32] } GPR32:{ *:[i32] }:$cond, GPR32:{ *:[i32] }:$T, GPR32:{ *:[i32] }:$F)  =>  (MOVN_I_I:{ *:[i32] } GPR32:{ *:[i32] }:$T, GPR32:{ *:[i32] }:$cond, GPR32:{ *:[i32] }:$F)
   13176             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MOVN_I_I,
   13177             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   13178             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // T
   13179             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // cond
   13180             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // F
   13181             :       GIR_EraseFromParent, /*InsnID*/0,
   13182             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13183             :       // GIR_Coverage, 1576,
   13184             :       GIR_Done,
   13185             :     // Label 866: @31994
   13186             :     GIM_Try, /*On fail goto*//*Label 867*/ 32050, // Rule ID 1615 //
   13187             :       GIM_CheckFeatures, GIFBS_HasMips4_32_HasStdEnc_IsGP64bit_NotInMicroMips_NotMips32r6_NotMips64r6,
   13188             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
   13189             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   13190             :       GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
   13191             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   13192             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR64RegClassID,
   13193             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
   13194             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
   13195             :       // (select:{ *:[i32] } GPR64:{ *:[i64] }:$cond, GPR32:{ *:[i32] }:$T, GPR32:{ *:[i32] }:$F)  =>  (MOVN_I64_I:{ *:[i32] } GPR32:{ *:[i32] }:$T, GPR64:{ *:[i64] }:$cond, GPR32:{ *:[i32] }:$F)
   13196             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MOVN_I64_I,
   13197             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   13198             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // T
   13199             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // cond
   13200             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // F
   13201             :       GIR_EraseFromParent, /*InsnID*/0,
   13202             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13203             :       // GIR_Coverage, 1615,
   13204             :       GIR_Done,
   13205             :     // Label 867: @32050
   13206             :     GIM_Try, /*On fail goto*//*Label 868*/ 32106, // Rule ID 1631 //
   13207             :       GIM_CheckFeatures, GIFBS_HasMips4_32_HasStdEnc_NotInMicroMips_NotMips32r6_NotMips64r6,
   13208             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
   13209             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   13210             :       GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
   13211             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::FGR32RegClassID,
   13212             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
   13213             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::FGR32RegClassID,
   13214             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::FGR32RegClassID,
   13215             :       // (select:{ *:[f32] } GPR32:{ *:[i32] }:$cond, FGR32:{ *:[f32] }:$T, FGR32:{ *:[f32] }:$F)  =>  (MOVN_I_S:{ *:[f32] } FGR32:{ *:[f32] }:$T, GPR32:{ *:[i32] }:$cond, FGR32:{ *:[f32] }:$F)
   13216             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MOVN_I_S,
   13217             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // fd
   13218             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // T
   13219             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // cond
   13220             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // F
   13221             :       GIR_EraseFromParent, /*InsnID*/0,
   13222             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13223             :       // GIR_Coverage, 1631,
   13224             :       GIR_Done,
   13225             :     // Label 868: @32106
   13226             :     GIM_Try, /*On fail goto*//*Label 869*/ 32162, // Rule ID 1644 //
   13227             :       GIM_CheckFeatures, GIFBS_HasMips4_32_HasStdEnc_IsGP64bit_NotInMicroMips_NotMips32r6_NotMips64r6,
   13228             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
   13229             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   13230             :       GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
   13231             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::FGR32RegClassID,
   13232             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR64RegClassID,
   13233             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::FGR32RegClassID,
   13234             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::FGR32RegClassID,
   13235             :       // (select:{ *:[f32] } GPR64:{ *:[i64] }:$cond, FGR32:{ *:[f32] }:$T, FGR32:{ *:[f32] }:$F)  =>  (MOVN_I64_S:{ *:[f32] } FGR32:{ *:[f32] }:$T, GPR64:{ *:[i64] }:$cond, FGR32:{ *:[f32] }:$F)
   13236             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MOVN_I64_S,
   13237             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // fd
   13238             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // T
   13239             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // cond
   13240             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // F
   13241             :       GIR_EraseFromParent, /*InsnID*/0,
   13242             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13243             :       // GIR_Coverage, 1644,
   13244             :       GIR_Done,
   13245             :     // Label 869: @32162
   13246             :     GIM_Try, /*On fail goto*//*Label 870*/ 32218, // Rule ID 1802 //
   13247             :       GIM_CheckFeatures, GIFBS_InMips16Mode,
   13248             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
   13249             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   13250             :       GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
   13251             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::CPU16RegsRegClassID,
   13252             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::CPU16RegsRegClassID,
   13253             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::CPU16RegsRegClassID,
   13254             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::CPU16RegsRegClassID,
   13255             :       // (select:{ *:[i32] } CPU16Regs:{ *:[i32] }:$a, CPU16Regs:{ *:[i32] }:$x, CPU16Regs:{ *:[i32] }:$y)  =>  (SelBneZ:{ *:[i32] } CPU16Regs:{ *:[i32] }:$x, CPU16Regs:{ *:[i32] }:$y, CPU16Regs:{ *:[i32] }:$a)
   13256             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::SelBneZ,
   13257             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd_
   13258             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // x
   13259             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // y
   13260             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // a
   13261             :       GIR_EraseFromParent, /*InsnID*/0,
   13262             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13263             :       // GIR_Coverage, 1802,
   13264             :       GIR_Done,
   13265             :     // Label 870: @32218
   13266             :     GIM_Try, /*On fail goto*//*Label 871*/ 32274, // Rule ID 2146 //
   13267             :       GIM_CheckFeatures, GIFBS_HasMips4_32_HasStdEnc_NotMips32r6_NotMips64r6,
   13268             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
   13269             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   13270             :       GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
   13271             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   13272             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
   13273             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
   13274             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
   13275             :       // (select:{ *:[i32] } GPR32:{ *:[i32] }:$cond, GPR32:{ *:[i32] }:$T, GPR32:{ *:[i32] }:$F)  =>  (MOVN_I_MM:{ *:[i32] } GPR32:{ *:[i32] }:$T, GPR32:{ *:[i32] }:$cond, GPR32:{ *:[i32] }:$F)
   13276             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MOVN_I_MM,
   13277             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   13278             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // T
   13279             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // cond
   13280             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // F
   13281             :       GIR_EraseFromParent, /*InsnID*/0,
   13282             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13283             :       // GIR_Coverage, 2146,
   13284             :       GIR_Done,
   13285             :     // Label 871: @32274
   13286             :     GIM_Try, /*On fail goto*//*Label 872*/ 32330, // Rule ID 2160 //
   13287             :       GIM_CheckFeatures, GIFBS_InMicroMips_NotMips32r6,
   13288             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
   13289             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   13290             :       GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
   13291             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   13292             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
   13293             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR32RegClassID,
   13294             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR32RegClassID,
   13295             :       // (select:{ *:[i32] } GPR32:{ *:[i32] }:$cond, GPR32:{ *:[i32] }:$T, GPR32:{ *:[i32] }:$F)  =>  (MOVN_I_MM:{ *:[i32] } GPR32:{ *:[i32] }:$T, GPR32:{ *:[i32] }:$cond, GPR32:{ *:[i32] }:$F)
   13296             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MOVN_I_MM,
   13297             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   13298             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // T
   13299             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // cond
   13300             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // F
   13301             :       GIR_EraseFromParent, /*InsnID*/0,
   13302             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13303             :       // GIR_Coverage, 2160,
   13304             :       GIR_Done,
   13305             :     // Label 872: @32330
   13306             :     GIM_Try, /*On fail goto*//*Label 873*/ 32386, // Rule ID 2189 //
   13307             :       GIM_CheckFeatures, GIFBS_InMicroMips_NotMips32r6,
   13308             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
   13309             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   13310             :       GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
   13311             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::FGR32RegClassID,
   13312             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
   13313             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::FGR32RegClassID,
   13314             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::FGR32RegClassID,
   13315             :       // (select:{ *:[f32] } GPR32:{ *:[i32] }:$cond, FGR32:{ *:[f32] }:$T, FGR32:{ *:[f32] }:$F)  =>  (MOVN_I_S_MM:{ *:[f32] } FGR32:{ *:[f32] }:$T, GPR32:{ *:[i32] }:$cond, FGR32:{ *:[f32] }:$F)
   13316             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MOVN_I_S_MM,
   13317             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // fd
   13318             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // T
   13319             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // cond
   13320             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // F
   13321             :       GIR_EraseFromParent, /*InsnID*/0,
   13322             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13323             :       // GIR_Coverage, 2189,
   13324             :       GIR_Done,
   13325             :     // Label 873: @32386
   13326             :     GIM_Try, /*On fail goto*//*Label 874*/ 32466, // Rule ID 1713 //
   13327             :       GIM_CheckFeatures, GIFBS_HasMips32r6_HasStdEnc_NotInMicroMips,
   13328             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
   13329             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   13330             :       GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
   13331             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   13332             :       // (select:{ *:[i32] } i32:{ *:[i32] }:$cond, i32:{ *:[i32] }:$t, i32:{ *:[i32] }:$f)  =>  (OR:{ *:[i32] } (SELNEZ:{ *:[i32] } i32:{ *:[i32] }:$t, i32:{ *:[i32] }:$cond), (SELEQZ:{ *:[i32] } i32:{ *:[i32] }:$f, i32:{ *:[i32] }:$cond))
   13333             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
   13334             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
   13335             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/Mips::SELEQZ,
   13336             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
   13337             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/3, // f
   13338             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // cond
   13339             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
   13340             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/Mips::SELNEZ,
   13341             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
   13342             :       GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // t
   13343             :       GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // cond
   13344             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
   13345             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::OR,
   13346             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   13347             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
   13348             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/0,
   13349             :       GIR_EraseFromParent, /*InsnID*/0,
   13350             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13351             :       // GIR_Coverage, 1713,
   13352             :       GIR_Done,
   13353             :     // Label 874: @32466
   13354             :     GIM_Try, /*On fail goto*//*Label 875*/ 32546, // Rule ID 2206 //
   13355             :       GIM_CheckFeatures, GIFBS_HasMips32r6_InMicroMips,
   13356             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
   13357             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   13358             :       GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
   13359             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   13360             :       // (select:{ *:[i32] } i32:{ *:[i32] }:$cond, i32:{ *:[i32] }:$t, i32:{ *:[i32] }:$f)  =>  (OR_MM:{ *:[i32] } (SELNEZ_MMR6:{ *:[i32] } i32:{ *:[i32] }:$t, i32:{ *:[i32] }:$cond), (SELEQZ_MMR6:{ *:[i32] } i32:{ *:[i32] }:$f, i32:{ *:[i32] }:$cond))
   13361             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
   13362             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
   13363             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/Mips::SELEQZ_MMR6,
   13364             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
   13365             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/3, // f
   13366             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // cond
   13367             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
   13368             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/Mips::SELNEZ_MMR6,
   13369             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
   13370             :       GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // t
   13371             :       GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // cond
   13372             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
   13373             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::OR_MM,
   13374             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   13375             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
   13376             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/0,
   13377             :       GIR_EraseFromParent, /*InsnID*/0,
   13378             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13379             :       // GIR_Coverage, 2206,
   13380             :       GIR_Done,
   13381             :     // Label 875: @32546
   13382             :     GIM_Reject,
   13383             :     // Label 860: @32547
   13384             :     GIM_Try, /*On fail goto*//*Label 876*/ 32586, // Rule ID 268 //
   13385             :       GIM_CheckFeatures, GIFBS_HasStdEnc_NotMips4_32,
   13386             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
   13387             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
   13388             :       GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
   13389             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR64RegClassID,
   13390             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
   13391             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR64RegClassID,
   13392             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR64RegClassID,
   13393             :       // (select:{ *:[i64] } GPR32Opnd:{ *:[i32] }:$cond, GPR64Opnd:{ *:[i64] }:$T, GPR64Opnd:{ *:[i64] }:$F)  =>  (PseudoSELECT_I64:{ *:[i64] } GPR32Opnd:{ *:[i32] }:$cond, GPR64Opnd:{ *:[i64] }:$T, GPR64Opnd:{ *:[i64] }:$F)
   13394             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::PseudoSELECT_I64,
   13395             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13396             :       // GIR_Coverage, 268,
   13397             :       GIR_Done,
   13398             :     // Label 876: @32586
   13399             :     GIM_Try, /*On fail goto*//*Label 877*/ 32625, // Rule ID 270 //
   13400             :       GIM_CheckFeatures, GIFBS_HasStdEnc_NotFP64bit_NotMips4_32,
   13401             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
   13402             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
   13403             :       GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
   13404             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::AFGR64RegClassID,
   13405             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
   13406             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::AFGR64RegClassID,
   13407             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::AFGR64RegClassID,
   13408             :       // (select:{ *:[f64] } GPR32Opnd:{ *:[i32] }:$cond, AFGR64Opnd:{ *:[f64] }:$T, AFGR64Opnd:{ *:[f64] }:$F)  =>  (PseudoSELECT_D32:{ *:[f64] } GPR32Opnd:{ *:[i32] }:$cond, AFGR64Opnd:{ *:[f64] }:$T, AFGR64Opnd:{ *:[f64] }:$F)
   13409             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::PseudoSELECT_D32,
   13410             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13411             :       // GIR_Coverage, 270,
   13412             :       GIR_Done,
   13413             :     // Label 877: @32625
   13414             :     GIM_Try, /*On fail goto*//*Label 878*/ 32664, // Rule ID 271 //
   13415             :       GIM_CheckFeatures, GIFBS_HasStdEnc_IsFP64bit_NotMips4_32,
   13416             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
   13417             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
   13418             :       GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
   13419             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::FGR64RegClassID,
   13420             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
   13421             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::FGR64RegClassID,
   13422             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::FGR64RegClassID,
   13423             :       // (select:{ *:[f64] } GPR32Opnd:{ *:[i32] }:$cond, FGR64Opnd:{ *:[f64] }:$T, FGR64Opnd:{ *:[f64] }:$F)  =>  (PseudoSELECT_D64:{ *:[f64] } GPR32Opnd:{ *:[i32] }:$cond, FGR64Opnd:{ *:[f64] }:$T, FGR64Opnd:{ *:[f64] }:$F)
   13424             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::PseudoSELECT_D64,
   13425             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13426             :       // GIR_Coverage, 271,
   13427             :       GIR_Done,
   13428             :     // Label 878: @32664
   13429             :     GIM_Try, /*On fail goto*//*Label 879*/ 32720, // Rule ID 1612 //
   13430             :       GIM_CheckFeatures, GIFBS_HasMips4_32_HasStdEnc_IsGP64bit_NotInMicroMips_NotMips32r6_NotMips64r6,
   13431             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
   13432             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
   13433             :       GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
   13434             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR64RegClassID,
   13435             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
   13436             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR64RegClassID,
   13437             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR64RegClassID,
   13438             :       // (select:{ *:[i64] } GPR32:{ *:[i32] }:$cond, GPR64:{ *:[i64] }:$T, GPR64:{ *:[i64] }:$F)  =>  (MOVN_I_I64:{ *:[i64] } GPR64:{ *:[i64] }:$T, GPR32:{ *:[i32] }:$cond, GPR64:{ *:[i64] }:$F)
   13439             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MOVN_I_I64,
   13440             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   13441             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // T
   13442             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // cond
   13443             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // F
   13444             :       GIR_EraseFromParent, /*InsnID*/0,
   13445             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13446             :       // GIR_Coverage, 1612,
   13447             :       GIR_Done,
   13448             :     // Label 879: @32720
   13449             :     GIM_Try, /*On fail goto*//*Label 880*/ 32776, // Rule ID 1618 //
   13450             :       GIM_CheckFeatures, GIFBS_HasMips4_32_HasStdEnc_IsGP64bit_NotInMicroMips_NotMips32r6_NotMips64r6,
   13451             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
   13452             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
   13453             :       GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
   13454             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR64RegClassID,
   13455             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR64RegClassID,
   13456             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::GPR64RegClassID,
   13457             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::GPR64RegClassID,
   13458             :       // (select:{ *:[i64] } GPR64:{ *:[i64] }:$cond, GPR64:{ *:[i64] }:$T, GPR64:{ *:[i64] }:$F)  =>  (MOVN_I64_I64:{ *:[i64] } GPR64:{ *:[i64] }:$T, GPR64:{ *:[i64] }:$cond, GPR64:{ *:[i64] }:$F)
   13459             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MOVN_I64_I64,
   13460             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   13461             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // T
   13462             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // cond
   13463             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // F
   13464             :       GIR_EraseFromParent, /*InsnID*/0,
   13465             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13466             :       // GIR_Coverage, 1618,
   13467             :       GIR_Done,
   13468             :     // Label 880: @32776
   13469             :     GIM_Try, /*On fail goto*//*Label 881*/ 32832, // Rule ID 1657 //
   13470             :       GIM_CheckFeatures, GIFBS_HasMips4_32_HasStdEnc_NotFP64bit_NotInMicroMips_NotMips32r6_NotMips64r6,
   13471             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
   13472             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
   13473             :       GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
   13474             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::AFGR64RegClassID,
   13475             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
   13476             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::AFGR64RegClassID,
   13477             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::AFGR64RegClassID,
   13478             :       // (select:{ *:[f64] } GPR32:{ *:[i32] }:$cond, AFGR64:{ *:[f64] }:$T, AFGR64:{ *:[f64] }:$F)  =>  (MOVN_I_D32:{ *:[f64] } AFGR64:{ *:[f64] }:$T, GPR32:{ *:[i32] }:$cond, AFGR64:{ *:[f64] }:$F)
   13479             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MOVN_I_D32,
   13480             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // fd
   13481             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // T
   13482             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // cond
   13483             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // F
   13484             :       GIR_EraseFromParent, /*InsnID*/0,
   13485             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13486             :       // GIR_Coverage, 1657,
   13487             :       GIR_Done,
   13488             :     // Label 881: @32832
   13489             :     GIM_Try, /*On fail goto*//*Label 882*/ 32888, // Rule ID 1680 //
   13490             :       GIM_CheckFeatures, GIFBS_HasMips4_32_HasStdEnc_IsFP64bit_NotInMicroMips_NotMips32r6_NotMips64r6,
   13491             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
   13492             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
   13493             :       GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
   13494             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::FGR64RegClassID,
   13495             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
   13496             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::FGR64RegClassID,
   13497             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::FGR64RegClassID,
   13498             :       // (select:{ *:[f64] } GPR32:{ *:[i32] }:$cond, FGR64:{ *:[f64] }:$T, FGR64:{ *:[f64] }:$F)  =>  (MOVN_I_D64:{ *:[f64] } FGR64:{ *:[f64] }:$T, GPR32:{ *:[i32] }:$cond, FGR64:{ *:[f64] }:$F)
   13499             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MOVN_I_D64,
   13500             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // fd
   13501             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // T
   13502             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // cond
   13503             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // F
   13504             :       GIR_EraseFromParent, /*InsnID*/0,
   13505             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13506             :       // GIR_Coverage, 1680,
   13507             :       GIR_Done,
   13508             :     // Label 882: @32888
   13509             :     GIM_Try, /*On fail goto*//*Label 883*/ 32944, // Rule ID 1683 //
   13510             :       GIM_CheckFeatures, GIFBS_HasMips4_32_HasStdEnc_IsFP64bit_NotInMicroMips_NotMips32r6_NotMips64r6,
   13511             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
   13512             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
   13513             :       GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
   13514             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::FGR64RegClassID,
   13515             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR64RegClassID,
   13516             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::FGR64RegClassID,
   13517             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::FGR64RegClassID,
   13518             :       // (select:{ *:[f64] } GPR64:{ *:[i64] }:$cond, FGR64:{ *:[f64] }:$T, FGR64:{ *:[f64] }:$F)  =>  (MOVN_I64_D64:{ *:[f64] } FGR64:{ *:[f64] }:$T, GPR64:{ *:[i64] }:$cond, FGR64:{ *:[f64] }:$F)
   13519             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MOVN_I64_D64,
   13520             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // fd
   13521             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // T
   13522             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // cond
   13523             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // F
   13524             :       GIR_EraseFromParent, /*InsnID*/0,
   13525             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13526             :       // GIR_Coverage, 1683,
   13527             :       GIR_Done,
   13528             :     // Label 883: @32944
   13529             :     GIM_Try, /*On fail goto*//*Label 884*/ 33000, // Rule ID 2202 //
   13530             :       GIM_CheckFeatures, GIFBS_InMicroMips_NotFP64bit_NotMips32r6,
   13531             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
   13532             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
   13533             :       GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
   13534             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::AFGR64RegClassID,
   13535             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
   13536             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::AFGR64RegClassID,
   13537             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::AFGR64RegClassID,
   13538             :       // (select:{ *:[f64] } GPR32:{ *:[i32] }:$cond, AFGR64:{ *:[f64] }:$T, AFGR64:{ *:[f64] }:$F)  =>  (MOVN_I_D32_MM:{ *:[f64] } AFGR64:{ *:[f64] }:$T, GPR32:{ *:[i32] }:$cond, AFGR64:{ *:[f64] }:$F)
   13539             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MOVN_I_D32_MM,
   13540             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // fd
   13541             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // T
   13542             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // cond
   13543             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // F
   13544             :       GIR_EraseFromParent, /*InsnID*/0,
   13545             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13546             :       // GIR_Coverage, 2202,
   13547             :       GIR_Done,
   13548             :     // Label 884: @33000
   13549             :     GIM_Try, /*On fail goto*//*Label 885*/ 33080, // Rule ID 1716 //
   13550             :       GIM_CheckFeatures, GIFBS_HasMips64r6_HasStdEnc,
   13551             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
   13552             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
   13553             :       GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
   13554             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR64RegClassID,
   13555             :       // (select:{ *:[i64] } i64:{ *:[i64] }:$cond, i64:{ *:[i64] }:$t, i64:{ *:[i64] }:$f)  =>  (OR64:{ *:[i64] } (SELNEZ64:{ *:[i64] } i64:{ *:[i64] }:$t, i64:{ *:[i64] }:$cond), (SELEQZ64:{ *:[i64] } i64:{ *:[i64] }:$f, i64:{ *:[i64] }:$cond))
   13556             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s64,
   13557             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s64,
   13558             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/Mips::SELEQZ64,
   13559             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
   13560             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/3, // f
   13561             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // cond
   13562             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
   13563             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/Mips::SELNEZ64,
   13564             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
   13565             :       GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // t
   13566             :       GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // cond
   13567             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
   13568             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::OR64,
   13569             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   13570             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
   13571             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/0,
   13572             :       GIR_EraseFromParent, /*InsnID*/0,
   13573             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13574             :       // GIR_Coverage, 1716,
   13575             :       GIR_Done,
   13576             :     // Label 885: @33080
   13577             :     GIM_Try, /*On fail goto*//*Label 886*/ 33192, // Rule ID 1727 //
   13578             :       GIM_CheckFeatures, GIFBS_HasMips64r6_HasStdEnc,
   13579             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
   13580             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
   13581             :       GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
   13582             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR64RegClassID,
   13583             :       // (select:{ *:[i64] } i32:{ *:[i32] }:$cond, i64:{ *:[i64] }:$t, i64:{ *:[i64] }:$f)  =>  (OR64:{ *:[i64] } (SELNEZ64:{ *:[i64] } i64:{ *:[i64] }:$t, (SLL64_32:{ *:[i64] } i32:{ *:[i32] }:$cond)), (SELEQZ64:{ *:[i64] } i64:{ *:[i64] }:$f, (SLL64_32:{ *:[i64] } i32:{ *:[i32] }:$cond)))
   13584             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s64,
   13585             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s64,
   13586             :       GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s64,
   13587             :       GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_s64,
   13588             :       GIR_BuildMI, /*InsnID*/4, /*Opcode*/Mips::SLL64_32,
   13589             :       GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/3, /*TempRegFlags*/RegState::Define,
   13590             :       GIR_Copy, /*NewInsnID*/4, /*OldInsnID*/0, /*OpIdx*/1, // cond
   13591             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/4,
   13592             :       GIR_BuildMI, /*InsnID*/3, /*Opcode*/Mips::SELEQZ64,
   13593             :       GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
   13594             :       GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/3, // f
   13595             :       GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/3, /*TempRegFlags*/0,
   13596             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
   13597             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/Mips::SLL64_32,
   13598             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
   13599             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // cond
   13600             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
   13601             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/Mips::SELNEZ64,
   13602             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
   13603             :       GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // t
   13604             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
   13605             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
   13606             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::OR64,
   13607             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   13608             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
   13609             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/2, /*TempRegFlags*/0,
   13610             :       GIR_EraseFromParent, /*InsnID*/0,
   13611             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13612             :       // GIR_Coverage, 1727,
   13613             :       GIR_Done,
   13614             :     // Label 886: @33192
   13615             :     GIM_Reject,
   13616             :     // Label 861: @33193
   13617             :     GIM_Reject,
   13618             :     // Label 24: @33194
   13619             :     GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 7, /*)*//*default:*//*Label 891*/ 34072,
   13620             :     /*GILLT_s32*//*Label 887*/ 33206,
   13621             :     /*GILLT_s64*//*Label 888*/ 33406, 0,
   13622             :     /*GILLT_v2s64*//*Label 889*/ 33754, 0,
   13623             :     /*GILLT_v4s32*//*Label 890*/ 33913,
   13624             :     // Label 887: @33206
   13625             :     GIM_Try, /*On fail goto*//*Label 892*/ 33405,
   13626             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
   13627             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   13628             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::FGR32RegClassID,
   13629             :       GIM_Try, /*On fail goto*//*Label 893*/ 33277, // Rule ID 145 //
   13630             :         GIM_CheckFeatures, GIFBS_HasMadd4_HasMips4_32r2_HasStdEnc_IsNotSoftFloat_NotInMicroMips_NotMips32r6_NotMips64r6,
   13631             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
   13632             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMUL,
   13633             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
   13634             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
   13635             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::FGR32RegClassID,
   13636             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/Mips::FGR32RegClassID,
   13637             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::FGR32RegClassID,
   13638             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   13639             :         // (fadd:{ *:[f32] } (fmul:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fs, FGR32Opnd:{ *:[f32] }:$ft), FGR32Opnd:{ *:[f32] }:$fr)  =>  (MADD_S:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fr, FGR32Opnd:{ *:[f32] }:$fs, FGR32Opnd:{ *:[f32] }:$ft)
   13640             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MADD_S,
   13641             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // fd
   13642             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // fr
   13643             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // fs
   13644             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // ft
   13645             :         GIR_EraseFromParent, /*InsnID*/0,
   13646             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13647             :         // GIR_Coverage, 145,
   13648             :         GIR_Done,
   13649             :       // Label 893: @33277
   13650             :       GIM_Try, /*On fail goto*//*Label 894*/ 33334, // Rule ID 2260 //
   13651             :         GIM_CheckFeatures, GIFBS_HasMadd4_HasMips4_32r2_HasStdEnc_IsNotSoftFloat_NotInMicroMips_NotMips32r6_NotMips64r6,
   13652             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::FGR32RegClassID,
   13653             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
   13654             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMUL,
   13655             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
   13656             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
   13657             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::FGR32RegClassID,
   13658             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/Mips::FGR32RegClassID,
   13659             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   13660             :         // (fadd:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fr, (fmul:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fs, FGR32Opnd:{ *:[f32] }:$ft))  =>  (MADD_S:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fr, FGR32Opnd:{ *:[f32] }:$fs, FGR32Opnd:{ *:[f32] }:$ft)
   13661             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MADD_S,
   13662             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // fd
   13663             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // fr
   13664             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // fs
   13665             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // ft
   13666             :         GIR_EraseFromParent, /*InsnID*/0,
   13667             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13668             :         // GIR_Coverage, 2260,
   13669             :         GIR_Done,
   13670             :       // Label 894: @33334
   13671             :       GIM_Try, /*On fail goto*//*Label 895*/ 33353, // Rule ID 133 //
   13672             :         GIM_CheckFeatures, GIFBS_HasStdEnc_IsNotSoftFloat_NotInMicroMips,
   13673             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::FGR32RegClassID,
   13674             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::FGR32RegClassID,
   13675             :         // (fadd:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fs, FGR32Opnd:{ *:[f32] }:$ft)  =>  (FADD_S:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fs, FGR32Opnd:{ *:[f32] }:$ft)
   13676             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FADD_S,
   13677             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13678             :         // GIR_Coverage, 133,
   13679             :         GIR_Done,
   13680             :       // Label 895: @33353
   13681             :       GIM_Try, /*On fail goto*//*Label 896*/ 33372, // Rule ID 1098 //
   13682             :         GIM_CheckFeatures, GIFBS_InMicroMips_IsNotSoftFloat,
   13683             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::FGR32RegClassID,
   13684             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::FGR32RegClassID,
   13685             :         // (fadd:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fs, FGR32Opnd:{ *:[f32] }:$ft)  =>  (FADD_S_MM:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fs, FGR32Opnd:{ *:[f32] }:$ft)
   13686             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FADD_S_MM,
   13687             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13688             :         // GIR_Coverage, 1098,
   13689             :         GIR_Done,
   13690             :       // Label 896: @33372
   13691             :       GIM_Try, /*On fail goto*//*Label 897*/ 33404, // Rule ID 1154 //
   13692             :         GIM_CheckFeatures, GIFBS_HasMips32r6_InMicroMips_IsNotSoftFloat,
   13693             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::FGR32RegClassID,
   13694             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::FGR32RegClassID,
   13695             :         // (fadd:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fs, FGR32Opnd:{ *:[f32] }:$ft)  =>  (FADD_S_MMR6:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$ft, FGR32Opnd:{ *:[f32] }:$fs)
   13696             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FADD_S_MMR6,
   13697             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // fd
   13698             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ft
   13699             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // fs
   13700             :         GIR_EraseFromParent, /*InsnID*/0,
   13701             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13702             :         // GIR_Coverage, 1154,
   13703             :         GIR_Done,
   13704             :       // Label 897: @33404
   13705             :       GIM_Reject,
   13706             :     // Label 892: @33405
   13707             :     GIM_Reject,
   13708             :     // Label 888: @33406
   13709             :     GIM_Try, /*On fail goto*//*Label 898*/ 33753,
   13710             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
   13711             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
   13712             :       GIM_Try, /*On fail goto*//*Label 899*/ 33477, // Rule ID 147 //
   13713             :         GIM_CheckFeatures, GIFBS_HasMadd4_HasMips4_32r2_HasStdEnc_IsNotSoftFloat_NotFP64bit_NotInMicroMips_NotMips32r6_NotMips64r6,
   13714             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::AFGR64RegClassID,
   13715             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
   13716             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMUL,
   13717             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
   13718             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
   13719             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::AFGR64RegClassID,
   13720             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/Mips::AFGR64RegClassID,
   13721             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::AFGR64RegClassID,
   13722             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   13723             :         // (fadd:{ *:[f64] } (fmul:{ *:[f64] } AFGR64Opnd:{ *:[f64] }:$fs, AFGR64Opnd:{ *:[f64] }:$ft), AFGR64Opnd:{ *:[f64] }:$fr)  =>  (MADD_D32:{ *:[f64] } AFGR64Opnd:{ *:[f64] }:$fr, AFGR64Opnd:{ *:[f64] }:$fs, AFGR64Opnd:{ *:[f64] }:$ft)
   13724             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MADD_D32,
   13725             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // fd
   13726             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // fr
   13727             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // fs
   13728             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // ft
   13729             :         GIR_EraseFromParent, /*InsnID*/0,
   13730             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13731             :         // GIR_Coverage, 147,
   13732             :         GIR_Done,
   13733             :       // Label 899: @33477
   13734             :       GIM_Try, /*On fail goto*//*Label 900*/ 33538, // Rule ID 149 //
   13735             :         GIM_CheckFeatures, GIFBS_HasMadd4_HasMips4_32r2_HasStdEnc_IsFP64bit_IsNotSoftFloat_NotInMicroMips_NotMips32r6_NotMips64r6,
   13736             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::FGR64RegClassID,
   13737             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
   13738             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMUL,
   13739             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
   13740             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
   13741             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::FGR64RegClassID,
   13742             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/Mips::FGR64RegClassID,
   13743             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::FGR64RegClassID,
   13744             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   13745             :         // (fadd:{ *:[f64] } (fmul:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fs, FGR64Opnd:{ *:[f64] }:$ft), FGR64Opnd:{ *:[f64] }:$fr)  =>  (MADD_D64:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fr, FGR64Opnd:{ *:[f64] }:$fs, FGR64Opnd:{ *:[f64] }:$ft)
   13746             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MADD_D64,
   13747             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // fd
   13748             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // fr
   13749             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // fs
   13750             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // ft
   13751             :         GIR_EraseFromParent, /*InsnID*/0,
   13752             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13753             :         // GIR_Coverage, 149,
   13754             :         GIR_Done,
   13755             :       // Label 900: @33538
   13756             :       GIM_Try, /*On fail goto*//*Label 901*/ 33599, // Rule ID 2261 //
   13757             :         GIM_CheckFeatures, GIFBS_HasMadd4_HasMips4_32r2_HasStdEnc_IsNotSoftFloat_NotFP64bit_NotInMicroMips_NotMips32r6_NotMips64r6,
   13758             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::AFGR64RegClassID,
   13759             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::AFGR64RegClassID,
   13760             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
   13761             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMUL,
   13762             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
   13763             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
   13764             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::AFGR64RegClassID,
   13765             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/Mips::AFGR64RegClassID,
   13766             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   13767             :         // (fadd:{ *:[f64] } AFGR64Opnd:{ *:[f64] }:$fr, (fmul:{ *:[f64] } AFGR64Opnd:{ *:[f64] }:$fs, AFGR64Opnd:{ *:[f64] }:$ft))  =>  (MADD_D32:{ *:[f64] } AFGR64Opnd:{ *:[f64] }:$fr, AFGR64Opnd:{ *:[f64] }:$fs, AFGR64Opnd:{ *:[f64] }:$ft)
   13768             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MADD_D32,
   13769             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // fd
   13770             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // fr
   13771             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // fs
   13772             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // ft
   13773             :         GIR_EraseFromParent, /*InsnID*/0,
   13774             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13775             :         // GIR_Coverage, 2261,
   13776             :         GIR_Done,
   13777             :       // Label 901: @33599
   13778             :       GIM_Try, /*On fail goto*//*Label 902*/ 33660, // Rule ID 2262 //
   13779             :         GIM_CheckFeatures, GIFBS_HasMadd4_HasMips4_32r2_HasStdEnc_IsFP64bit_IsNotSoftFloat_NotInMicroMips_NotMips32r6_NotMips64r6,
   13780             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::FGR64RegClassID,
   13781             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::FGR64RegClassID,
   13782             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
   13783             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMUL,
   13784             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
   13785             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
   13786             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::FGR64RegClassID,
   13787             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/Mips::FGR64RegClassID,
   13788             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   13789             :         // (fadd:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fr, (fmul:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fs, FGR64Opnd:{ *:[f64] }:$ft))  =>  (MADD_D64:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fr, FGR64Opnd:{ *:[f64] }:$fs, FGR64Opnd:{ *:[f64] }:$ft)
   13790             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MADD_D64,
   13791             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // fd
   13792             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // fr
   13793             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // fs
   13794             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // ft
   13795             :         GIR_EraseFromParent, /*InsnID*/0,
   13796             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13797             :         // GIR_Coverage, 2262,
   13798             :         GIR_Done,
   13799             :       // Label 902: @33660
   13800             :       GIM_Try, /*On fail goto*//*Label 903*/ 33683, // Rule ID 134 //
   13801             :         GIM_CheckFeatures, GIFBS_HasStdEnc_IsNotSoftFloat_NotFP64bit_NotInMicroMips,
   13802             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::AFGR64RegClassID,
   13803             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::AFGR64RegClassID,
   13804             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::AFGR64RegClassID,
   13805             :         // (fadd:{ *:[f64] } AFGR64Opnd:{ *:[f64] }:$fs, AFGR64Opnd:{ *:[f64] }:$ft)  =>  (FADD_D32:{ *:[f64] } AFGR64Opnd:{ *:[f64] }:$fs, AFGR64Opnd:{ *:[f64] }:$ft)
   13806             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FADD_D32,
   13807             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13808             :         // GIR_Coverage, 134,
   13809             :         GIR_Done,
   13810             :       // Label 903: @33683
   13811             :       GIM_Try, /*On fail goto*//*Label 904*/ 33706, // Rule ID 135 //
   13812             :         GIM_CheckFeatures, GIFBS_HasStdEnc_IsFP64bit_IsNotSoftFloat_NotInMicroMips,
   13813             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::FGR64RegClassID,
   13814             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::FGR64RegClassID,
   13815             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::FGR64RegClassID,
   13816             :         // (fadd:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fs, FGR64Opnd:{ *:[f64] }:$ft)  =>  (FADD_D64:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fs, FGR64Opnd:{ *:[f64] }:$ft)
   13817             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FADD_D64,
   13818             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13819             :         // GIR_Coverage, 135,
   13820             :         GIR_Done,
   13821             :       // Label 904: @33706
   13822             :       GIM_Try, /*On fail goto*//*Label 905*/ 33729, // Rule ID 1102 //
   13823             :         GIM_CheckFeatures, GIFBS_InMicroMips_IsNotSoftFloat_NotFP64bit,
   13824             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::AFGR64RegClassID,
   13825             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::AFGR64RegClassID,
   13826             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::AFGR64RegClassID,
   13827             :         // (fadd:{ *:[f64] } AFGR64Opnd:{ *:[f64] }:$fs, AFGR64Opnd:{ *:[f64] }:$ft)  =>  (FADD_D32_MM:{ *:[f64] } AFGR64Opnd:{ *:[f64] }:$fs, AFGR64Opnd:{ *:[f64] }:$ft)
   13828             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FADD_D32_MM,
   13829             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13830             :         // GIR_Coverage, 1102,
   13831             :         GIR_Done,
   13832             :       // Label 905: @33729
   13833             :       GIM_Try, /*On fail goto*//*Label 906*/ 33752, // Rule ID 1103 //
   13834             :         GIM_CheckFeatures, GIFBS_InMicroMips_IsFP64bit_IsNotSoftFloat,
   13835             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::FGR64RegClassID,
   13836             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::FGR64RegClassID,
   13837             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::FGR64RegClassID,
   13838             :         // (fadd:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fs, FGR64Opnd:{ *:[f64] }:$ft)  =>  (FADD_D64_MM:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fs, FGR64Opnd:{ *:[f64] }:$ft)
   13839             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FADD_D64_MM,
   13840             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13841             :         // GIR_Coverage, 1103,
   13842             :         GIR_Done,
   13843             :       // Label 906: @33752
   13844             :       GIM_Reject,
   13845             :     // Label 898: @33753
   13846             :     GIM_Reject,
   13847             :     // Label 889: @33754
   13848             :     GIM_Try, /*On fail goto*//*Label 907*/ 33912,
   13849             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
   13850             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
   13851             :       GIM_Try, /*On fail goto*//*Label 908*/ 33826, // Rule ID 2367 //
   13852             :         GIM_CheckFeatures, GIFBS_AllowFPOpFusion_HasMSA_HasStdEnc,
   13853             :         GIM_CheckIsSameOperand, /*MI*/0, /*OpIdx*/0, /*OtherMI*/0, /*OtherOpIdx*/2,
   13854             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
   13855             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMUL,
   13856             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
   13857             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
   13858             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::MSA128DRegClassID,
   13859             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
   13860             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
   13861             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   13862             :         // (fadd:{ *:[v2f64] } (fmul:{ *:[v2f64] } MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt), MSA128DOpnd:{ *:[v2f64] }:$wd)  =>  (FMADD_D:{ *:[v2f64] } MSA128DOpnd:{ *:[v2f64] }:$wd, MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)
   13863             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FMADD_D,
   13864             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // wd
   13865             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // wd
   13866             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // ws
   13867             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // wt
   13868             :         GIR_EraseFromParent, /*InsnID*/0,
   13869             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13870             :         // GIR_Coverage, 2367,
   13871             :         GIR_Done,
   13872             :       // Label 908: @33826
   13873             :       GIM_Try, /*On fail goto*//*Label 909*/ 33888, // Rule ID 1911 //
   13874             :         GIM_CheckFeatures, GIFBS_AllowFPOpFusion_HasMSA_HasStdEnc,
   13875             :         GIM_CheckIsSameOperand, /*MI*/0, /*OpIdx*/0, /*OtherMI*/0, /*OtherOpIdx*/1,
   13876             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128DRegClassID,
   13877             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
   13878             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMUL,
   13879             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
   13880             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
   13881             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::MSA128DRegClassID,
   13882             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
   13883             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   13884             :         // (fadd:{ *:[v2f64] } MSA128DOpnd:{ *:[v2f64] }:$wd, (fmul:{ *:[v2f64] } MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt))  =>  (FMADD_D:{ *:[v2f64] } MSA128DOpnd:{ *:[v2f64] }:$wd, MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)
   13885             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FMADD_D,
   13886             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // wd
   13887             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // wd
   13888             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // ws
   13889             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // wt
   13890             :         GIR_EraseFromParent, /*InsnID*/0,
   13891             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13892             :         // GIR_Coverage, 1911,
   13893             :         GIR_Done,
   13894             :       // Label 909: @33888
   13895             :       GIM_Try, /*On fail goto*//*Label 910*/ 33911, // Rule ID 639 //
   13896             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   13897             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
   13898             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128DRegClassID,
   13899             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
   13900             :         // (fadd:{ *:[v2f64] } MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)  =>  (FADD_D:{ *:[v2f64] } MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)
   13901             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FADD_D,
   13902             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13903             :         // GIR_Coverage, 639,
   13904             :         GIR_Done,
   13905             :       // Label 910: @33911
   13906             :       GIM_Reject,
   13907             :     // Label 907: @33912
   13908             :     GIM_Reject,
   13909             :     // Label 890: @33913
   13910             :     GIM_Try, /*On fail goto*//*Label 911*/ 34071,
   13911             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
   13912             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
   13913             :       GIM_Try, /*On fail goto*//*Label 912*/ 33985, // Rule ID 2366 //
   13914             :         GIM_CheckFeatures, GIFBS_AllowFPOpFusion_HasMSA_HasStdEnc,
   13915             :         GIM_CheckIsSameOperand, /*MI*/0, /*OpIdx*/0, /*OtherMI*/0, /*OtherOpIdx*/2,
   13916             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
   13917             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMUL,
   13918             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s32,
   13919             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s32,
   13920             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::MSA128WRegClassID,
   13921             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
   13922             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
   13923             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   13924             :         // (fadd:{ *:[v4f32] } (fmul:{ *:[v4f32] } MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt), MSA128WOpnd:{ *:[v4f32] }:$wd)  =>  (FMADD_W:{ *:[v4f32] } MSA128WOpnd:{ *:[v4f32] }:$wd, MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)
   13925             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FMADD_W,
   13926             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // wd
   13927             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // wd
   13928             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // ws
   13929             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // wt
   13930             :         GIR_EraseFromParent, /*InsnID*/0,
   13931             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13932             :         // GIR_Coverage, 2366,
   13933             :         GIR_Done,
   13934             :       // Label 912: @33985
   13935             :       GIM_Try, /*On fail goto*//*Label 913*/ 34047, // Rule ID 1910 //
   13936             :         GIM_CheckFeatures, GIFBS_AllowFPOpFusion_HasMSA_HasStdEnc,
   13937             :         GIM_CheckIsSameOperand, /*MI*/0, /*OpIdx*/0, /*OtherMI*/0, /*OtherOpIdx*/1,
   13938             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128WRegClassID,
   13939             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
   13940             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMUL,
   13941             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s32,
   13942             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s32,
   13943             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::MSA128WRegClassID,
   13944             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
   13945             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   13946             :         // (fadd:{ *:[v4f32] } MSA128WOpnd:{ *:[v4f32] }:$wd, (fmul:{ *:[v4f32] } MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt))  =>  (FMADD_W:{ *:[v4f32] } MSA128WOpnd:{ *:[v4f32] }:$wd, MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)
   13947             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FMADD_W,
   13948             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // wd
   13949             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // wd
   13950             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // ws
   13951             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // wt
   13952             :         GIR_EraseFromParent, /*InsnID*/0,
   13953             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13954             :         // GIR_Coverage, 1910,
   13955             :         GIR_Done,
   13956             :       // Label 913: @34047
   13957             :       GIM_Try, /*On fail goto*//*Label 914*/ 34070, // Rule ID 638 //
   13958             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   13959             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
   13960             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128WRegClassID,
   13961             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
   13962             :         // (fadd:{ *:[v4f32] } MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)  =>  (FADD_W:{ *:[v4f32] } MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)
   13963             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FADD_W,
   13964             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   13965             :         // GIR_Coverage, 638,
   13966             :         GIR_Done,
   13967             :       // Label 914: @34070
   13968             :       GIM_Reject,
   13969             :     // Label 911: @34071
   13970             :     GIM_Reject,
   13971             :     // Label 891: @34072
   13972             :     GIM_Reject,
   13973             :     // Label 25: @34073
   13974             :     GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 7, /*)*//*default:*//*Label 919*/ 34648,
   13975             :     /*GILLT_s32*//*Label 915*/ 34085,
   13976             :     /*GILLT_s64*//*Label 916*/ 34228, 0,
   13977             :     /*GILLT_v2s64*//*Label 917*/ 34454, 0,
   13978             :     /*GILLT_v4s32*//*Label 918*/ 34551,
   13979             :     // Label 915: @34085
   13980             :     GIM_Try, /*On fail goto*//*Label 920*/ 34227,
   13981             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
   13982             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   13983             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::FGR32RegClassID,
   13984             :       GIM_Try, /*On fail goto*//*Label 921*/ 34156, // Rule ID 146 //
   13985             :         GIM_CheckFeatures, GIFBS_HasMadd4_HasMips4_32r2_HasStdEnc_IsNotSoftFloat_NotInMicroMips_NotMips32r6_NotMips64r6,
   13986             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
   13987             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMUL,
   13988             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
   13989             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
   13990             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::FGR32RegClassID,
   13991             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/Mips::FGR32RegClassID,
   13992             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::FGR32RegClassID,
   13993             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   13994             :         // (fsub:{ *:[f32] } (fmul:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fs, FGR32Opnd:{ *:[f32] }:$ft), FGR32Opnd:{ *:[f32] }:$fr)  =>  (MSUB_S:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fr, FGR32Opnd:{ *:[f32] }:$fs, FGR32Opnd:{ *:[f32] }:$ft)
   13995             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MSUB_S,
   13996             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // fd
   13997             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // fr
   13998             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // fs
   13999             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // ft
   14000             :         GIR_EraseFromParent, /*InsnID*/0,
   14001             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14002             :         // GIR_Coverage, 146,
   14003             :         GIR_Done,
   14004             :       // Label 921: @34156
   14005             :       GIM_Try, /*On fail goto*//*Label 922*/ 34175, // Rule ID 142 //
   14006             :         GIM_CheckFeatures, GIFBS_HasStdEnc_IsNotSoftFloat_NotInMicroMips,
   14007             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::FGR32RegClassID,
   14008             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::FGR32RegClassID,
   14009             :         // (fsub:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fs, FGR32Opnd:{ *:[f32] }:$ft)  =>  (FSUB_S:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fs, FGR32Opnd:{ *:[f32] }:$ft)
   14010             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FSUB_S,
   14011             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14012             :         // GIR_Coverage, 142,
   14013             :         GIR_Done,
   14014             :       // Label 922: @34175
   14015             :       GIM_Try, /*On fail goto*//*Label 923*/ 34194, // Rule ID 1101 //
   14016             :         GIM_CheckFeatures, GIFBS_InMicroMips_IsNotSoftFloat,
   14017             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::FGR32RegClassID,
   14018             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::FGR32RegClassID,
   14019             :         // (fsub:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fs, FGR32Opnd:{ *:[f32] }:$ft)  =>  (FSUB_S_MM:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fs, FGR32Opnd:{ *:[f32] }:$ft)
   14020             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FSUB_S_MM,
   14021             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14022             :         // GIR_Coverage, 1101,
   14023             :         GIR_Done,
   14024             :       // Label 923: @34194
   14025             :       GIM_Try, /*On fail goto*//*Label 924*/ 34226, // Rule ID 1155 //
   14026             :         GIM_CheckFeatures, GIFBS_HasMips32r6_InMicroMips_IsNotSoftFloat,
   14027             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::FGR32RegClassID,
   14028             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::FGR32RegClassID,
   14029             :         // (fsub:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fs, FGR32Opnd:{ *:[f32] }:$ft)  =>  (FSUB_S_MMR6:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$ft, FGR32Opnd:{ *:[f32] }:$fs)
   14030             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FSUB_S_MMR6,
   14031             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // fd
   14032             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ft
   14033             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // fs
   14034             :         GIR_EraseFromParent, /*InsnID*/0,
   14035             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14036             :         // GIR_Coverage, 1155,
   14037             :         GIR_Done,
   14038             :       // Label 924: @34226
   14039             :       GIM_Reject,
   14040             :     // Label 920: @34227
   14041             :     GIM_Reject,
   14042             :     // Label 916: @34228
   14043             :     GIM_Try, /*On fail goto*//*Label 925*/ 34453,
   14044             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
   14045             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
   14046             :       GIM_Try, /*On fail goto*//*Label 926*/ 34299, // Rule ID 148 //
   14047             :         GIM_CheckFeatures, GIFBS_HasMadd4_HasMips4_32r2_HasStdEnc_IsNotSoftFloat_NotFP64bit_NotInMicroMips_NotMips32r6_NotMips64r6,
   14048             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::AFGR64RegClassID,
   14049             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
   14050             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMUL,
   14051             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
   14052             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
   14053             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::AFGR64RegClassID,
   14054             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/Mips::AFGR64RegClassID,
   14055             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::AFGR64RegClassID,
   14056             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   14057             :         // (fsub:{ *:[f64] } (fmul:{ *:[f64] } AFGR64Opnd:{ *:[f64] }:$fs, AFGR64Opnd:{ *:[f64] }:$ft), AFGR64Opnd:{ *:[f64] }:$fr)  =>  (MSUB_D32:{ *:[f64] } AFGR64Opnd:{ *:[f64] }:$fr, AFGR64Opnd:{ *:[f64] }:$fs, AFGR64Opnd:{ *:[f64] }:$ft)
   14058             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MSUB_D32,
   14059             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // fd
   14060             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // fr
   14061             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // fs
   14062             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // ft
   14063             :         GIR_EraseFromParent, /*InsnID*/0,
   14064             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14065             :         // GIR_Coverage, 148,
   14066             :         GIR_Done,
   14067             :       // Label 926: @34299
   14068             :       GIM_Try, /*On fail goto*//*Label 927*/ 34360, // Rule ID 150 //
   14069             :         GIM_CheckFeatures, GIFBS_HasMadd4_HasMips4_32r2_HasStdEnc_IsFP64bit_IsNotSoftFloat_NotInMicroMips_NotMips32r6_NotMips64r6,
   14070             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::FGR64RegClassID,
   14071             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
   14072             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMUL,
   14073             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
   14074             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
   14075             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::FGR64RegClassID,
   14076             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/Mips::FGR64RegClassID,
   14077             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::FGR64RegClassID,
   14078             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   14079             :         // (fsub:{ *:[f64] } (fmul:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fs, FGR64Opnd:{ *:[f64] }:$ft), FGR64Opnd:{ *:[f64] }:$fr)  =>  (MSUB_D64:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fr, FGR64Opnd:{ *:[f64] }:$fs, FGR64Opnd:{ *:[f64] }:$ft)
   14080             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::MSUB_D64,
   14081             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // fd
   14082             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // fr
   14083             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // fs
   14084             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // ft
   14085             :         GIR_EraseFromParent, /*InsnID*/0,
   14086             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14087             :         // GIR_Coverage, 150,
   14088             :         GIR_Done,
   14089             :       // Label 927: @34360
   14090             :       GIM_Try, /*On fail goto*//*Label 928*/ 34383, // Rule ID 143 //
   14091             :         GIM_CheckFeatures, GIFBS_HasStdEnc_IsNotSoftFloat_NotFP64bit_NotInMicroMips,
   14092             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::AFGR64RegClassID,
   14093             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::AFGR64RegClassID,
   14094             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::AFGR64RegClassID,
   14095             :         // (fsub:{ *:[f64] } AFGR64Opnd:{ *:[f64] }:$fs, AFGR64Opnd:{ *:[f64] }:$ft)  =>  (FSUB_D32:{ *:[f64] } AFGR64Opnd:{ *:[f64] }:$fs, AFGR64Opnd:{ *:[f64] }:$ft)
   14096             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FSUB_D32,
   14097             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14098             :         // GIR_Coverage, 143,
   14099             :         GIR_Done,
   14100             :       // Label 928: @34383
   14101             :       GIM_Try, /*On fail goto*//*Label 929*/ 34406, // Rule ID 144 //
   14102             :         GIM_CheckFeatures, GIFBS_HasStdEnc_IsFP64bit_IsNotSoftFloat_NotInMicroMips,
   14103             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::FGR64RegClassID,
   14104             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::FGR64RegClassID,
   14105             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::FGR64RegClassID,
   14106             :         // (fsub:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fs, FGR64Opnd:{ *:[f64] }:$ft)  =>  (FSUB_D64:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fs, FGR64Opnd:{ *:[f64] }:$ft)
   14107             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FSUB_D64,
   14108             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14109             :         // GIR_Coverage, 144,
   14110             :         GIR_Done,
   14111             :       // Label 929: @34406
   14112             :       GIM_Try, /*On fail goto*//*Label 930*/ 34429, // Rule ID 1108 //
   14113             :         GIM_CheckFeatures, GIFBS_InMicroMips_IsNotSoftFloat_NotFP64bit,
   14114             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::AFGR64RegClassID,
   14115             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::AFGR64RegClassID,
   14116             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::AFGR64RegClassID,
   14117             :         // (fsub:{ *:[f64] } AFGR64Opnd:{ *:[f64] }:$fs, AFGR64Opnd:{ *:[f64] }:$ft)  =>  (FSUB_D32_MM:{ *:[f64] } AFGR64Opnd:{ *:[f64] }:$fs, AFGR64Opnd:{ *:[f64] }:$ft)
   14118             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FSUB_D32_MM,
   14119             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14120             :         // GIR_Coverage, 1108,
   14121             :         GIR_Done,
   14122             :       // Label 930: @34429
   14123             :       GIM_Try, /*On fail goto*//*Label 931*/ 34452, // Rule ID 1109 //
   14124             :         GIM_CheckFeatures, GIFBS_InMicroMips_IsFP64bit_IsNotSoftFloat,
   14125             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::FGR64RegClassID,
   14126             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::FGR64RegClassID,
   14127             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::FGR64RegClassID,
   14128             :         // (fsub:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fs, FGR64Opnd:{ *:[f64] }:$ft)  =>  (FSUB_D64_MM:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fs, FGR64Opnd:{ *:[f64] }:$ft)
   14129             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FSUB_D64_MM,
   14130             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14131             :         // GIR_Coverage, 1109,
   14132             :         GIR_Done,
   14133             :       // Label 931: @34452
   14134             :       GIM_Reject,
   14135             :     // Label 925: @34453
   14136             :     GIM_Reject,
   14137             :     // Label 917: @34454
   14138             :     GIM_Try, /*On fail goto*//*Label 932*/ 34550,
   14139             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
   14140             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
   14141             :       GIM_Try, /*On fail goto*//*Label 933*/ 34526, // Rule ID 1909 //
   14142             :         GIM_CheckFeatures, GIFBS_AllowFPOpFusion_HasMSA_HasStdEnc,
   14143             :         GIM_CheckIsSameOperand, /*MI*/0, /*OpIdx*/0, /*OtherMI*/0, /*OtherOpIdx*/1,
   14144             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128DRegClassID,
   14145             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
   14146             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMUL,
   14147             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
   14148             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s64,
   14149             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::MSA128DRegClassID,
   14150             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
   14151             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   14152             :         // (fsub:{ *:[v2f64] } MSA128DOpnd:{ *:[v2f64] }:$wd, (fmul:{ *:[v2f64] } MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt))  =>  (FMSUB_D:{ *:[v2f64] } MSA128DOpnd:{ *:[v2f64] }:$wd, MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)
   14153             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FMSUB_D,
   14154             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // wd
   14155             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // wd
   14156             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // ws
   14157             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // wt
   14158             :         GIR_EraseFromParent, /*InsnID*/0,
   14159             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14160             :         // GIR_Coverage, 1909,
   14161             :         GIR_Done,
   14162             :       // Label 933: @34526
   14163             :       GIM_Try, /*On fail goto*//*Label 934*/ 34549, // Rule ID 727 //
   14164             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   14165             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
   14166             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128DRegClassID,
   14167             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
   14168             :         // (fsub:{ *:[v2f64] } MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)  =>  (FSUB_D:{ *:[v2f64] } MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)
   14169             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FSUB_D,
   14170             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14171             :         // GIR_Coverage, 727,
   14172             :         GIR_Done,
   14173             :       // Label 934: @34549
   14174             :       GIM_Reject,
   14175             :     // Label 932: @34550
   14176             :     GIM_Reject,
   14177             :     // Label 918: @34551
   14178             :     GIM_Try, /*On fail goto*//*Label 935*/ 34647,
   14179             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
   14180             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
   14181             :       GIM_Try, /*On fail goto*//*Label 936*/ 34623, // Rule ID 1908 //
   14182             :         GIM_CheckFeatures, GIFBS_AllowFPOpFusion_HasMSA_HasStdEnc,
   14183             :         GIM_CheckIsSameOperand, /*MI*/0, /*OpIdx*/0, /*OtherMI*/0, /*OtherOpIdx*/1,
   14184             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128WRegClassID,
   14185             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
   14186             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMUL,
   14187             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s32,
   14188             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s32,
   14189             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::MSA128WRegClassID,
   14190             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
   14191             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   14192             :         // (fsub:{ *:[v4f32] } MSA128WOpnd:{ *:[v4f32] }:$wd, (fmul:{ *:[v4f32] } MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt))  =>  (FMSUB_W:{ *:[v4f32] } MSA128WOpnd:{ *:[v4f32] }:$wd, MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)
   14193             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FMSUB_W,
   14194             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // wd
   14195             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // wd
   14196             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // ws
   14197             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // wt
   14198             :         GIR_EraseFromParent, /*InsnID*/0,
   14199             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14200             :         // GIR_Coverage, 1908,
   14201             :         GIR_Done,
   14202             :       // Label 936: @34623
   14203             :       GIM_Try, /*On fail goto*//*Label 937*/ 34646, // Rule ID 726 //
   14204             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   14205             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
   14206             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128WRegClassID,
   14207             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
   14208             :         // (fsub:{ *:[v4f32] } MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)  =>  (FSUB_W:{ *:[v4f32] } MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)
   14209             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FSUB_W,
   14210             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14211             :         // GIR_Coverage, 726,
   14212             :         GIR_Done,
   14213             :       // Label 937: @34646
   14214             :       GIM_Reject,
   14215             :     // Label 935: @34647
   14216             :     GIM_Reject,
   14217             :     // Label 919: @34648
   14218             :     GIM_Reject,
   14219             :     // Label 26: @34649
   14220             :     GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 7, /*)*//*default:*//*Label 942*/ 35085,
   14221             :     /*GILLT_s32*//*Label 938*/ 34661,
   14222             :     /*GILLT_s64*//*Label 939*/ 34731, 0,
   14223             :     /*GILLT_v2s64*//*Label 940*/ 34835, 0,
   14224             :     /*GILLT_v4s32*//*Label 941*/ 34960,
   14225             :     // Label 938: @34661
   14226             :     GIM_Try, /*On fail goto*//*Label 943*/ 34730,
   14227             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
   14228             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   14229             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::FGR32RegClassID,
   14230             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::FGR32RegClassID,
   14231             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::FGR32RegClassID,
   14232             :       GIM_Try, /*On fail goto*//*Label 944*/ 34694, // Rule ID 139 //
   14233             :         GIM_CheckFeatures, GIFBS_HasStdEnc_IsNotSoftFloat_NotInMicroMips,
   14234             :         // (fmul:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fs, FGR32Opnd:{ *:[f32] }:$ft)  =>  (FMUL_S:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fs, FGR32Opnd:{ *:[f32] }:$ft)
   14235             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FMUL_S,
   14236             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14237             :         // GIR_Coverage, 139,
   14238             :         GIR_Done,
   14239             :       // Label 944: @34694
   14240             :       GIM_Try, /*On fail goto*//*Label 945*/ 34705, // Rule ID 1100 //
   14241             :         GIM_CheckFeatures, GIFBS_InMicroMips_IsNotSoftFloat,
   14242             :         // (fmul:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fs, FGR32Opnd:{ *:[f32] }:$ft)  =>  (FMUL_S_MM:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fs, FGR32Opnd:{ *:[f32] }:$ft)
   14243             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FMUL_S_MM,
   14244             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14245             :         // GIR_Coverage, 1100,
   14246             :         GIR_Done,
   14247             :       // Label 945: @34705
   14248             :       GIM_Try, /*On fail goto*//*Label 946*/ 34729, // Rule ID 1156 //
   14249             :         GIM_CheckFeatures, GIFBS_HasMips32r6_InMicroMips_IsNotSoftFloat,
   14250             :         // (fmul:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fs, FGR32Opnd:{ *:[f32] }:$ft)  =>  (FMUL_S_MMR6:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$ft, FGR32Opnd:{ *:[f32] }:$fs)
   14251             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FMUL_S_MMR6,
   14252             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // fd
   14253             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ft
   14254             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // fs
   14255             :         GIR_EraseFromParent, /*InsnID*/0,
   14256             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14257             :         // GIR_Coverage, 1156,
   14258             :         GIR_Done,
   14259             :       // Label 946: @34729
   14260             :       GIM_Reject,
   14261             :     // Label 943: @34730
   14262             :     GIM_Reject,
   14263             :     // Label 939: @34731
   14264             :     GIM_Try, /*On fail goto*//*Label 947*/ 34834,
   14265             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
   14266             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
   14267             :       GIM_Try, /*On fail goto*//*Label 948*/ 34764, // Rule ID 140 //
   14268             :         GIM_CheckFeatures, GIFBS_HasStdEnc_IsNotSoftFloat_NotFP64bit_NotInMicroMips,
   14269             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::AFGR64RegClassID,
   14270             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::AFGR64RegClassID,
   14271             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::AFGR64RegClassID,
   14272             :         // (fmul:{ *:[f64] } AFGR64Opnd:{ *:[f64] }:$fs, AFGR64Opnd:{ *:[f64] }:$ft)  =>  (FMUL_D32:{ *:[f64] } AFGR64Opnd:{ *:[f64] }:$fs, AFGR64Opnd:{ *:[f64] }:$ft)
   14273             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FMUL_D32,
   14274             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14275             :         // GIR_Coverage, 140,
   14276             :         GIR_Done,
   14277             :       // Label 948: @34764
   14278             :       GIM_Try, /*On fail goto*//*Label 949*/ 34787, // Rule ID 141 //
   14279             :         GIM_CheckFeatures, GIFBS_HasStdEnc_IsFP64bit_IsNotSoftFloat_NotInMicroMips,
   14280             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::FGR64RegClassID,
   14281             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::FGR64RegClassID,
   14282             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::FGR64RegClassID,
   14283             :         // (fmul:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fs, FGR64Opnd:{ *:[f64] }:$ft)  =>  (FMUL_D64:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fs, FGR64Opnd:{ *:[f64] }:$ft)
   14284             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FMUL_D64,
   14285             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14286             :         // GIR_Coverage, 141,
   14287             :         GIR_Done,
   14288             :       // Label 949: @34787
   14289             :       GIM_Try, /*On fail goto*//*Label 950*/ 34810, // Rule ID 1106 //
   14290             :         GIM_CheckFeatures, GIFBS_InMicroMips_IsNotSoftFloat_NotFP64bit,
   14291             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::AFGR64RegClassID,
   14292             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::AFGR64RegClassID,
   14293             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::AFGR64RegClassID,
   14294             :         // (fmul:{ *:[f64] } AFGR64Opnd:{ *:[f64] }:$fs, AFGR64Opnd:{ *:[f64] }:$ft)  =>  (FMUL_D32_MM:{ *:[f64] } AFGR64Opnd:{ *:[f64] }:$fs, AFGR64Opnd:{ *:[f64] }:$ft)
   14295             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FMUL_D32_MM,
   14296             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14297             :         // GIR_Coverage, 1106,
   14298             :         GIR_Done,
   14299             :       // Label 950: @34810
   14300             :       GIM_Try, /*On fail goto*//*Label 951*/ 34833, // Rule ID 1107 //
   14301             :         GIM_CheckFeatures, GIFBS_InMicroMips_IsFP64bit_IsNotSoftFloat,
   14302             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::FGR64RegClassID,
   14303             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::FGR64RegClassID,
   14304             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::FGR64RegClassID,
   14305             :         // (fmul:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fs, FGR64Opnd:{ *:[f64] }:$ft)  =>  (FMUL_D64_MM:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fs, FGR64Opnd:{ *:[f64] }:$ft)
   14306             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FMUL_D64_MM,
   14307             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14308             :         // GIR_Coverage, 1107,
   14309             :         GIR_Done,
   14310             :       // Label 951: @34833
   14311             :       GIM_Reject,
   14312             :     // Label 947: @34834
   14313             :     GIM_Reject,
   14314             :     // Label 940: @34835
   14315             :     GIM_Try, /*On fail goto*//*Label 952*/ 34959,
   14316             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
   14317             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
   14318             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
   14319             :       GIM_Try, /*On fail goto*//*Label 953*/ 34894, // Rule ID 2308 //
   14320             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   14321             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
   14322             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FEXP2,
   14323             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
   14324             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::MSA128DRegClassID,
   14325             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
   14326             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   14327             :         // (fmul:{ *:[v2f64] } (fexp2:{ *:[v2f64] } MSA128DOpnd:{ *:[v2f64] }:$wt), MSA128DOpnd:{ *:[v2f64] }:$ws)  =>  (FEXP2_D:{ *:[v2f64] } MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)
   14328             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FEXP2_D,
   14329             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
   14330             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
   14331             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // wt
   14332             :         GIR_EraseFromParent, /*InsnID*/0,
   14333             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14334             :         // GIR_Coverage, 2308,
   14335             :         GIR_Done,
   14336             :       // Label 953: @34894
   14337             :       GIM_Try, /*On fail goto*//*Label 954*/ 34939, // Rule ID 669 //
   14338             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   14339             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128DRegClassID,
   14340             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
   14341             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FEXP2,
   14342             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s64,
   14343             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::MSA128DRegClassID,
   14344             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   14345             :         // (fmul:{ *:[v2f64] } MSA128DOpnd:{ *:[v2f64] }:$ws, (fexp2:{ *:[v2f64] } MSA128DOpnd:{ *:[v2f64] }:$wt))  =>  (FEXP2_D:{ *:[v2f64] } MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)
   14346             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FEXP2_D,
   14347             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
   14348             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // ws
   14349             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // wt
   14350             :         GIR_EraseFromParent, /*InsnID*/0,
   14351             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14352             :         // GIR_Coverage, 669,
   14353             :         GIR_Done,
   14354             :       // Label 954: @34939
   14355             :       GIM_Try, /*On fail goto*//*Label 955*/ 34958, // Rule ID 705 //
   14356             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   14357             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128DRegClassID,
   14358             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
   14359             :         // (fmul:{ *:[v2f64] } MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)  =>  (FMUL_D:{ *:[v2f64] } MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)
   14360             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FMUL_D,
   14361             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14362             :         // GIR_Coverage, 705,
   14363             :         GIR_Done,
   14364             :       // Label 955: @34958
   14365             :       GIM_Reject,
   14366             :     // Label 952: @34959
   14367             :     GIM_Reject,
   14368             :     // Label 941: @34960
   14369             :     GIM_Try, /*On fail goto*//*Label 956*/ 35084,
   14370             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
   14371             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
   14372             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
   14373             :       GIM_Try, /*On fail goto*//*Label 957*/ 35019, // Rule ID 2307 //
   14374             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   14375             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
   14376             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FEXP2,
   14377             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s32,
   14378             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::MSA128WRegClassID,
   14379             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
   14380             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   14381             :         // (fmul:{ *:[v4f32] } (fexp2:{ *:[v4f32] } MSA128WOpnd:{ *:[v4f32] }:$wt), MSA128WOpnd:{ *:[v4f32] }:$ws)  =>  (FEXP2_W:{ *:[v4f32] } MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)
   14382             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FEXP2_W,
   14383             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
   14384             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ws
   14385             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // wt
   14386             :         GIR_EraseFromParent, /*InsnID*/0,
   14387             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14388             :         // GIR_Coverage, 2307,
   14389             :         GIR_Done,
   14390             :       // Label 957: @35019
   14391             :       GIM_Try, /*On fail goto*//*Label 958*/ 35064, // Rule ID 668 //
   14392             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   14393             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128WRegClassID,
   14394             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
   14395             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FEXP2,
   14396             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s32,
   14397             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::MSA128WRegClassID,
   14398             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   14399             :         // (fmul:{ *:[v4f32] } MSA128WOpnd:{ *:[v4f32] }:$ws, (fexp2:{ *:[v4f32] } MSA128WOpnd:{ *:[v4f32] }:$wt))  =>  (FEXP2_W:{ *:[v4f32] } MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)
   14400             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FEXP2_W,
   14401             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wd
   14402             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // ws
   14403             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // wt
   14404             :         GIR_EraseFromParent, /*InsnID*/0,
   14405             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14406             :         // GIR_Coverage, 668,
   14407             :         GIR_Done,
   14408             :       // Label 958: @35064
   14409             :       GIM_Try, /*On fail goto*//*Label 959*/ 35083, // Rule ID 704 //
   14410             :         GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   14411             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128WRegClassID,
   14412             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
   14413             :         // (fmul:{ *:[v4f32] } MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)  =>  (FMUL_W:{ *:[v4f32] } MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)
   14414             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FMUL_W,
   14415             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14416             :         // GIR_Coverage, 704,
   14417             :         GIR_Done,
   14418             :       // Label 959: @35083
   14419             :       GIM_Reject,
   14420             :     // Label 956: @35084
   14421             :     GIM_Reject,
   14422             :     // Label 942: @35085
   14423             :     GIM_Reject,
   14424             :     // Label 27: @35086
   14425             :     GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/4, 7, /*)*//*default:*//*Label 962*/ 35175,
   14426             :     /*GILLT_v2s64*//*Label 960*/ 35095, 0,
   14427             :     /*GILLT_v4s32*//*Label 961*/ 35135,
   14428             :     // Label 960: @35095
   14429             :     GIM_Try, /*On fail goto*//*Label 963*/ 35134, // Rule ID 693 //
   14430             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   14431             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
   14432             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
   14433             :       GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
   14434             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
   14435             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128DRegClassID,
   14436             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
   14437             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128DRegClassID,
   14438             :       // (fma:{ *:[v2f64] } MSA128DOpnd:{ *:[v2f64] }:$wd_in, MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)  =>  (FMADD_D:{ *:[v2f64] } MSA128DOpnd:{ *:[v2f64] }:$wd_in, MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)
   14439             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FMADD_D,
   14440             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14441             :       // GIR_Coverage, 693,
   14442             :       GIR_Done,
   14443             :     // Label 963: @35134
   14444             :     GIM_Reject,
   14445             :     // Label 961: @35135
   14446             :     GIM_Try, /*On fail goto*//*Label 964*/ 35174, // Rule ID 692 //
   14447             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   14448             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
   14449             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
   14450             :       GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
   14451             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
   14452             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128WRegClassID,
   14453             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
   14454             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/Mips::MSA128WRegClassID,
   14455             :       // (fma:{ *:[v4f32] } MSA128WOpnd:{ *:[v4f32] }:$wd_in, MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)  =>  (FMADD_W:{ *:[v4f32] } MSA128WOpnd:{ *:[v4f32] }:$wd_in, MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)
   14456             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FMADD_W,
   14457             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14458             :       // GIR_Coverage, 692,
   14459             :       GIR_Done,
   14460             :     // Label 964: @35174
   14461             :     GIM_Reject,
   14462             :     // Label 962: @35175
   14463             :     GIM_Reject,
   14464             :     // Label 28: @35176
   14465             :     GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 7, /*)*//*default:*//*Label 969*/ 35426,
   14466             :     /*GILLT_s32*//*Label 965*/ 35188,
   14467             :     /*GILLT_s64*//*Label 966*/ 35258, 0,
   14468             :     /*GILLT_v2s64*//*Label 967*/ 35362, 0,
   14469             :     /*GILLT_v4s32*//*Label 968*/ 35394,
   14470             :     // Label 965: @35188
   14471             :     GIM_Try, /*On fail goto*//*Label 970*/ 35257,
   14472             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
   14473             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
   14474             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::FGR32RegClassID,
   14475             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::FGR32RegClassID,
   14476             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::FGR32RegClassID,
   14477             :       GIM_Try, /*On fail goto*//*Label 971*/ 35221, // Rule ID 136 //
   14478             :         GIM_CheckFeatures, GIFBS_HasStdEnc_IsNotSoftFloat_NotInMicroMips,
   14479             :         // (fdiv:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fs, FGR32Opnd:{ *:[f32] }:$ft)  =>  (FDIV_S:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fs, FGR32Opnd:{ *:[f32] }:$ft)
   14480             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FDIV_S,
   14481             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14482             :         // GIR_Coverage, 136,
   14483             :         GIR_Done,
   14484             :       // Label 971: @35221
   14485             :       GIM_Try, /*On fail goto*//*Label 972*/ 35232, // Rule ID 1099 //
   14486             :         GIM_CheckFeatures, GIFBS_InMicroMips_IsNotSoftFloat,
   14487             :         // (fdiv:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fs, FGR32Opnd:{ *:[f32] }:$ft)  =>  (FDIV_S_MM:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fs, FGR32Opnd:{ *:[f32] }:$ft)
   14488             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FDIV_S_MM,
   14489             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14490             :         // GIR_Coverage, 1099,
   14491             :         GIR_Done,
   14492             :       // Label 972: @35232
   14493             :       GIM_Try, /*On fail goto*//*Label 973*/ 35256, // Rule ID 1157 //
   14494             :         GIM_CheckFeatures, GIFBS_HasMips32r6_InMicroMips_IsNotSoftFloat,
   14495             :         // (fdiv:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fs, FGR32Opnd:{ *:[f32] }:$ft)  =>  (FDIV_S_MMR6:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$ft, FGR32Opnd:{ *:[f32] }:$fs)
   14496             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::FDIV_S_MMR6,
   14497             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // fd
   14498             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // ft
   14499             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // fs
   14500             :         GIR_EraseFromParent, /*InsnID*/0,
   14501             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14502             :         // GIR_Coverage, 1157,
   14503             :         GIR_Done,
   14504             :       // Label 973: @35256
   14505             :       GIM_Reject,
   14506             :     // Label 970: @35257
   14507             :     GIM_Reject,
   14508             :     // Label 966: @35258
   14509             :     GIM_Try, /*On fail goto*//*Label 974*/ 35361,
   14510             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
   14511             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
   14512             :       GIM_Try, /*On fail goto*//*Label 975*/ 35291, // Rule ID 137 //
   14513             :         GIM_CheckFeatures, GIFBS_HasStdEnc_IsNotSoftFloat_NotFP64bit_NotInMicroMips,
   14514             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::AFGR64RegClassID,
   14515             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::AFGR64RegClassID,
   14516             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::AFGR64RegClassID,
   14517             :         // (fdiv:{ *:[f64] } AFGR64Opnd:{ *:[f64] }:$fs, AFGR64Opnd:{ *:[f64] }:$ft)  =>  (FDIV_D32:{ *:[f64] } AFGR64Opnd:{ *:[f64] }:$fs, AFGR64Opnd:{ *:[f64] }:$ft)
   14518             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FDIV_D32,
   14519             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14520             :         // GIR_Coverage, 137,
   14521             :         GIR_Done,
   14522             :       // Label 975: @35291
   14523             :       GIM_Try, /*On fail goto*//*Label 976*/ 35314, // Rule ID 138 //
   14524             :         GIM_CheckFeatures, GIFBS_HasStdEnc_IsFP64bit_IsNotSoftFloat_NotInMicroMips,
   14525             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::FGR64RegClassID,
   14526             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::FGR64RegClassID,
   14527             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::FGR64RegClassID,
   14528             :         // (fdiv:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fs, FGR64Opnd:{ *:[f64] }:$ft)  =>  (FDIV_D64:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fs, FGR64Opnd:{ *:[f64] }:$ft)
   14529             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FDIV_D64,
   14530             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14531             :         // GIR_Coverage, 138,
   14532             :         GIR_Done,
   14533             :       // Label 976: @35314
   14534             :       GIM_Try, /*On fail goto*//*Label 977*/ 35337, // Rule ID 1104 //
   14535             :         GIM_CheckFeatures, GIFBS_InMicroMips_IsNotSoftFloat_NotFP64bit,
   14536             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::AFGR64RegClassID,
   14537             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::AFGR64RegClassID,
   14538             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::AFGR64RegClassID,
   14539             :         // (fdiv:{ *:[f64] } AFGR64Opnd:{ *:[f64] }:$fs, AFGR64Opnd:{ *:[f64] }:$ft)  =>  (FDIV_D32_MM:{ *:[f64] } AFGR64Opnd:{ *:[f64] }:$fs, AFGR64Opnd:{ *:[f64] }:$ft)
   14540             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FDIV_D32_MM,
   14541             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14542             :         // GIR_Coverage, 1104,
   14543             :         GIR_Done,
   14544             :       // Label 977: @35337
   14545             :       GIM_Try, /*On fail goto*//*Label 978*/ 35360, // Rule ID 1105 //
   14546             :         GIM_CheckFeatures, GIFBS_InMicroMips_IsFP64bit_IsNotSoftFloat,
   14547             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::FGR64RegClassID,
   14548             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::FGR64RegClassID,
   14549             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::FGR64RegClassID,
   14550             :         // (fdiv:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fs, FGR64Opnd:{ *:[f64] }:$ft)  =>  (FDIV_D64_MM:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fs, FGR64Opnd:{ *:[f64] }:$ft)
   14551             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FDIV_D64_MM,
   14552             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14553             :         // GIR_Coverage, 1105,
   14554             :         GIR_Done,
   14555             :       // Label 978: @35360
   14556             :       GIM_Reject,
   14557             :     // Label 974: @35361
   14558             :     GIM_Reject,
   14559             :     // Label 967: @35362
   14560             :     GIM_Try, /*On fail goto*//*Label 979*/ 35393, // Rule ID 665 //
   14561             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   14562             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
   14563             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
   14564             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
   14565             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128DRegClassID,
   14566             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128DRegClassID,
   14567             :       // (fdiv:{ *:[v2f64] } MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)  =>  (FDIV_D:{ *:[v2f64] } MSA128DOpnd:{ *:[v2f64] }:$ws, MSA128DOpnd:{ *:[v2f64] }:$wt)
   14568             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FDIV_D,
   14569             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14570             :       // GIR_Coverage, 665,
   14571             :       GIR_Done,
   14572             :     // Label 979: @35393
   14573             :     GIM_Reject,
   14574             :     // Label 968: @35394
   14575             :     GIM_Try, /*On fail goto*//*Label 980*/ 35425, // Rule ID 664 //
   14576             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   14577             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
   14578             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
   14579             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
   14580             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128WRegClassID,
   14581             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/Mips::MSA128WRegClassID,
   14582             :       // (fdiv:{ *:[v4f32] } MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)  =>  (FDIV_W:{ *:[v4f32] } MSA128WOpnd:{ *:[v4f32] }:$ws, MSA128WOpnd:{ *:[v4f32] }:$wt)
   14583             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FDIV_W,
   14584             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14585             :       // GIR_Coverage, 664,
   14586             :       GIR_Done,
   14587             :     // Label 980: @35425
   14588             :     GIM_Reject,
   14589             :     // Label 969: @35426
   14590             :     GIM_Reject,
   14591             :     // Label 29: @35427
   14592             :     GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/4, 7, /*)*//*default:*//*Label 983*/ 35484,
   14593             :     /*GILLT_v2s64*//*Label 981*/ 35436, 0,
   14594             :     /*GILLT_v4s32*//*Label 982*/ 35460,
   14595             :     // Label 981: @35436
   14596             :     GIM_Try, /*On fail goto*//*Label 984*/ 35459, // Rule ID 671 //
   14597             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   14598             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
   14599             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
   14600             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128DRegClassID,
   14601             :       // (fexp2:{ *:[v2f64] } MSA128D:{ *:[v2f64] }:$ws)  =>  (FEXP2_D_1_PSEUDO:{ *:[v2f64] } MSA128D:{ *:[v2f64] }:$ws)
   14602             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FEXP2_D_1_PSEUDO,
   14603             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14604             :       // GIR_Coverage, 671,
   14605             :       GIR_Done,
   14606             :     // Label 984: @35459
   14607             :     GIM_Reject,
   14608             :     // Label 982: @35460
   14609             :     GIM_Try, /*On fail goto*//*Label 985*/ 35483, // Rule ID 670 //
   14610             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   14611             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
   14612             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
   14613             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128WRegClassID,
   14614             :       // (fexp2:{ *:[v4f32] } MSA128W:{ *:[v4f32] }:$ws)  =>  (FEXP2_W_1_PSEUDO:{ *:[v4f32] } MSA128W:{ *:[v4f32] }:$ws)
   14615             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FEXP2_W_1_PSEUDO,
   14616             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14617             :       // GIR_Coverage, 670,
   14618             :       GIR_Done,
   14619             :     // Label 985: @35483
   14620             :     GIM_Reject,
   14621             :     // Label 983: @35484
   14622             :     GIM_Reject,
   14623             :     // Label 30: @35485
   14624             :     GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/4, 7, /*)*//*default:*//*Label 988*/ 35542,
   14625             :     /*GILLT_v2s64*//*Label 986*/ 35494, 0,
   14626             :     /*GILLT_v4s32*//*Label 987*/ 35518,
   14627             :     // Label 986: @35494
   14628             :     GIM_Try, /*On fail goto*//*Label 989*/ 35517, // Rule ID 691 //
   14629             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   14630             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
   14631             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
   14632             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128DRegClassID,
   14633             :       // (flog2:{ *:[v2f64] } MSA128DOpnd:{ *:[v2f64] }:$ws)  =>  (FLOG2_D:{ *:[v2f64] } MSA128DOpnd:{ *:[v2f64] }:$ws)
   14634             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FLOG2_D,
   14635             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14636             :       // GIR_Coverage, 691,
   14637             :       GIR_Done,
   14638             :     // Label 989: @35517
   14639             :     GIM_Reject,
   14640             :     // Label 987: @35518
   14641             :     GIM_Try, /*On fail goto*//*Label 990*/ 35541, // Rule ID 690 //
   14642             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   14643             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
   14644             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
   14645             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128WRegClassID,
   14646             :       // (flog2:{ *:[v4f32] } MSA128WOpnd:{ *:[v4f32] }:$ws)  =>  (FLOG2_W:{ *:[v4f32] } MSA128WOpnd:{ *:[v4f32] }:$ws)
   14647             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FLOG2_W,
   14648             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14649             :       // GIR_Coverage, 690,
   14650             :       GIR_Done,
   14651             :     // Label 990: @35541
   14652             :     GIM_Reject,
   14653             :     // Label 988: @35542
   14654             :     GIM_Reject,
   14655             :     // Label 31: @35543
   14656             :     GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 3, /*)*//*default:*//*Label 993*/ 36838,
   14657             :     /*GILLT_s32*//*Label 991*/ 35551,
   14658             :     /*GILLT_s64*//*Label 992*/ 36052,
   14659             :     // Label 991: @35551
   14660             :     GIM_Try, /*On fail goto*//*Label 994*/ 36051,
   14661             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
   14662             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::FGR32RegClassID,
   14663             :       GIM_Try, /*On fail goto*//*Label 995*/ 35635, // Rule ID 1423 //
   14664             :         GIM_CheckFeatures, GIFBS_HasMadd4_HasMips4_32r2_HasStdEnc_NoNaNsFPMath_NotInMicroMips_NotMips32r6_NotMips64r6,
   14665             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
   14666             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FADD,
   14667             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
   14668             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
   14669             :         GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
   14670             :         GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_FMUL,
   14671             :         GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
   14672             :         GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
   14673             :         GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/Mips::FGR32RegClassID,
   14674             :         GIM_CheckRegBankForClass, /*MI*/2, /*Op*/2, /*RC*/Mips::FGR32RegClassID,
   14675             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/Mips::FGR32RegClassID,
   14676             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   14677             :         GIM_CheckIsSafeToFold, /*InsnID*/2,
   14678             :         // (fneg:{ *:[f32] } (fadd:{ *:[f32] } (fmul:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fs, FGR32Opnd:{ *:[f32] }:$ft), FGR32Opnd:{ *:[f32] }:$fr))  =>  (NMADD_S:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fr, FGR32Opnd:{ *:[f32] }:$fs, FGR32Opnd:{ *:[f32] }:$ft)
   14679             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::NMADD_S,
   14680             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // fd
   14681             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // fr
   14682             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // fs
   14683             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // ft
   14684             :         GIR_EraseFromParent, /*InsnID*/0,
   14685             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14686             :         // GIR_Coverage, 1423,
   14687             :         GIR_Done,
   14688             :       // Label 995: @35635
   14689             :       GIM_Try, /*On fail goto*//*Label 996*/ 35709, // Rule ID 2162 //
   14690             :         GIM_CheckFeatures, GIFBS_HasMadd4_InMicroMips_InMicroMips_NoNaNsFPMath_NotMips32r6_NotMips32r6,
   14691             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
   14692             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FADD,
   14693             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
   14694             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
   14695             :         GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
   14696             :         GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_FMUL,
   14697             :         GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
   14698             :         GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
   14699             :         GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/Mips::FGR32RegClassID,
   14700             :         GIM_CheckRegBankForClass, /*MI*/2, /*Op*/2, /*RC*/Mips::FGR32RegClassID,
   14701             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/Mips::FGR32RegClassID,
   14702             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   14703             :         GIM_CheckIsSafeToFold, /*InsnID*/2,
   14704             :         // (fneg:{ *:[f32] } (fadd:{ *:[f32] } (fmul:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fs, FGR32Opnd:{ *:[f32] }:$ft), FGR32Opnd:{ *:[f32] }:$fr))  =>  (NMADD_S_MM:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fr, FGR32Opnd:{ *:[f32] }:$fs, FGR32Opnd:{ *:[f32] }:$ft)
   14705             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::NMADD_S_MM,
   14706             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // fd
   14707             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // fr
   14708             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // fs
   14709             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // ft
   14710             :         GIR_EraseFromParent, /*InsnID*/0,
   14711             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14712             :         // GIR_Coverage, 2162,
   14713             :         GIR_Done,
   14714             :       // Label 996: @35709
   14715             :       GIM_Try, /*On fail goto*//*Label 997*/ 35783, // Rule ID 2342 //
   14716             :         GIM_CheckFeatures, GIFBS_HasMadd4_HasMips4_32r2_HasStdEnc_NoNaNsFPMath_NotInMicroMips_NotMips32r6_NotMips64r6,
   14717             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
   14718             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FADD,
   14719             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
   14720             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
   14721             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::FGR32RegClassID,
   14722             :         GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
   14723             :         GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_FMUL,
   14724             :         GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
   14725             :         GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
   14726             :         GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/Mips::FGR32RegClassID,
   14727             :         GIM_CheckRegBankForClass, /*MI*/2, /*Op*/2, /*RC*/Mips::FGR32RegClassID,
   14728             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   14729             :         GIM_CheckIsSafeToFold, /*InsnID*/2,
   14730             :         // (fneg:{ *:[f32] } (fadd:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fr, (fmul:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fs, FGR32Opnd:{ *:[f32] }:$ft)))  =>  (NMADD_S:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fr, FGR32Opnd:{ *:[f32] }:$fs, FGR32Opnd:{ *:[f32] }:$ft)
   14731             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::NMADD_S,
   14732             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // fd
   14733             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // fr
   14734             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // fs
   14735             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // ft
   14736             :         GIR_EraseFromParent, /*InsnID*/0,
   14737             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14738             :         // GIR_Coverage, 2342,
   14739             :         GIR_Done,
   14740             :       // Label 997: @35783
   14741             :       GIM_Try, /*On fail goto*//*Label 998*/ 35857, // Rule ID 2439 //
   14742             :         GIM_CheckFeatures, GIFBS_HasMadd4_InMicroMips_InMicroMips_NoNaNsFPMath_NotMips32r6_NotMips32r6,
   14743             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
   14744             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FADD,
   14745             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
   14746             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
   14747             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::FGR32RegClassID,
   14748             :         GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
   14749             :         GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_FMUL,
   14750             :         GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
   14751             :         GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
   14752             :         GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/Mips::FGR32RegClassID,
   14753             :         GIM_CheckRegBankForClass, /*MI*/2, /*Op*/2, /*RC*/Mips::FGR32RegClassID,
   14754             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   14755             :         GIM_CheckIsSafeToFold, /*InsnID*/2,
   14756             :         // (fneg:{ *:[f32] } (fadd:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fr, (fmul:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fs, FGR32Opnd:{ *:[f32] }:$ft)))  =>  (NMADD_S_MM:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fr, FGR32Opnd:{ *:[f32] }:$fs, FGR32Opnd:{ *:[f32] }:$ft)
   14757             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::NMADD_S_MM,
   14758             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // fd
   14759             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // fr
   14760             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // fs
   14761             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // ft
   14762             :         GIR_EraseFromParent, /*InsnID*/0,
   14763             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14764             :         // GIR_Coverage, 2439,
   14765             :         GIR_Done,
   14766             :       // Label 998: @35857
   14767             :       GIM_Try, /*On fail goto*//*Label 999*/ 35931, // Rule ID 1424 //
   14768             :         GIM_CheckFeatures, GIFBS_HasMadd4_HasMips4_32r2_HasStdEnc_NoNaNsFPMath_NotInMicroMips_NotMips32r6_NotMips64r6,
   14769             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
   14770             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FSUB,
   14771             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
   14772             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
   14773             :         GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
   14774             :         GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_FMUL,
   14775             :         GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
   14776             :         GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
   14777             :         GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/Mips::FGR32RegClassID,
   14778             :         GIM_CheckRegBankForClass, /*MI*/2, /*Op*/2, /*RC*/Mips::FGR32RegClassID,
   14779             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/Mips::FGR32RegClassID,
   14780             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   14781             :         GIM_CheckIsSafeToFold, /*InsnID*/2,
   14782             :         // (fneg:{ *:[f32] } (fsub:{ *:[f32] } (fmul:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fs, FGR32Opnd:{ *:[f32] }:$ft), FGR32Opnd:{ *:[f32] }:$fr))  =>  (NMSUB_S:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fr, FGR32Opnd:{ *:[f32] }:$fs, FGR32Opnd:{ *:[f32] }:$ft)
   14783             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::NMSUB_S,
   14784             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // fd
   14785             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // fr
   14786             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // fs
   14787             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // ft
   14788             :         GIR_EraseFromParent, /*InsnID*/0,
   14789             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14790             :         // GIR_Coverage, 1424,
   14791             :         GIR_Done,
   14792             :       // Label 999: @35931
   14793             :       GIM_Try, /*On fail goto*//*Label 1000*/ 36005, // Rule ID 2163 //
   14794             :         GIM_CheckFeatures, GIFBS_HasMadd4_InMicroMips_InMicroMips_NoNaNsFPMath_NotMips32r6_NotMips32r6,
   14795             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
   14796             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FSUB,
   14797             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
   14798             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
   14799             :         GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
   14800             :         GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_FMUL,
   14801             :         GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
   14802             :         GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
   14803             :         GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/Mips::FGR32RegClassID,
   14804             :         GIM_CheckRegBankForClass, /*MI*/2, /*Op*/2, /*RC*/Mips::FGR32RegClassID,
   14805             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/Mips::FGR32RegClassID,
   14806             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   14807             :         GIM_CheckIsSafeToFold, /*InsnID*/2,
   14808             :         // (fneg:{ *:[f32] } (fsub:{ *:[f32] } (fmul:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fs, FGR32Opnd:{ *:[f32] }:$ft), FGR32Opnd:{ *:[f32] }:$fr))  =>  (NMSUB_S_MM:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fr, FGR32Opnd:{ *:[f32] }:$fs, FGR32Opnd:{ *:[f32] }:$ft)
   14809             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::NMSUB_S_MM,
   14810             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // fd
   14811             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // fr
   14812             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // fs
   14813             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // ft
   14814             :         GIR_EraseFromParent, /*InsnID*/0,
   14815             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14816             :         // GIR_Coverage, 2163,
   14817             :         GIR_Done,
   14818             :       // Label 1000: @36005
   14819             :       GIM_Try, /*On fail goto*//*Label 1001*/ 36020, // Rule ID 111 //
   14820             :         GIM_CheckFeatures, GIFBS_HasStdEnc_IsNotSoftFloat,
   14821             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::FGR32RegClassID,
   14822             :         // (fneg:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fs)  =>  (FNEG_S:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fs)
   14823             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FNEG_S,
   14824             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14825             :         // GIR_Coverage, 111,
   14826             :         GIR_Done,
   14827             :       // Label 1001: @36020
   14828             :       GIM_Try, /*On fail goto*//*Label 1002*/ 36035, // Rule ID 1121 //
   14829             :         GIM_CheckFeatures, GIFBS_InMicroMips_IsNotSoftFloat,
   14830             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::FGR32RegClassID,
   14831             :         // (fneg:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fs)  =>  (FNEG_S_MM:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fs)
   14832             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FNEG_S_MM,
   14833             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14834             :         // GIR_Coverage, 1121,
   14835             :         GIR_Done,
   14836             :       // Label 1002: @36035
   14837             :       GIM_Try, /*On fail goto*//*Label 1003*/ 36050, // Rule ID 1158 //
   14838             :         GIM_CheckFeatures, GIFBS_HasMips32r6_InMicroMips_IsNotSoftFloat,
   14839             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::FGR32RegClassID,
   14840             :         // (fneg:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fs)  =>  (FNEG_S_MMR6:{ *:[f32] } FGR32Opnd:{ *:[f32] }:$fs)
   14841             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FNEG_S_MMR6,
   14842             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14843             :         // GIR_Coverage, 1158,
   14844             :         GIR_Done,
   14845             :       // Label 1003: @36050
   14846             :       GIM_Reject,
   14847             :     // Label 994: @36051
   14848             :     GIM_Reject,
   14849             :     // Label 992: @36052
   14850             :     GIM_Try, /*On fail goto*//*Label 1004*/ 36837,
   14851             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
   14852             :       GIM_Try, /*On fail goto*//*Label 1005*/ 36136, // Rule ID 1425 //
   14853             :         GIM_CheckFeatures, GIFBS_HasMadd4_HasMips4_32r2_HasStdEnc_NoNaNsFPMath_NotFP64bit_NotInMicroMips_NotMips32r6_NotMips64r6,
   14854             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::AFGR64RegClassID,
   14855             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
   14856             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FADD,
   14857             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
   14858             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
   14859             :         GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
   14860             :         GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_FMUL,
   14861             :         GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s64,
   14862             :         GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s64,
   14863             :         GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/Mips::AFGR64RegClassID,
   14864             :         GIM_CheckRegBankForClass, /*MI*/2, /*Op*/2, /*RC*/Mips::AFGR64RegClassID,
   14865             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/Mips::AFGR64RegClassID,
   14866             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   14867             :         GIM_CheckIsSafeToFold, /*InsnID*/2,
   14868             :         // (fneg:{ *:[f64] } (fadd:{ *:[f64] } (fmul:{ *:[f64] } AFGR64Opnd:{ *:[f64] }:$fs, AFGR64Opnd:{ *:[f64] }:$ft), AFGR64Opnd:{ *:[f64] }:$fr))  =>  (NMADD_D32:{ *:[f64] } AFGR64Opnd:{ *:[f64] }:$fr, AFGR64Opnd:{ *:[f64] }:$fs, AFGR64Opnd:{ *:[f64] }:$ft)
   14869             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::NMADD_D32,
   14870             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // fd
   14871             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // fr
   14872             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // fs
   14873             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // ft
   14874             :         GIR_EraseFromParent, /*InsnID*/0,
   14875             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14876             :         // GIR_Coverage, 1425,
   14877             :         GIR_Done,
   14878             :       // Label 1005: @36136
   14879             :       GIM_Try, /*On fail goto*//*Label 1006*/ 36214, // Rule ID 1427 //
   14880             :         GIM_CheckFeatures, GIFBS_HasMadd4_HasMips4_32r2_HasStdEnc_IsFP64bit_NoNaNsFPMath_NotInMicroMips_NotMips32r6_NotMips64r6,
   14881             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::FGR64RegClassID,
   14882             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
   14883             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FADD,
   14884             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
   14885             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
   14886             :         GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
   14887             :         GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_FMUL,
   14888             :         GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s64,
   14889             :         GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s64,
   14890             :         GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/Mips::FGR64RegClassID,
   14891             :         GIM_CheckRegBankForClass, /*MI*/2, /*Op*/2, /*RC*/Mips::FGR64RegClassID,
   14892             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/Mips::FGR64RegClassID,
   14893             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   14894             :         GIM_CheckIsSafeToFold, /*InsnID*/2,
   14895             :         // (fneg:{ *:[f64] } (fadd:{ *:[f64] } (fmul:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fs, FGR64Opnd:{ *:[f64] }:$ft), FGR64Opnd:{ *:[f64] }:$fr))  =>  (NMADD_D64:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fr, FGR64Opnd:{ *:[f64] }:$fs, FGR64Opnd:{ *:[f64] }:$ft)
   14896             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::NMADD_D64,
   14897             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // fd
   14898             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // fr
   14899             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // fs
   14900             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // ft
   14901             :         GIR_EraseFromParent, /*InsnID*/0,
   14902             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14903             :         // GIR_Coverage, 1427,
   14904             :         GIR_Done,
   14905             :       // Label 1006: @36214
   14906             :       GIM_Try, /*On fail goto*//*Label 1007*/ 36292, // Rule ID 2164 //
   14907             :         GIM_CheckFeatures, GIFBS_HasMadd4_InMicroMips_InMicroMips_NoNaNsFPMath_NotFP64bit_NotMips32r6_NotMips32r6,
   14908             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::AFGR64RegClassID,
   14909             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
   14910             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FADD,
   14911             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
   14912             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
   14913             :         GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
   14914             :         GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_FMUL,
   14915             :         GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s64,
   14916             :         GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s64,
   14917             :         GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/Mips::AFGR64RegClassID,
   14918             :         GIM_CheckRegBankForClass, /*MI*/2, /*Op*/2, /*RC*/Mips::AFGR64RegClassID,
   14919             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/Mips::AFGR64RegClassID,
   14920             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   14921             :         GIM_CheckIsSafeToFold, /*InsnID*/2,
   14922             :         // (fneg:{ *:[f64] } (fadd:{ *:[f64] } (fmul:{ *:[f64] } AFGR64Opnd:{ *:[f64] }:$fs, AFGR64Opnd:{ *:[f64] }:$ft), AFGR64Opnd:{ *:[f64] }:$fr))  =>  (NMADD_D32_MM:{ *:[f64] } AFGR64Opnd:{ *:[f64] }:$fr, AFGR64Opnd:{ *:[f64] }:$fs, AFGR64Opnd:{ *:[f64] }:$ft)
   14923             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::NMADD_D32_MM,
   14924             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // fd
   14925             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // fr
   14926             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // fs
   14927             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // ft
   14928             :         GIR_EraseFromParent, /*InsnID*/0,
   14929             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14930             :         // GIR_Coverage, 2164,
   14931             :         GIR_Done,
   14932             :       // Label 1007: @36292
   14933             :       GIM_Try, /*On fail goto*//*Label 1008*/ 36370, // Rule ID 2343 //
   14934             :         GIM_CheckFeatures, GIFBS_HasMadd4_HasMips4_32r2_HasStdEnc_NoNaNsFPMath_NotFP64bit_NotInMicroMips_NotMips32r6_NotMips64r6,
   14935             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::AFGR64RegClassID,
   14936             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
   14937             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FADD,
   14938             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
   14939             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
   14940             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::AFGR64RegClassID,
   14941             :         GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
   14942             :         GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_FMUL,
   14943             :         GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s64,
   14944             :         GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s64,
   14945             :         GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/Mips::AFGR64RegClassID,
   14946             :         GIM_CheckRegBankForClass, /*MI*/2, /*Op*/2, /*RC*/Mips::AFGR64RegClassID,
   14947             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   14948             :         GIM_CheckIsSafeToFold, /*InsnID*/2,
   14949             :         // (fneg:{ *:[f64] } (fadd:{ *:[f64] } AFGR64Opnd:{ *:[f64] }:$fr, (fmul:{ *:[f64] } AFGR64Opnd:{ *:[f64] }:$fs, AFGR64Opnd:{ *:[f64] }:$ft)))  =>  (NMADD_D32:{ *:[f64] } AFGR64Opnd:{ *:[f64] }:$fr, AFGR64Opnd:{ *:[f64] }:$fs, AFGR64Opnd:{ *:[f64] }:$ft)
   14950             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::NMADD_D32,
   14951             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // fd
   14952             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // fr
   14953             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // fs
   14954             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // ft
   14955             :         GIR_EraseFromParent, /*InsnID*/0,
   14956             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14957             :         // GIR_Coverage, 2343,
   14958             :         GIR_Done,
   14959             :       // Label 1008: @36370
   14960             :       GIM_Try, /*On fail goto*//*Label 1009*/ 36448, // Rule ID 2344 //
   14961             :         GIM_CheckFeatures, GIFBS_HasMadd4_HasMips4_32r2_HasStdEnc_IsFP64bit_NoNaNsFPMath_NotInMicroMips_NotMips32r6_NotMips64r6,
   14962             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::FGR64RegClassID,
   14963             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
   14964             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FADD,
   14965             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
   14966             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
   14967             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::FGR64RegClassID,
   14968             :         GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
   14969             :         GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_FMUL,
   14970             :         GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s64,
   14971             :         GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s64,
   14972             :         GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/Mips::FGR64RegClassID,
   14973             :         GIM_CheckRegBankForClass, /*MI*/2, /*Op*/2, /*RC*/Mips::FGR64RegClassID,
   14974             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   14975             :         GIM_CheckIsSafeToFold, /*InsnID*/2,
   14976             :         // (fneg:{ *:[f64] } (fadd:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fr, (fmul:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fs, FGR64Opnd:{ *:[f64] }:$ft)))  =>  (NMADD_D64:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fr, FGR64Opnd:{ *:[f64] }:$fs, FGR64Opnd:{ *:[f64] }:$ft)
   14977             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::NMADD_D64,
   14978             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // fd
   14979             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // fr
   14980             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // fs
   14981             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // ft
   14982             :         GIR_EraseFromParent, /*InsnID*/0,
   14983             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   14984             :         // GIR_Coverage, 2344,
   14985             :         GIR_Done,
   14986             :       // Label 1009: @36448
   14987             :       GIM_Try, /*On fail goto*//*Label 1010*/ 36526, // Rule ID 2440 //
   14988             :         GIM_CheckFeatures, GIFBS_HasMadd4_InMicroMips_InMicroMips_NoNaNsFPMath_NotFP64bit_NotMips32r6_NotMips32r6,
   14989             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::AFGR64RegClassID,
   14990             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
   14991             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FADD,
   14992             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
   14993             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
   14994             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::AFGR64RegClassID,
   14995             :         GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
   14996             :         GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_FMUL,
   14997             :         GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s64,
   14998             :         GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s64,
   14999             :         GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/Mips::AFGR64RegClassID,
   15000             :         GIM_CheckRegBankForClass, /*MI*/2, /*Op*/2, /*RC*/Mips::AFGR64RegClassID,
   15001             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   15002             :         GIM_CheckIsSafeToFold, /*InsnID*/2,
   15003             :         // (fneg:{ *:[f64] } (fadd:{ *:[f64] } AFGR64Opnd:{ *:[f64] }:$fr, (fmul:{ *:[f64] } AFGR64Opnd:{ *:[f64] }:$fs, AFGR64Opnd:{ *:[f64] }:$ft)))  =>  (NMADD_D32_MM:{ *:[f64] } AFGR64Opnd:{ *:[f64] }:$fr, AFGR64Opnd:{ *:[f64] }:$fs, AFGR64Opnd:{ *:[f64] }:$ft)
   15004             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::NMADD_D32_MM,
   15005             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // fd
   15006             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // fr
   15007             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // fs
   15008             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // ft
   15009             :         GIR_EraseFromParent, /*InsnID*/0,
   15010             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15011             :         // GIR_Coverage, 2440,
   15012             :         GIR_Done,
   15013             :       // Label 1010: @36526
   15014             :       GIM_Try, /*On fail goto*//*Label 1011*/ 36604, // Rule ID 1426 //
   15015             :         GIM_CheckFeatures, GIFBS_HasMadd4_HasMips4_32r2_HasStdEnc_NoNaNsFPMath_NotFP64bit_NotInMicroMips_NotMips32r6_NotMips64r6,
   15016             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::AFGR64RegClassID,
   15017             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
   15018             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FSUB,
   15019             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
   15020             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
   15021             :         GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
   15022             :         GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_FMUL,
   15023             :         GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s64,
   15024             :         GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s64,
   15025             :         GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/Mips::AFGR64RegClassID,
   15026             :         GIM_CheckRegBankForClass, /*MI*/2, /*Op*/2, /*RC*/Mips::AFGR64RegClassID,
   15027             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/Mips::AFGR64RegClassID,
   15028             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   15029             :         GIM_CheckIsSafeToFold, /*InsnID*/2,
   15030             :         // (fneg:{ *:[f64] } (fsub:{ *:[f64] } (fmul:{ *:[f64] } AFGR64Opnd:{ *:[f64] }:$fs, AFGR64Opnd:{ *:[f64] }:$ft), AFGR64Opnd:{ *:[f64] }:$fr))  =>  (NMSUB_D32:{ *:[f64] } AFGR64Opnd:{ *:[f64] }:$fr, AFGR64Opnd:{ *:[f64] }:$fs, AFGR64Opnd:{ *:[f64] }:$ft)
   15031             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::NMSUB_D32,
   15032             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // fd
   15033             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // fr
   15034             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // fs
   15035             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // ft
   15036             :         GIR_EraseFromParent, /*InsnID*/0,
   15037             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15038             :         // GIR_Coverage, 1426,
   15039             :         GIR_Done,
   15040             :       // Label 1011: @36604
   15041             :       GIM_Try, /*On fail goto*//*Label 1012*/ 36682, // Rule ID 1428 //
   15042             :         GIM_CheckFeatures, GIFBS_HasMadd4_HasMips4_32r2_HasStdEnc_IsFP64bit_NoNaNsFPMath_NotInMicroMips_NotMips32r6_NotMips64r6,
   15043             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::FGR64RegClassID,
   15044             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
   15045             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FSUB,
   15046             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
   15047             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
   15048             :         GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
   15049             :         GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_FMUL,
   15050             :         GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s64,
   15051             :         GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s64,
   15052             :         GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/Mips::FGR64RegClassID,
   15053             :         GIM_CheckRegBankForClass, /*MI*/2, /*Op*/2, /*RC*/Mips::FGR64RegClassID,
   15054             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/Mips::FGR64RegClassID,
   15055             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   15056             :         GIM_CheckIsSafeToFold, /*InsnID*/2,
   15057             :         // (fneg:{ *:[f64] } (fsub:{ *:[f64] } (fmul:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fs, FGR64Opnd:{ *:[f64] }:$ft), FGR64Opnd:{ *:[f64] }:$fr))  =>  (NMSUB_D64:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fr, FGR64Opnd:{ *:[f64] }:$fs, FGR64Opnd:{ *:[f64] }:$ft)
   15058             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::NMSUB_D64,
   15059             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // fd
   15060             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // fr
   15061             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // fs
   15062             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // ft
   15063             :         GIR_EraseFromParent, /*InsnID*/0,
   15064             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15065             :         // GIR_Coverage, 1428,
   15066             :         GIR_Done,
   15067             :       // Label 1012: @36682
   15068             :       GIM_Try, /*On fail goto*//*Label 1013*/ 36760, // Rule ID 2165 //
   15069             :         GIM_CheckFeatures, GIFBS_HasMadd4_InMicroMips_InMicroMips_NoNaNsFPMath_NotFP64bit_NotMips32r6_NotMips32r6,
   15070             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::AFGR64RegClassID,
   15071             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
   15072             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FSUB,
   15073             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
   15074             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
   15075             :         GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
   15076             :         GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_FMUL,
   15077             :         GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s64,
   15078             :         GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s64,
   15079             :         GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/Mips::AFGR64RegClassID,
   15080             :         GIM_CheckRegBankForClass, /*MI*/2, /*Op*/2, /*RC*/Mips::AFGR64RegClassID,
   15081             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/Mips::AFGR64RegClassID,
   15082             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   15083             :         GIM_CheckIsSafeToFold, /*InsnID*/2,
   15084             :         // (fneg:{ *:[f64] } (fsub:{ *:[f64] } (fmul:{ *:[f64] } AFGR64Opnd:{ *:[f64] }:$fs, AFGR64Opnd:{ *:[f64] }:$ft), AFGR64Opnd:{ *:[f64] }:$fr))  =>  (NMSUB_D32_MM:{ *:[f64] } AFGR64Opnd:{ *:[f64] }:$fr, AFGR64Opnd:{ *:[f64] }:$fs, AFGR64Opnd:{ *:[f64] }:$ft)
   15085             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::NMSUB_D32_MM,
   15086             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // fd
   15087             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // fr
   15088             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // fs
   15089             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // ft
   15090             :         GIR_EraseFromParent, /*InsnID*/0,
   15091             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15092             :         // GIR_Coverage, 2165,
   15093             :         GIR_Done,
   15094             :       // Label 1013: @36760
   15095             :       GIM_Try, /*On fail goto*//*Label 1014*/ 36779, // Rule ID 112 //
   15096             :         GIM_CheckFeatures, GIFBS_HasStdEnc_IsNotSoftFloat_NotFP64bit_NotInMicroMips,
   15097             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::AFGR64RegClassID,
   15098             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::AFGR64RegClassID,
   15099             :         // (fneg:{ *:[f64] } AFGR64Opnd:{ *:[f64] }:$fs)  =>  (FNEG_D32:{ *:[f64] } AFGR64Opnd:{ *:[f64] }:$fs)
   15100             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FNEG_D32,
   15101             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15102             :         // GIR_Coverage, 112,
   15103             :         GIR_Done,
   15104             :       // Label 1014: @36779
   15105             :       GIM_Try, /*On fail goto*//*Label 1015*/ 36798, // Rule ID 113 //
   15106             :         GIM_CheckFeatures, GIFBS_HasStdEnc_IsFP64bit_IsNotSoftFloat_NotInMicroMips,
   15107             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::FGR64RegClassID,
   15108             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::FGR64RegClassID,
   15109             :         // (fneg:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fs)  =>  (FNEG_D64:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fs)
   15110             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FNEG_D64,
   15111             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15112             :         // GIR_Coverage, 113,
   15113             :         GIR_Done,
   15114             :       // Label 1015: @36798
   15115             :       GIM_Try, /*On fail goto*//*Label 1016*/ 36817, // Rule ID 1122 //
   15116             :         GIM_CheckFeatures, GIFBS_InMicroMips_IsNotSoftFloat_NotFP64bit,
   15117             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::AFGR64RegClassID,
   15118             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::AFGR64RegClassID,
   15119             :         // (fneg:{ *:[f64] } AFGR64Opnd:{ *:[f64] }:$fs)  =>  (FNEG_D32_MM:{ *:[f64] } AFGR64Opnd:{ *:[f64] }:$fs)
   15120             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FNEG_D32_MM,
   15121             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15122             :         // GIR_Coverage, 1122,
   15123             :         GIR_Done,
   15124             :       // Label 1016: @36817
   15125             :       GIM_Try, /*On fail goto*//*Label 1017*/ 36836, // Rule ID 1123 //
   15126             :         GIM_CheckFeatures, GIFBS_InMicroMips_IsFP64bit_IsNotSoftFloat,
   15127             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::FGR64RegClassID,
   15128             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::FGR64RegClassID,
   15129             :         // (fneg:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fs)  =>  (FNEG_D64_MM:{ *:[f64] } FGR64Opnd:{ *:[f64] }:$fs)
   15130             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FNEG_D64_MM,
   15131             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15132             :         // GIR_Coverage, 1123,
   15133             :         GIR_Done,
   15134             :       // Label 1017: @36836
   15135             :       GIM_Reject,
   15136             :     // Label 1004: @36837
   15137             :     GIM_Reject,
   15138             :     // Label 993: @36838
   15139             :     GIM_Reject,
   15140             :     // Label 32: @36839
   15141             :     GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 3, /*)*//*default:*//*Label 1020*/ 36987,
   15142             :     /*GILLT_s32*//*Label 1018*/ 36847,
   15143             :     /*GILLT_s64*//*Label 1019*/ 36871,
   15144             :     // Label 1018: @36847
   15145             :     GIM_Try, /*On fail goto*//*Label 1021*/ 36870, // Rule ID 1024 //
   15146             :       GIM_CheckFeatures, GIFBS_HasMSA,
   15147             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
   15148             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::FGR32RegClassID,
   15149             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128F16RegClassID,
   15150             :       // (fpextend:{ *:[f32] } MSA128F16:{ *:[f16] }:$ws)  =>  (MSA_FP_EXTEND_W_PSEUDO:{ *:[f32] } MSA128F16:{ *:[f16] }:$ws)
   15151             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::MSA_FP_EXTEND_W_PSEUDO,
   15152             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15153             :       // GIR_Coverage, 1024,
   15154             :       GIR_Done,
   15155             :     // Label 1021: @36870
   15156             :     GIM_Reject,
   15157             :     // Label 1019: @36871
   15158             :     GIM_Try, /*On fail goto*//*Label 1022*/ 36894, // Rule ID 1026 //
   15159             :       GIM_CheckFeatures, GIFBS_HasMSA,
   15160             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
   15161             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::FGR64RegClassID,
   15162             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128F16RegClassID,
   15163             :       // (fpextend:{ *:[f64] } MSA128F16:{ *:[f16] }:$ws)  =>  (MSA_FP_EXTEND_D_PSEUDO:{ *:[f64] } MSA128F16:{ *:[f16] }:$ws)
   15164             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::MSA_FP_EXTEND_D_PSEUDO,
   15165             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15166             :       // GIR_Coverage, 1026,
   15167             :       GIR_Done,
   15168             :     // Label 1022: @36894
   15169             :     GIM_Try, /*On fail goto*//*Label 1023*/ 36917, // Rule ID 1412 //
   15170             :       GIM_CheckFeatures, GIFBS_HasStdEnc_NotFP64bit_NotInMicroMips,
   15171             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
   15172             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::AFGR64RegClassID,
   15173             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::FGR32RegClassID,
   15174             :       // (fpextend:{ *:[f64] } FGR32Opnd:{ *:[f32] }:$src)  =>  (CVT_D32_S:{ *:[f64] } FGR32Opnd:{ *:[f32] }:$src)
   15175             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::CVT_D32_S,
   15176             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15177             :       // GIR_Coverage, 1412,
   15178             :       GIR_Done,
   15179             :     // Label 1023: @36917
   15180             :     GIM_Try, /*On fail goto*//*Label 1024*/ 36940, // Rule ID 1422 //
   15181             :       GIM_CheckFeatures, GIFBS_HasStdEnc_IsFP64bit_NotInMicroMips,
   15182             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
   15183             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::FGR64RegClassID,
   15184             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::FGR32RegClassID,
   15185             :       // (fpextend:{ *:[f64] } FGR32Opnd:{ *:[f32] }:$src)  =>  (CVT_D64_S:{ *:[f64] } FGR32Opnd:{ *:[f32] }:$src)
   15186             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::CVT_D64_S,
   15187             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15188             :       // GIR_Coverage, 1422,
   15189             :       GIR_Done,
   15190             :     // Label 1024: @36940
   15191             :     GIM_Try, /*On fail goto*//*Label 1025*/ 36963, // Rule ID 2174 //
   15192             :       GIM_CheckFeatures, GIFBS_InMicroMips_IsFP64bit,
   15193             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
   15194             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::FGR64RegClassID,
   15195             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::FGR32RegClassID,
   15196             :       // (fpextend:{ *:[f64] } FGR32Opnd:{ *:[f32] }:$src)  =>  (CVT_D64_S_MM:{ *:[f64] } FGR32Opnd:{ *:[f32] }:$src)
   15197             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::CVT_D64_S_MM,
   15198             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15199             :       // GIR_Coverage, 2174,
   15200             :       GIR_Done,
   15201             :     // Label 1025: @36963
   15202             :     GIM_Try, /*On fail goto*//*Label 1026*/ 36986, // Rule ID 2176 //
   15203             :       GIM_CheckFeatures, GIFBS_InMicroMips_NotFP64bit,
   15204             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
   15205             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::AFGR64RegClassID,
   15206             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::FGR32RegClassID,
   15207             :       // (fpextend:{ *:[f64] } FGR32Opnd:{ *:[f32] }:$src)  =>  (CVT_D32_S_MM:{ *:[f64] } FGR32Opnd:{ *:[f32] }:$src)
   15208             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::CVT_D32_S_MM,
   15209             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15210             :       // GIR_Coverage, 2176,
   15211             :       GIR_Done,
   15212             :     // Label 1026: @36986
   15213             :     GIM_Reject,
   15214             :     // Label 1020: @36987
   15215             :     GIM_Reject,
   15216             :     // Label 33: @36988
   15217             :     GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 2, /*)*//*default:*//*Label 1029*/ 37115,
   15218             :     /*GILLT_s16*//*Label 1027*/ 36996,
   15219             :     /*GILLT_s32*//*Label 1028*/ 37043,
   15220             :     // Label 1027: @36996
   15221             :     GIM_Try, /*On fail goto*//*Label 1030*/ 37019, // Rule ID 1025 //
   15222             :       GIM_CheckFeatures, GIFBS_HasMSA,
   15223             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
   15224             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128F16RegClassID,
   15225             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::FGR32RegClassID,
   15226             :       // (fpround:{ *:[f16] } FGR32Opnd:{ *:[f32] }:$fs)  =>  (MSA_FP_ROUND_W_PSEUDO:{ *:[f16] } FGR32Opnd:{ *:[f32] }:$fs)
   15227             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::MSA_FP_ROUND_W_PSEUDO,
   15228             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15229             :       // GIR_Coverage, 1025,
   15230             :       GIR_Done,
   15231             :     // Label 1030: @37019
   15232             :     GIM_Try, /*On fail goto*//*Label 1031*/ 37042, // Rule ID 1027 //
   15233             :       GIM_CheckFeatures, GIFBS_HasMSA,
   15234             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
   15235             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128F16RegClassID,
   15236             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::FGR64RegClassID,
   15237             :       // (fpround:{ *:[f16] } FGR64Opnd:{ *:[f64] }:$fs)  =>  (MSA_FP_ROUND_D_PSEUDO:{ *:[f16] } FGR64Opnd:{ *:[f64] }:$fs)
   15238             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::MSA_FP_ROUND_D_PSEUDO,
   15239             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15240             :       // GIR_Coverage, 1027,
   15241             :       GIR_Done,
   15242             :     // Label 1031: @37042
   15243             :     GIM_Reject,
   15244             :     // Label 1028: @37043
   15245             :     GIM_Try, /*On fail goto*//*Label 1032*/ 37114,
   15246             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
   15247             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::FGR32RegClassID,
   15248             :       GIM_Try, /*On fail goto*//*Label 1033*/ 37068, // Rule ID 1411 //
   15249             :         GIM_CheckFeatures, GIFBS_HasStdEnc_NotFP64bit_NotInMicroMips,
   15250             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::AFGR64RegClassID,
   15251             :         // (fpround:{ *:[f32] } AFGR64Opnd:{ *:[f64] }:$src)  =>  (CVT_S_D32:{ *:[f32] } AFGR64Opnd:{ *:[f64] }:$src)
   15252             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::CVT_S_D32,
   15253             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15254             :         // GIR_Coverage, 1411,
   15255             :         GIR_Done,
   15256             :       // Label 1033: @37068
   15257             :       GIM_Try, /*On fail goto*//*Label 1034*/ 37083, // Rule ID 1421 //
   15258             :         GIM_CheckFeatures, GIFBS_HasStdEnc_IsFP64bit_NotInMicroMips,
   15259             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::FGR64RegClassID,
   15260             :         // (fpround:{ *:[f32] } FGR64Opnd:{ *:[f64] }:$src)  =>  (CVT_S_D64:{ *:[f32] } FGR64Opnd:{ *:[f64] }:$src)
   15261             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::CVT_S_D64,
   15262             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15263             :         // GIR_Coverage, 1421,
   15264             :         GIR_Done,
   15265             :       // Label 1034: @37083
   15266             :       GIM_Try, /*On fail goto*//*Label 1035*/ 37098, // Rule ID 2173 //
   15267             :         GIM_CheckFeatures, GIFBS_InMicroMips_IsFP64bit,
   15268             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::FGR64RegClassID,
   15269             :         // (fpround:{ *:[f32] } FGR64Opnd:{ *:[f64] }:$src)  =>  (CVT_S_D64_MM:{ *:[f32] } FGR64Opnd:{ *:[f64] }:$src)
   15270             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::CVT_S_D64_MM,
   15271             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15272             :         // GIR_Coverage, 2173,
   15273             :         GIR_Done,
   15274             :       // Label 1035: @37098
   15275             :       GIM_Try, /*On fail goto*//*Label 1036*/ 37113, // Rule ID 2175 //
   15276             :         GIM_CheckFeatures, GIFBS_InMicroMips_NotFP64bit,
   15277             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::AFGR64RegClassID,
   15278             :         // (fpround:{ *:[f32] } AFGR64Opnd:{ *:[f64] }:$src)  =>  (CVT_S_D32_MM:{ *:[f32] } AFGR64Opnd:{ *:[f64] }:$src)
   15279             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::CVT_S_D32_MM,
   15280             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15281             :         // GIR_Coverage, 2175,
   15282             :         GIR_Done,
   15283             :       // Label 1036: @37113
   15284             :       GIM_Reject,
   15285             :     // Label 1032: @37114
   15286             :     GIM_Reject,
   15287             :     // Label 1029: @37115
   15288             :     GIM_Reject,
   15289             :     // Label 34: @37116
   15290             :     GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/4, 7, /*)*//*default:*//*Label 1039*/ 37173,
   15291             :     /*GILLT_v2s64*//*Label 1037*/ 37125, 0,
   15292             :     /*GILLT_v4s32*//*Label 1038*/ 37149,
   15293             :     // Label 1037: @37125
   15294             :     GIM_Try, /*On fail goto*//*Label 1040*/ 37148, // Rule ID 745 //
   15295             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   15296             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
   15297             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
   15298             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128DRegClassID,
   15299             :       // (fp_to_sint:{ *:[v2i64] } MSA128DOpnd:{ *:[v2f64] }:$ws)  =>  (FTRUNC_S_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2f64] }:$ws)
   15300             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FTRUNC_S_D,
   15301             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15302             :       // GIR_Coverage, 745,
   15303             :       GIR_Done,
   15304             :     // Label 1040: @37148
   15305             :     GIM_Reject,
   15306             :     // Label 1038: @37149
   15307             :     GIM_Try, /*On fail goto*//*Label 1041*/ 37172, // Rule ID 744 //
   15308             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   15309             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
   15310             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
   15311             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128WRegClassID,
   15312             :       // (fp_to_sint:{ *:[v4i32] } MSA128WOpnd:{ *:[v4f32] }:$ws)  =>  (FTRUNC_S_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4f32] }:$ws)
   15313             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FTRUNC_S_W,
   15314             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15315             :       // GIR_Coverage, 744,
   15316             :       GIR_Done,
   15317             :     // Label 1041: @37172
   15318             :     GIM_Reject,
   15319             :     // Label 1039: @37173
   15320             :     GIM_Reject,
   15321             :     // Label 35: @37174
   15322             :     GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/4, 7, /*)*//*default:*//*Label 1044*/ 37231,
   15323             :     /*GILLT_v2s64*//*Label 1042*/ 37183, 0,
   15324             :     /*GILLT_v4s32*//*Label 1043*/ 37207,
   15325             :     // Label 1042: @37183
   15326             :     GIM_Try, /*On fail goto*//*Label 1045*/ 37206, // Rule ID 747 //
   15327             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   15328             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
   15329             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
   15330             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128DRegClassID,
   15331             :       // (fp_to_uint:{ *:[v2i64] } MSA128DOpnd:{ *:[v2f64] }:$ws)  =>  (FTRUNC_U_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2f64] }:$ws)
   15332             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FTRUNC_U_D,
   15333             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15334             :       // GIR_Coverage, 747,
   15335             :       GIR_Done,
   15336             :     // Label 1045: @37206
   15337             :     GIM_Reject,
   15338             :     // Label 1043: @37207
   15339             :     GIM_Try, /*On fail goto*//*Label 1046*/ 37230, // Rule ID 746 //
   15340             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   15341             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
   15342             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
   15343             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128WRegClassID,
   15344             :       // (fp_to_uint:{ *:[v4i32] } MSA128WOpnd:{ *:[v4f32] }:$ws)  =>  (FTRUNC_U_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4f32] }:$ws)
   15345             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FTRUNC_U_W,
   15346             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15347             :       // GIR_Coverage, 746,
   15348             :       GIR_Done,
   15349             :     // Label 1046: @37230
   15350             :     GIM_Reject,
   15351             :     // Label 1044: @37231
   15352             :     GIM_Reject,
   15353             :     // Label 36: @37232
   15354             :     GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 7, /*)*//*default:*//*Label 1051*/ 37384,
   15355             :     /*GILLT_s32*//*Label 1047*/ 37244,
   15356             :     /*GILLT_s64*//*Label 1048*/ 37266, 0,
   15357             :     /*GILLT_v2s64*//*Label 1049*/ 37336, 0,
   15358             :     /*GILLT_v4s32*//*Label 1050*/ 37360,
   15359             :     // Label 1047: @37244
   15360             :     GIM_Try, /*On fail goto*//*Label 1052*/ 37265, // Rule ID 1406 //
   15361             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
   15362             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::FGR32RegClassID,
   15363             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
   15364             :       // (sint_to_fp:{ *:[f32] } GPR32Opnd:{ *:[i32] }:$src)  =>  (PseudoCVT_S_W:{ *:[f32] } GPR32Opnd:{ *:[i32] }:$src)
   15365             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::PseudoCVT_S_W,
   15366             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15367             :       // GIR_Coverage, 1406,
   15368             :       GIR_Done,
   15369             :     // Label 1052: @37265
   15370             :     GIM_Reject,
   15371             :     // Label 1048: @37266
   15372             :     GIM_Try, /*On fail goto*//*Label 1053*/ 37289, // Rule ID 1409 //
   15373             :       GIM_CheckFeatures, GIFBS_NotFP64bit,
   15374             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
   15375             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::AFGR64RegClassID,
   15376             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
   15377             :       // (sint_to_fp:{ *:[f64] } GPR32Opnd:{ *:[i32] }:$src)  =>  (PseudoCVT_D32_W:{ *:[f64] } GPR32Opnd:{ *:[i32] }:$src)
   15378             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::PseudoCVT_D32_W,
   15379             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15380             :       // GIR_Coverage, 1409,
   15381             :       GIR_Done,
   15382             :     // Label 1053: @37289
   15383             :     GIM_Try, /*On fail goto*//*Label 1054*/ 37312, // Rule ID 1415 //
   15384             :       GIM_CheckFeatures, GIFBS_IsFP64bit,
   15385             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
   15386             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::FGR64RegClassID,
   15387             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
   15388             :       // (sint_to_fp:{ *:[f64] } GPR32Opnd:{ *:[i32] }:$src)  =>  (PseudoCVT_D64_W:{ *:[f64] } GPR32Opnd:{ *:[i32] }:$src)
   15389             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::PseudoCVT_D64_W,
   15390             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15391             :       // GIR_Coverage, 1415,
   15392             :       GIR_Done,
   15393             :     // Label 1054: @37312
   15394             :     GIM_Try, /*On fail goto*//*Label 1055*/ 37335, // Rule ID 1417 //
   15395             :       GIM_CheckFeatures, GIFBS_IsFP64bit,
   15396             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
   15397             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::FGR64RegClassID,
   15398             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR64RegClassID,
   15399             :       // (sint_to_fp:{ *:[f64] } GPR64Opnd:{ *:[i64] }:$src)  =>  (PseudoCVT_D64_L:{ *:[f64] } GPR64Opnd:{ *:[i64] }:$src)
   15400             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::PseudoCVT_D64_L,
   15401             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15402             :       // GIR_Coverage, 1417,
   15403             :       GIR_Done,
   15404             :     // Label 1055: @37335
   15405             :     GIM_Reject,
   15406             :     // Label 1049: @37336
   15407             :     GIM_Try, /*On fail goto*//*Label 1056*/ 37359, // Rule ID 677 //
   15408             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   15409             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
   15410             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
   15411             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128DRegClassID,
   15412             :       // (sint_to_fp:{ *:[v2f64] } MSA128DOpnd:{ *:[v2i64] }:$ws)  =>  (FFINT_S_D:{ *:[v2f64] } MSA128DOpnd:{ *:[v2i64] }:$ws)
   15413             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FFINT_S_D,
   15414             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15415             :       // GIR_Coverage, 677,
   15416             :       GIR_Done,
   15417             :     // Label 1056: @37359
   15418             :     GIM_Reject,
   15419             :     // Label 1050: @37360
   15420             :     GIM_Try, /*On fail goto*//*Label 1057*/ 37383, // Rule ID 676 //
   15421             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   15422             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
   15423             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
   15424             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128WRegClassID,
   15425             :       // (sint_to_fp:{ *:[v4f32] } MSA128WOpnd:{ *:[v4i32] }:$ws)  =>  (FFINT_S_W:{ *:[v4f32] } MSA128WOpnd:{ *:[v4i32] }:$ws)
   15426             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FFINT_S_W,
   15427             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15428             :       // GIR_Coverage, 676,
   15429             :       GIR_Done,
   15430             :     // Label 1057: @37383
   15431             :     GIM_Reject,
   15432             :     // Label 1051: @37384
   15433             :     GIM_Reject,
   15434             :     // Label 37: @37385
   15435             :     GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/4, 7, /*)*//*default:*//*Label 1060*/ 37442,
   15436             :     /*GILLT_v2s64*//*Label 1058*/ 37394, 0,
   15437             :     /*GILLT_v4s32*//*Label 1059*/ 37418,
   15438             :     // Label 1058: @37394
   15439             :     GIM_Try, /*On fail goto*//*Label 1061*/ 37417, // Rule ID 679 //
   15440             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   15441             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
   15442             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
   15443             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128DRegClassID,
   15444             :       // (uint_to_fp:{ *:[v2f64] } MSA128DOpnd:{ *:[v2i64] }:$ws)  =>  (FFINT_U_D:{ *:[v2f64] } MSA128DOpnd:{ *:[v2i64] }:$ws)
   15445             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FFINT_U_D,
   15446             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15447             :       // GIR_Coverage, 679,
   15448             :       GIR_Done,
   15449             :     // Label 1061: @37417
   15450             :     GIM_Reject,
   15451             :     // Label 1059: @37418
   15452             :     GIM_Try, /*On fail goto*//*Label 1062*/ 37441, // Rule ID 678 //
   15453             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   15454             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
   15455             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
   15456             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128WRegClassID,
   15457             :       // (uint_to_fp:{ *:[v4f32] } MSA128WOpnd:{ *:[v4i32] }:$ws)  =>  (FFINT_U_W:{ *:[v4f32] } MSA128WOpnd:{ *:[v4i32] }:$ws)
   15458             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::FFINT_U_W,
   15459             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15460             :       // GIR_Coverage, 678,
   15461             :       GIR_Done,
   15462             :     // Label 1062: @37441
   15463             :     GIM_Reject,
   15464             :     // Label 1060: @37442
   15465             :     GIM_Reject,
   15466             :     // Label 38: @37443
   15467             :     GIM_Try, /*On fail goto*//*Label 1063*/ 37527,
   15468             :       GIM_CheckIsMBB, /*MI*/0, /*Op*/0,
   15469             :       GIM_Try, /*On fail goto*//*Label 1064*/ 37462, // Rule ID 73 //
   15470             :         GIM_CheckFeatures, GIFBS_HasStdEnc_NotInMicroMips_RelocNotPIC,
   15471             :         // (br (bb:{ *:[Other] }):$target)  =>  (J (bb:{ *:[Other] }):$target)
   15472             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::J,
   15473             :         GIR_AddImplicitDef, /*InsnID*/0, Mips::AT,
   15474             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15475             :         // GIR_Coverage, 73,
   15476             :         GIR_Done,
   15477             :       // Label 1064: @37462
   15478             :       GIM_Try, /*On fail goto*//*Label 1065*/ 37476, // Rule ID 80 //
   15479             :         GIM_CheckFeatures, GIFBS_HasStdEnc_NotInMicroMips,
   15480             :         // (br (bb:{ *:[Other] }):$offset)  =>  (B (bb:{ *:[Other] }):$offset)
   15481             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::B,
   15482             :         GIR_AddImplicitDef, /*InsnID*/0, Mips::AT,
   15483             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15484             :         // GIR_Coverage, 80,
   15485             :         GIR_Done,
   15486             :       // Label 1065: @37476
   15487             :       GIM_Try, /*On fail goto*//*Label 1066*/ 37490, // Rule ID 1072 //
   15488             :         GIM_CheckFeatures, GIFBS_InMicroMips_NotMips32r6_RelocNotPIC,
   15489             :         // (br (bb:{ *:[Other] }):$target)  =>  (J_MM (bb:{ *:[Other] }):$target)
   15490             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::J_MM,
   15491             :         GIR_AddImplicitDef, /*InsnID*/0, Mips::AT,
   15492             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15493             :         // GIR_Coverage, 1072,
   15494             :         GIR_Done,
   15495             :       // Label 1066: @37490
   15496             :       GIM_Try, /*On fail goto*//*Label 1067*/ 37504, // Rule ID 1081 //
   15497             :         GIM_CheckFeatures, GIFBS_InMicroMips_NotMips32r6_RelocPIC,
   15498             :         // (br (bb:{ *:[Other] }):$offset)  =>  (B_MM (bb:{ *:[Other] }):$offset)
   15499             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::B_MM,
   15500             :         GIR_AddImplicitDef, /*InsnID*/0, Mips::AT,
   15501             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15502             :         // GIR_Coverage, 1081,
   15503             :         GIR_Done,
   15504             :       // Label 1067: @37504
   15505             :       GIM_Try, /*On fail goto*//*Label 1068*/ 37515, // Rule ID 1137 //
   15506             :         GIM_CheckFeatures, GIFBS_HasMips32r6_InMicroMips,
   15507             :         // (br (bb:{ *:[Other] }):$offset)  =>  (BC_MMR6 (bb:{ *:[Other] }):$offset)
   15508             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::BC_MMR6,
   15509             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15510             :         // GIR_Coverage, 1137,
   15511             :         GIR_Done,
   15512             :       // Label 1068: @37515
   15513             :       GIM_Try, /*On fail goto*//*Label 1069*/ 37526, // Rule ID 1785 //
   15514             :         GIM_CheckFeatures, GIFBS_InMips16Mode,
   15515             :         // (br (bb:{ *:[Other] }):$imm16)  =>  (Bimm16 (bb:{ *:[Other] }):$imm16)
   15516             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::Bimm16,
   15517             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15518             :         // GIR_Coverage, 1785,
   15519             :         GIR_Done,
   15520             :       // Label 1069: @37526
   15521             :       GIM_Reject,
   15522             :     // Label 1063: @37527
   15523             :     GIM_Reject,
   15524             :     // Label 39: @37528
   15525             :     GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 9, /*)*//*default:*//*Label 1076*/ 37962,
   15526             :     /*GILLT_s32*//*Label 1070*/ 37542,
   15527             :     /*GILLT_s64*//*Label 1071*/ 37734, 0,
   15528             :     /*GILLT_v2s64*//*Label 1072*/ 37866, 0,
   15529             :     /*GILLT_v4s32*//*Label 1073*/ 37890,
   15530             :     /*GILLT_v8s16*//*Label 1074*/ 37914,
   15531             :     /*GILLT_v16s8*//*Label 1075*/ 37938,
   15532             :     // Label 1070: @37542
   15533             :     GIM_Try, /*On fail goto*//*Label 1077*/ 37733,
   15534             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
   15535             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   15536             :       GIM_Try, /*On fail goto*//*Label 1078*/ 37597, // Rule ID 91 //
   15537             :         GIM_CheckFeatures, GIFBS_HasMips32_HasStdEnc_NotInMicroMips_NotMips32r6_NotMips64r6,
   15538             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
   15539             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
   15540             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
   15541             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
   15542             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
   15543             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
   15544             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   15545             :         // (ctlz:{ *:[i32] } (xor:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, -1:{ *:[i32] }))  =>  (CLO:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs)
   15546             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::CLO,
   15547             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   15548             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs
   15549             :         GIR_EraseFromParent, /*InsnID*/0,
   15550             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15551             :         // GIR_Coverage, 91,
   15552             :         GIR_Done,
   15553             :       // Label 1078: @37597
   15554             :       GIM_Try, /*On fail goto*//*Label 1079*/ 37642, // Rule ID 282 //
   15555             :         GIM_CheckFeatures, GIFBS_HasMips32r6_HasStdEnc,
   15556             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
   15557             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
   15558             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
   15559             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
   15560             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
   15561             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
   15562             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   15563             :         // (ctlz:{ *:[i32] } (xor:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, -1:{ *:[i32] }))  =>  (CLO_R6:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs)
   15564             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::CLO_R6,
   15565             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   15566             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs
   15567             :         GIR_EraseFromParent, /*InsnID*/0,
   15568             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15569             :         // GIR_Coverage, 282,
   15570             :         GIR_Done,
   15571             :       // Label 1079: @37642
   15572             :       GIM_Try, /*On fail goto*//*Label 1080*/ 37687, // Rule ID 1068 //
   15573             :         GIM_CheckFeatures, GIFBS_InMicroMips,
   15574             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
   15575             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
   15576             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
   15577             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
   15578             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
   15579             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
   15580             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   15581             :         // (ctlz:{ *:[i32] } (xor:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs, -1:{ *:[i32] }))  =>  (CLO_MM:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs)
   15582             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::CLO_MM,
   15583             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   15584             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs
   15585             :         GIR_EraseFromParent, /*InsnID*/0,
   15586             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15587             :         // GIR_Coverage, 1068,
   15588             :         GIR_Done,
   15589             :       // Label 1080: @37687
   15590             :       GIM_Try, /*On fail goto*//*Label 1081*/ 37702, // Rule ID 90 //
   15591             :         GIM_CheckFeatures, GIFBS_HasMips32_HasStdEnc_NotInMicroMips_NotMips32r6_NotMips64r6,
   15592             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
   15593             :         // (ctlz:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs)  =>  (CLZ:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs)
   15594             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::CLZ,
   15595             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15596             :         // GIR_Coverage, 90,
   15597             :         GIR_Done,
   15598             :       // Label 1081: @37702
   15599             :       GIM_Try, /*On fail goto*//*Label 1082*/ 37717, // Rule ID 283 //
   15600             :         GIM_CheckFeatures, GIFBS_HasMips32r6_HasStdEnc,
   15601             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
   15602             :         // (ctlz:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs)  =>  (CLZ_R6:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs)
   15603             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::CLZ_R6,
   15604             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15605             :         // GIR_Coverage, 283,
   15606             :         GIR_Done,
   15607             :       // Label 1082: @37717
   15608             :       GIM_Try, /*On fail goto*//*Label 1083*/ 37732, // Rule ID 1067 //
   15609             :         GIM_CheckFeatures, GIFBS_InMicroMips,
   15610             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
   15611             :         // (ctlz:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs)  =>  (CLZ_MM:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs)
   15612             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::CLZ_MM,
   15613             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15614             :         // GIR_Coverage, 1067,
   15615             :         GIR_Done,
   15616             :       // Label 1083: @37732
   15617             :       GIM_Reject,
   15618             :     // Label 1077: @37733
   15619             :     GIM_Reject,
   15620             :     // Label 1071: @37734
   15621             :     GIM_Try, /*On fail goto*//*Label 1084*/ 37865,
   15622             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
   15623             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR64RegClassID,
   15624             :       GIM_Try, /*On fail goto*//*Label 1085*/ 37789, // Rule ID 236 //
   15625             :         GIM_CheckFeatures, GIFBS_HasMips64_HasStdEnc_NotInMicroMips_NotMips64r6,
   15626             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
   15627             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
   15628             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
   15629             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
   15630             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::GPR64RegClassID,
   15631             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
   15632             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   15633             :         // (ctlz:{ *:[i64] } (xor:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rs, -1:{ *:[i64] }))  =>  (DCLO:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rs)
   15634             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::DCLO,
   15635             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   15636             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs
   15637             :         GIR_EraseFromParent, /*InsnID*/0,
   15638             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15639             :         // GIR_Coverage, 236,
   15640             :         GIR_Done,
   15641             :       // Label 1085: @37789
   15642             :       GIM_Try, /*On fail goto*//*Label 1086*/ 37834, // Rule ID 311 //
   15643             :         GIM_CheckFeatures, GIFBS_HasMips64r6_HasStdEnc_NotInMicroMips,
   15644             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
   15645             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
   15646             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
   15647             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
   15648             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/Mips::GPR64RegClassID,
   15649             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
   15650             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
   15651             :         // (ctlz:{ *:[i64] } (xor:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rs, -1:{ *:[i64] }))  =>  (DCLO_R6:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rs)
   15652             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::DCLO_R6,
   15653             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   15654             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs
   15655             :         GIR_EraseFromParent, /*InsnID*/0,
   15656             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15657             :         // GIR_Coverage, 311,
   15658             :         GIR_Done,
   15659             :       // Label 1086: @37834
   15660             :       GIM_Try, /*On fail goto*//*Label 1087*/ 37849, // Rule ID 235 //
   15661             :         GIM_CheckFeatures, GIFBS_HasMips64_HasStdEnc_NotInMicroMips_NotMips64r6,
   15662             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR64RegClassID,
   15663             :         // (ctlz:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rs)  =>  (DCLZ:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rs)
   15664             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::DCLZ,
   15665             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15666             :         // GIR_Coverage, 235,
   15667             :         GIR_Done,
   15668             :       // Label 1087: @37849
   15669             :       GIM_Try, /*On fail goto*//*Label 1088*/ 37864, // Rule ID 312 //
   15670             :         GIM_CheckFeatures, GIFBS_HasMips64r6_HasStdEnc_NotInMicroMips,
   15671             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR64RegClassID,
   15672             :         // (ctlz:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rs)  =>  (DCLZ_R6:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rs)
   15673             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::DCLZ_R6,
   15674             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15675             :         // GIR_Coverage, 312,
   15676             :         GIR_Done,
   15677             :       // Label 1088: @37864
   15678             :       GIM_Reject,
   15679             :     // Label 1084: @37865
   15680             :     GIM_Reject,
   15681             :     // Label 1072: @37866
   15682             :     GIM_Try, /*On fail goto*//*Label 1089*/ 37889, // Rule ID 883 //
   15683             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   15684             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
   15685             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
   15686             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128DRegClassID,
   15687             :       // (ctlz:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws)  =>  (NLZC_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws)
   15688             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::NLZC_D,
   15689             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15690             :       // GIR_Coverage, 883,
   15691             :       GIR_Done,
   15692             :     // Label 1089: @37889
   15693             :     GIM_Reject,
   15694             :     // Label 1073: @37890
   15695             :     GIM_Try, /*On fail goto*//*Label 1090*/ 37913, // Rule ID 882 //
   15696             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   15697             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
   15698             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
   15699             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128WRegClassID,
   15700             :       // (ctlz:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws)  =>  (NLZC_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws)
   15701             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::NLZC_W,
   15702             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15703             :       // GIR_Coverage, 882,
   15704             :       GIR_Done,
   15705             :     // Label 1090: @37913
   15706             :     GIM_Reject,
   15707             :     // Label 1074: @37914
   15708             :     GIM_Try, /*On fail goto*//*Label 1091*/ 37937, // Rule ID 881 //
   15709             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   15710             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
   15711             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
   15712             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128HRegClassID,
   15713             :       // (ctlz:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws)  =>  (NLZC_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws)
   15714             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::NLZC_H,
   15715             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15716             :       // GIR_Coverage, 881,
   15717             :       GIR_Done,
   15718             :     // Label 1091: @37937
   15719             :     GIM_Reject,
   15720             :     // Label 1075: @37938
   15721             :     GIM_Try, /*On fail goto*//*Label 1092*/ 37961, // Rule ID 880 //
   15722             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   15723             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
   15724             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
   15725             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128BRegClassID,
   15726             :       // (ctlz:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws)  =>  (NLZC_B:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws)
   15727             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::NLZC_B,
   15728             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15729             :       // GIR_Coverage, 880,
   15730             :       GIR_Done,
   15731             :     // Label 1092: @37961
   15732             :     GIM_Reject,
   15733             :     // Label 1076: @37962
   15734             :     GIM_Reject,
   15735             :     // Label 40: @37963
   15736             :     GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 9, /*)*//*default:*//*Label 1099*/ 38121,
   15737             :     /*GILLT_s32*//*Label 1093*/ 37977,
   15738             :     /*GILLT_s64*//*Label 1094*/ 38001, 0,
   15739             :     /*GILLT_v2s64*//*Label 1095*/ 38025, 0,
   15740             :     /*GILLT_v4s32*//*Label 1096*/ 38049,
   15741             :     /*GILLT_v8s16*//*Label 1097*/ 38073,
   15742             :     /*GILLT_v16s8*//*Label 1098*/ 38097,
   15743             :     // Label 1093: @37977
   15744             :     GIM_Try, /*On fail goto*//*Label 1100*/ 38000, // Rule ID 250 //
   15745             :       GIM_CheckFeatures, GIFBS_HasCnMips,
   15746             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
   15747             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   15748             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
   15749             :       // (ctpop:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs)  =>  (POP:{ *:[i32] } GPR32Opnd:{ *:[i32] }:$rs)
   15750             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::POP,
   15751             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15752             :       // GIR_Coverage, 250,
   15753             :       GIR_Done,
   15754             :     // Label 1100: @38000
   15755             :     GIM_Reject,
   15756             :     // Label 1094: @38001
   15757             :     GIM_Try, /*On fail goto*//*Label 1101*/ 38024, // Rule ID 251 //
   15758             :       GIM_CheckFeatures, GIFBS_HasCnMips,
   15759             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
   15760             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR64RegClassID,
   15761             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR64RegClassID,
   15762             :       // (ctpop:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rs)  =>  (DPOP:{ *:[i64] } GPR64Opnd:{ *:[i64] }:$rs)
   15763             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::DPOP,
   15764             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15765             :       // GIR_Coverage, 251,
   15766             :       GIR_Done,
   15767             :     // Label 1101: @38024
   15768             :     GIM_Reject,
   15769             :     // Label 1095: @38025
   15770             :     GIM_Try, /*On fail goto*//*Label 1102*/ 38048, // Rule ID 905 //
   15771             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   15772             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
   15773             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128DRegClassID,
   15774             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128DRegClassID,
   15775             :       // (ctpop:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws)  =>  (PCNT_D:{ *:[v2i64] } MSA128DOpnd:{ *:[v2i64] }:$ws)
   15776             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::PCNT_D,
   15777             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15778             :       // GIR_Coverage, 905,
   15779             :       GIR_Done,
   15780             :     // Label 1102: @38048
   15781             :     GIM_Reject,
   15782             :     // Label 1096: @38049
   15783             :     GIM_Try, /*On fail goto*//*Label 1103*/ 38072, // Rule ID 904 //
   15784             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   15785             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
   15786             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128WRegClassID,
   15787             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128WRegClassID,
   15788             :       // (ctpop:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws)  =>  (PCNT_W:{ *:[v4i32] } MSA128WOpnd:{ *:[v4i32] }:$ws)
   15789             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::PCNT_W,
   15790             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15791             :       // GIR_Coverage, 904,
   15792             :       GIR_Done,
   15793             :     // Label 1103: @38072
   15794             :     GIM_Reject,
   15795             :     // Label 1097: @38073
   15796             :     GIM_Try, /*On fail goto*//*Label 1104*/ 38096, // Rule ID 903 //
   15797             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   15798             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
   15799             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128HRegClassID,
   15800             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128HRegClassID,
   15801             :       // (ctpop:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws)  =>  (PCNT_H:{ *:[v8i16] } MSA128HOpnd:{ *:[v8i16] }:$ws)
   15802             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::PCNT_H,
   15803             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15804             :       // GIR_Coverage, 903,
   15805             :       GIR_Done,
   15806             :     // Label 1104: @38096
   15807             :     GIM_Reject,
   15808             :     // Label 1098: @38097
   15809             :     GIM_Try, /*On fail goto*//*Label 1105*/ 38120, // Rule ID 902 //
   15810             :       GIM_CheckFeatures, GIFBS_HasMSA_HasStdEnc,
   15811             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
   15812             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::MSA128BRegClassID,
   15813             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::MSA128BRegClassID,
   15814             :       // (ctpop:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws)  =>  (PCNT_B:{ *:[v16i8] } MSA128BOpnd:{ *:[v16i8] }:$ws)
   15815             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/Mips::PCNT_B,
   15816             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15817             :       // GIR_Coverage, 902,
   15818             :       GIR_Done,
   15819             :     // Label 1105: @38120
   15820             :     GIM_Reject,
   15821             :     // Label 1099: @38121
   15822             :     GIM_Reject,
   15823             :     // Label 41: @38122
   15824             :     GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 3, /*)*//*default:*//*Label 1108*/ 38273,
   15825             :     /*GILLT_s32*//*Label 1106*/ 38130,
   15826             :     /*GILLT_s64*//*Label 1107*/ 38224,
   15827             :     // Label 1106: @38130
   15828             :     GIM_Try, /*On fail goto*//*Label 1109*/ 38223,
   15829             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
   15830             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR32RegClassID,
   15831             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR32RegClassID,
   15832             :       GIM_Try, /*On fail goto*//*Label 1110*/ 38183, // Rule ID 1392 //
   15833             :         GIM_CheckFeatures, GIFBS_HasMips32r2_HasStdEnc_NotInMicroMips,
   15834             :         // (bswap:{ *:[i32] } GPR32:{ *:[i32] }:$rt)  =>  (ROTR:{ *:[i32] } (WSBH:{ *:[i32] } GPR32:{ *:[i32] }:$rt), 16:{ *:[i32] })
   15835             :         GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
   15836             :         GIR_BuildMI, /*InsnID*/1, /*Opcode*/Mips::WSBH,
   15837             :         GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
   15838             :         GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // rt
   15839             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
   15840             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ROTR,
   15841             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   15842             :         GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
   15843             :         GIR_AddImm, /*InsnID*/0, /*Imm*/16,
   15844             :         GIR_EraseFromParent, /*InsnID*/0,
   15845             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15846             :         // GIR_Coverage, 1392,
   15847             :         GIR_Done,
   15848             :       // Label 1110: @38183
   15849             :       GIM_Try, /*On fail goto*//*Label 1111*/ 38222, // Rule ID 2106 //
   15850             :         GIM_CheckFeatures, GIFBS_InMicroMips,
   15851             :         // (bswap:{ *:[i32] } GPR32:{ *:[i32] }:$rt)  =>  (ROTR_MM:{ *:[i32] } (WSBH_MM:{ *:[i32] } GPR32:{ *:[i32] }:$rt), 16:{ *:[i32] })
   15852             :         GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
   15853             :         GIR_BuildMI, /*InsnID*/1, /*Opcode*/Mips::WSBH_MM,
   15854             :         GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
   15855             :         GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // rt
   15856             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
   15857             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::ROTR_MM,
   15858             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   15859             :         GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
   15860             :         GIR_AddImm, /*InsnID*/0, /*Imm*/16,
   15861             :         GIR_EraseFromParent, /*InsnID*/0,
   15862             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15863             :         // GIR_Coverage, 2106,
   15864             :         GIR_Done,
   15865             :       // Label 1111: @38222
   15866             :       GIM_Reject,
   15867             :     // Label 1109: @38223
   15868             :     GIM_Reject,
   15869             :     // Label 1107: @38224
   15870             :     GIM_Try, /*On fail goto*//*Label 1112*/ 38272, // Rule ID 1534 //
   15871             :       GIM_CheckFeatures, GIFBS_HasMips64r2_HasStdEnc,
   15872             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
   15873             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/Mips::GPR64RegClassID,
   15874             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/Mips::GPR64RegClassID,
   15875             :       // (bswap:{ *:[i64] } GPR64:{ *:[i64] }:$rt)  =>  (DSHD:{ *:[i64] } (DSBH:{ *:[i64] } GPR64:{ *:[i64] }:$rt))
   15876             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s64,
   15877             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/Mips::DSBH,
   15878             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
   15879             :       GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // rt
   15880             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
   15881             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/Mips::DSHD,
   15882             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
   15883             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
   15884             :       GIR_EraseFromParent, /*InsnID*/0,
   15885             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
   15886             :       // GIR_Coverage, 1534,
   15887             :       GIR_Done,
   15888             :     // Label 1112: @38272
   15889             :     GIM_Reject,
   15890             :     // Label 1108: @38273
   15891             :     GIM_Reject,
   15892             :     // Label 42: @38274
   15893             :     GIM_Reject,
   15894             :     };
   15895           0 :   return MatchTable0;
   15896             : }
   15897             : #endif // ifdef GET_GLOBALISEL_IMPL
   15898             : #ifdef GET_GLOBALISEL_PREDICATES_DECL
   15899             : PredicateBitset AvailableModuleFeatures;
   15900             : mutable PredicateBitset AvailableFunctionFeatures;
   15901             : PredicateBitset getAvailableFeatures() const {
   15902             :   return AvailableModuleFeatures | AvailableFunctionFeatures;
   15903             : }
   15904             : PredicateBitset
   15905             : computeAvailableModuleFeatures(const MipsSubtarget *Subtarget) const;
   15906             : PredicateBitset
   15907             : computeAvailableFunctionFeatures(const MipsSubtarget *Subtarget,
   15908             :                                  const MachineFunction *MF) const;
   15909             : #endif // ifdef GET_GLOBALISEL_PREDICATES_DECL
   15910             : #ifdef GET_GLOBALISEL_PREDICATES_INIT
   15911       10307 : AvailableModuleFeatures(computeAvailableModuleFeatures(&STI)),
   15912             : AvailableFunctionFeatures()
   15913             : #endif // ifdef GET_GLOBALISEL_PREDICATES_INIT

Generated by: LCOV version 1.13